windows攻防体系-sysmon攻防
字数 2340 2025-08-15 21:30:19
Windows攻防体系:Sysmon攻防详解
1. Sysmon概述
Sysmon是微软的一款免费轻量级系统监控工具,最初由Sysinternals开发,后被微软收购。它通过系统服务和驱动程序实现以下功能:
- 记录进程创建、网络连接以及文件创建时间更改的详细信息
- 将相关信息写入并展示在Windows事件日志中
1.1 技术架构
Sysmon安装后分为两部分:
- 用户态系统服务:
- 通过ETW(Event Tracing for Windows)实现网络数据记录
- 通过EventLog对驱动返回的数据进行解析
- 驱动部分:
- 通过进/线程、模块的回调函数收集进程相关信息
- 通过Minifilter文件过滤驱动和注册表回调函数记录访问文件、注册表的数据
2. 红队视角:Sysmon检测与绕过
2.1 检测Sysmon存在的方法
- 进程名:Sysmon.exe
- 服务名:Sysmon
- 驱动名:Sysmondrv
- 驱动所在目录:C:\Windows\
- 服务描述:System Monitor service
- 注册表项:
- HKCU\Software\Sysinternals
- HKLM\SYSTEM\CurrentControlSet\Control\WMI\Autologger\EventLog-Microsoft-Windows-Sysmon-Operational{5770385f-c22a-43e0-bf4c-06f5698ffbd9}
- HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\WINEVT\Channels\Microsoft-Windows-Sysmon/Operational
- HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\WINEVT\Publishers{5770385f-c22a-43e0-bf4c-06f5698ffbd9}
- GUID:5770385f-c22a-43e0-bf4c-06f5698ffbd9
- 日志名:Microsoft-Windows-Sysmon
- Altitude值:
- SysmonDrv的Altitude高度385201
- PROCMON24的Altitude高度385200
- 日志产生关键字:日志名及内容特征
- 程序特征字符:在%SystemRoot%目录下查找
2.2 Sysmon绕过技术
-
规则解析绕过:
- 通过Powershell(Posh-Sysmon)获取Sysmon注册表中的Rules值并解析为规则
- 寻找监控盲区进行绕过
-
注入技术绕过:
- 通过APC实现Dll注入,绕过Sysmon对CreateRemoteThread行为的监控
2.3 Sysmon阻断技术
-
驱动卸载:
- 管理员权限CMD执行
fltMC.exe upload SysmonDrv - 优劣:简单粗暴,但会产生服务变更告警
- 管理员权限CMD执行
-
规则删除:
- 删除Sysmon注册表项中的规则项
- 优劣:简单粗暴,会产生服务变更告警
-
服务停止:
SC stop SysmonDrv停止驱动- 优劣:简单粗暴,会产生服务变更告警
-
日志句柄终止:
- 结束Sysmon日志句柄的对应进程
- 优劣:Sysmon日志不会产生告警,但系统日志会产生错误日志
-
日志服务暂停:
- 使用Mimikatz中Event::Drop使日志服务暂停
- 优劣:不会产生日志,但Windows不再产生任何日志,可能触发SIEM告警
3. 蓝队视角:Sysmon隐藏与防护
3.1 隐藏Sysmon安装及使用痕迹
- 进程名更改:将Sysmon.exe安装程序重命名
- 服务名更改:与服务名保持一致
- 驱动名更改:通过Sysmon自带参数d更改
- 驱动所在目录:修改Sysmon释放的资源文件路径
- 服务描述修改:通过Windows API、注册表或服务管理器修改
- 注册表修改:
- 删除HKCU\Software\Sysinternals项
- 修改Sysmon.exe文件修改Guid
- 修改Sysmon关键字
- Guid修改:同上
- 日志名修改:修改Sysmon.exe程序内关键字
- Altitude值伪装:
- 伪装MSDN中已注册的Atitude注册表及驱动名称
- 安装前修改Sysmon文件或安装后修改重启驱动对应注册表
- 日志关键字修改:
- 修改Sysmon释放的MANXXX.TMP Manifest文件替换内容关键字
- 修改日志内容关键字(如Driver->DDiver)
3.2 针对Sysmon绕过及阻断的防护
SIEM策略
- 事件产生基线:单位时间内若无日志产生则产生告警
- 机器学习检测:基于事件动态频次检测,建立基线检查
日志审计
- 规则键读取审计:非Sysmon程序对Rule键的读取
- 服务变更审计:Sysmon服务变更信息及系统事件错误(EventID:7036)
- 驱动卸载审计:对fltMC的unload行为进行审计
- Mimikatz检测:
- 针对任何形式的Mimikatz进行行为检测
- 制定Windows主机Debug权限基线并行为审计(EventID: 4672)
4. 总结
Sysmon作为一款功能强大的免费入侵检测引擎,其攻防要点如下:
- 红队需要掌握Sysmon的检测方法,并能够通过多种技术手段绕过或阻断其监控
- 蓝队需要隐藏Sysmon的存在痕迹,并通过SIEM和日志审计等手段防护针对Sysmon的攻击
- 默认配置的Sysmon容易被检测和绕过,因此必须进行定制化配置和隐藏
- 攻防双方都需要深入了解Sysmon的工作原理和实现细节,才能在实际对抗中占据优势