部署Windows Optics:完整命令、下载与配置指南

本文详细介绍了如何部署Windows Optics监控系统,包括Sysmon配置、Windows审计策略设置、事件转发机制以及WinLogBeat日志传输,提供完整的实验室环境搭建步骤和实际操作命令。

如何部署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模块化目录结构的内容。

1
2
3
4
Set-ExecutionPolicy bypass 
Y 
import-module .\Merge-SysmonXml.ps1 
Merge-AllSysmonXml -Path ( Get-ChildItem '[0-9]*\*.xml') -AsString | Out-File sysmonconfig.xml

注意,此sysmonconfig.xml文件将在Sysmon安装期间使用。

手动Sysmon安装

应使用先前生成的配置文件(sysmonconfig.xml)进行安装。

下载Sysmon,因为我们无法提供给你:https://docs.microsoft.com/en-us/sysinternals/downloads/sysmon

1
sysmon64.exe -accepteula -i sysmonconfig.xml 

对所有实验室系统重复此过程。

每当你对sysmon-modular容器进行更改时,使用合并所有脚本重新生成配置文件。然后,你可以使用以下命令轻松更新Sysmon配置(针对你的新配置文件运行)。仅当你更新了原始sysmonconfig.xml时,才运行下一个命令。

1
sysmon.exe -c 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。

1
net stop Wecsvc

在事件查看器中手动禁用所有WEF订阅,通过卸载当前事件通道(um = 卸载清单)。

1
wevtutil um C:\windows\system32\CustomEventChannels.man

从仓库的“windows-event-channels”容器中替换C:\Windows\System32\中列出的文件。或者,如果它们不存在,只需将它们复制到那里。

  • CustomEventChannels.dll
  • CustomEventChannels.man

加载替换通道。(im = 导入清单)

1
wevtutil im C:\windows\system32\CustomEventChannels.man 

现在在PowerShell中增加通道(日志桶)的大小!不是CMD。

1
2
3
4
5
CMD C:\> powershell -ep bypass 
$xml = wevtutil el | select-string -pattern "WEC" 
     foreach ($subscription in $xml) { 
      wevtutil sl $subscription /ms:4194304 
     } 

重新启动事件收集器服务(从CMD提示符)

1
net start wecsvc 

事件查看器应该在收集器上有一些新通道。你可能需要重新启动Windows事件查看器服务。

接下来,添加关联的订阅。CD到windows-event-forwarding目录中的wef-subscriptions容器。

使用以下for循环安装所有订阅 – CMD提示符,不是PowerShell!

1
for /r %i in (*.xml) do wecutil cs %i

所有适当的GPO链接如下: 启用WinRM:所有系统 DC-Auditing:仅DC WS-Auditing:所有工作站 Windows-Event-Forwarding:所有系统 在两个域系统上运行以下命令。

1
gpupdate /force 

第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会话并运行以下命令。

1
2
3
4
powershell -Exec bypass -File .\install-service-winlogbeat.ps1 
Set-Service -Name "winlogbeat" -StartupType automatic 
Start-Service -Name "winlogbeat" 
Get-Service winlogbeat

Beats正在运行。检查你的Kibana安装以获取日志。

完成!!! 感谢你阅读到这里。我们感谢社区的所有支持,包括: @banjocrashland @strandjs @cyb3rward0g @olafhartong 干杯!!祝狩猎愉快!!! Jordan和Kent Black Hills InfoSec Defensive Origins

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计