如何部署 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 > 笔记本电脑和 ComputerObjects > 工作站创建几个 OU… 以便指令集可以适当应用。
将 Enhanced-WS-Auditing GPO 链接到包含 Windows 10 安装的 AD OU。
将 Enhanced-DC-Auditing GPO 链接到名为域控制器的 AD OU。
完成后,最简单的部署如下所示。
第 4 部分:WEF / WEC / 事件通道配置
这是配置事件转发指令并启动事件收集器的部分。收集器需要用于入站日志的桶和 Windows 事件转发(WEF)客户端的事件订阅。
Windows 事件转发
在事件收集器上打开 gpmc.msc(组策略管理控制台)。 创建一个名为 Windows 事件转发的新 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。
创建一个名为:启用 WinRM 和防火墙规则的新 GPO
导航到计算机 > 策略 > Windows 组件 > Windows 远程管理(WinRM)> WinRM 服务
将“允许远程服务器管理”设置为启用。
接下来,计算机 > 首选项 > 控制面板 > 服务,并添加 WinRM,如下所示。
接下来,创建防火墙规则,该规则位于 GPO 树下(或 – 我们已经完成此操作并导出了 GPO 供您使用)。
计算机配置 > 策略 > 安全设置 > Windows 防火墙和高级安全 > Windows 防火墙和高级安全
为 WinRM 添加预定义规则。
或者,创建一个名为启用 WinRM 和防火墙规则的新 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