如何部署Windows Optics:命令、下载、说明和截图
Jordan Drysdale & Kent Ickler //
TL;DR
查找链接并下载。查找GPO并导入。查看截图以获取指导。Sysmon + Windows审计策略 + 事件收集器和转发(处理器)+ WinLogBeat + Elastic = 产生重要端点光学数据的基础配置(几乎免费)。
第1部分 – 构建实验室环境
完全跟随需要一些重要的先决条件。请注意,此环境无法在笔记本电脑上运行。准备消耗6个CPU、20GB RAM和约120GB磁盘空间。最好在虚拟环境中部署PFSense路由器,并在其后构建隔离网络。
PFSense VM
- 1 vCPU,4GB RAM,20GB磁盘
- WAN:DHCP
- LAN:10.10.98.1/24
- 在VMWare上部署的说明:https://docs.netgate.com/pfsense/en/latest/virtualization/virtualizing-pfsense-with-vmware-vsphere-esxi.html
- .iso下载:https://www.pfsense.org/download/
Windows Server 2016 – 域控制器
- 1 vCPU(2个更好),4GB RAM(更多更好),32GB磁盘
- 10.10.98.10/24
- DNS:127.0.0.1
- DNS2:1.1.1.1
- 部署域(Github上的脚本):https://github.com/DefensiveOrigins/DomainBuildScripts
- 跳过ADDS-Step4 – 并运行BadBlood – 为了所有的一切,不要在你的业务域上这样做。
Windows 10 – 域工作站
- 1 vCPU(2个更好),4GB RAM(更多更好),32GB磁盘
- DHCP
- 加入域
Ubuntu 18.04 – Elastic Stack和攻击装备
- 2 vCPUs,8GB RAM,32GB磁盘
- 10.10.98.20/24
- DNS:10.10.98.10
- DNS2:1.1.1.1
- 安装HELK。
- 使用初始用户账户“git clone” – 不是ROOT。
1 2 3 4
user# git clone https://github.com/Cyb3rWarD0g/HELK.git user# sudo -s root# cd HELK/docker/ root# ./helk_install.sh(大约需要15分钟)
此时,你的实验室应该大致如下所示。
第2部分 – Sysmon
下载模块化仓库
下载Sysmon模块化仓库:https://github.com/olafhartong/sysmon-modular
下载后,此仓库如下所示。
此配置实用程序的强大之处在于每个关联的Sysmon事件ID容器下可用的包含/排除配置。例如,事件ID 3的容器:3_network_connection_initiated具有以下文件结构。包含和排除定义了Sysmon用于写入事件的规则。阅读仓库的说明!你可能想排除一些东西。太多噪音不是好事。
或者,只需从https://github.com/olafhartong/sysmon-modular/blob/master/sysmonconfig.xml下载sysmonconfig.xml,并知道Olaf在照顾我们所有人。
生成配置文件
从sysmon-modular目录生成你自己的sysmon配置。打开PowerShell窗口并CD到刚下载并提取的仓库(repo)。
一旦你对容器结构和底层过程感到满意,就为你的网络进行适当的更改。然后,执行以下命令生成你自己的配置文件。
安装命令
以下命令实例化一个不关心你的代码签名实践的PowerShell会话,接受该更改请求,拉取代码并合并你的Sysmon模块化目录结构的内容。
|
|
注意,此sysmonconfig.xml文件将在Sysmon安装期间使用。
手动Sysmon安装
应使用先前生成的配置文件(sysmonconfig.xml)进行安装。
下载Sysmon,因为我们无法提供给你:https://docs.microsoft.com/en-us/sysinternals/downloads/sysmon
|
|
对所有实验室系统重复此过程。
每当你对sysmon-modular容器进行更改时,使用合并所有脚本重新生成配置文件。然后,你可以使用以下命令轻松更新Sysmon配置(针对你的新配置文件运行)。仅当你更新了原始sysmonconfig.xml时,才运行下一个命令。
|
|
组策略部署
SysPanda文章详细说明了过程:https://www.syspanda.com/index.php/2017/02/28/deploying-sysmon-through-gpo/
创建一个启动脚本,调用sysmon-gpo.bat文件,该文件包含在APT-Class仓库中。
将GPO链接到属于安装的任何地方。
第3部分 – Windows审计策略
以下部分包括大量阅读,因为我们在提供的GPO中配置的审计策略可能与你的期望最终状态不匹配。
知识扩展
Windows审计策略配置(基线)的指导来自: https://docs.microsoft.com/en-us/windows-server/identity/ad-ds/plan/security-best-practices/audit-policy-recommendations
Palantir还为设置GPO提供了相当多的指导。 https://github.com/palantir/windows-event-forwarding/tree/master/group-policy-objects
部署GPO
在组策略管理控制台中创建两个GPO(通过从提供的GPO导入设置可以节省一些时间)。
- Enhanced-WS-Auditing
- Enhanced-DC-Auditing
从https://github.com/DefensiveOrigins/APT06202001/tree/master/Lab-GPOs导入设置,或按照描述的Microsoft或Palantir指导构建你自己的审计策略。
浏览到你的GPO备份副本。
对DC-Auditing策略完成相同的过程。
将GPO链接到OU
本文背景较少,技术性较强。因此,快速回顾一下,组策略对象(或GPO)包含一组Windows对象的指令。将GPO链接到对象还取决于你的组织单元(OU)的结构。如果你的OU结构混乱,这一步可能很难正确完成。然而,在我们的实验室环境中,你可能需要为工作站或ComputerObjects > Laptops和ComputerObjects > Workstations创建几个OU…以便指令集可以适当应用。
将Enhanced-WS-Auditing GPO链接到包含Windows 10安装的AD OU。
将Enhanced-DC-Auditing GPO链接到名为Domain Controllers的AD OU。
完成后,最简单的部署如下所示。
第4部分:WEF / WEC / 事件通道配置
这是配置事件转发指令并启动事件收集器的部分。收集器需要用于入站日志的桶和Windows事件转发(WEF)客户端的事件订阅。
Windows事件转发
在事件收集器上打开gpmc.msc(组策略管理控制台)。 创建一个名为Windows Event Forwarding的新GPO。从以下仓库收集对象以导入。根据实验室的域命名,你可能需要修改服务器FQDN。WEF GPO位于https://github.com/DefensiveOrigins/APT06202001/tree/master/Lab-GPOs仓库。
我们需要确保事件日志读取器(内置本地组)可以正常工作。
配置(或只是双重检查)订阅管理器URL,即事件收集器。
配置检查!
此策略配置参数位于GPO树中的此处: 计算机配置 > 策略 > 管理模板 > Windows组件 > Windows事件转发 > 配置目标订阅管理器) 订阅管理器应为:http://YourWEC’sFQDN:5985/wsman/SubscriptionManager/WEC,Refresh=60 关于使用HTTP进行此连接似乎有些困惑。我的理解是转发的日志在传输过程中仍然通过Kerberos加密。
启用WinRM – 所有系统必需
由于收集和转发过程中的所有系统都需要WinRM,因此为此服务和防火墙规则创建并附加GPO。 创建一个名为:Enable WinRM and Firewall Rule的新GPO 导航到计算机 > 策略 > Windows组件 > Windows远程管理(WinRM)> WinRM服务 将“允许远程服务器管理”设置为启用。 接下来,计算机 > 首选项 > 控制面板 > 服务,并添加WinRM,如下所示。
接下来,创建防火墙规则,该规则位于下面的GPO树中(或 – 我们已经完成并导出了GPO供你使用)。 计算机配置 > 策略 > 安全设置 > Windows防火墙和高级安全 > Windows防火墙和高级安全 为WinRM添加预定义规则。
或者,创建一个名为Enable WinRM and Firewall Rule的新GPO,并从提供的同名GPO导入设置。
链接GPO
将此GPO附加到域。此时,以下配置是启用基线审计策略、启用WinRM并告诉系统订阅管理器(用于转发事件)在网络上的位置的最简单部署。
所有系统:启用WinRM和防火墙规则 工作站:审计策略和Windows事件转发 域控制器:审计策略和Windows事件转发
Windows事件收集器 / 事件通道配置(在事件收集器上)
下载并提取Palantir事件转发仓库:https://github.com/palantir/windows-event-forwarding 访问事件收集器(实验室环境中的DC)并从CMD提示符停止wecsvc。
|
|
在事件查看器中手动禁用所有WEF订阅,通过卸载当前事件通道(um = 卸载清单)。
|
|
从仓库的“windows-event-channels”容器中替换C:\Windows\System32\中列出的文件。或者,如果它们不存在,只需将它们复制到那里。
- CustomEventChannels.dll
- CustomEventChannels.man
加载替换通道。(im = 导入清单)
|
|
现在在PowerShell中增加通道(日志桶)的大小!不是CMD。
|
|
重新启动事件收集器服务(从CMD提示符)
|
|
事件查看器应该在收集器上有一些新通道。你可能需要重新启动Windows事件查看器服务。
接下来,添加关联的订阅。CD到windows-event-forwarding目录中的wef-subscriptions容器。
使用以下for循环安装所有订阅 – CMD提示符,不是PowerShell!
|
|
所有适当的GPO链接如下: 启用WinRM:所有系统 DC-Auditing:仅DC WS-Auditing:所有工作站 Windows-Event-Forwarding:所有系统 在两个域系统上运行以下命令。
|
|
第5部分:最后。使用WinLogBeats进行日志传输
下载仓库因为我们无法提供给你
从Defensive Origins Github下载WinLogBeat配置文件(winlogbeat.yml):https://github.com/DefensiveOrigins/APT06202001/tree/master/Lab-WinLogBeat 此配置文件,正如社区一位非常慷慨的成员向我们指出的那样,我们的Elastic实例使用Kafka进行摄取。你可能需要修改文件的最后几行以匹配你的网络配置。我们进一步更改了配置文件的条款,以包括所有WEC条目和事件通道配置。 下载WinLogBeat安装程序https://www.elastic.co/downloads/beats/winlogbeat 用提供的实例替换提供的winlogbeat.yml文件(你可能需要检查文件最底部的Logstash配置的IP地址指令)。
安装运输器
在WinLogBeat目录中打开PowerShell会话并运行以下命令。
|
|
Beats正在运行。检查你的Kibana安装以获取日志。
完成!!! 感谢你阅读到这里。我们感谢社区的所有支持,包括: @banjocrashland @strandjs @cyb3rward0g @olafhartong 干杯!!祝狩猎愉快!!! Jordan和Kent Black Hills InfoSec Defensive Origins