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存在的方法

  1. 进程名:Sysmon.exe
  2. 服务名:Sysmon
  3. 驱动名:Sysmondrv
  4. 驱动所在目录:C:\Windows\
  5. 服务描述:System Monitor service
  6. 注册表项
    • 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}
  7. GUID:5770385f-c22a-43e0-bf4c-06f5698ffbd9
  8. 日志名:Microsoft-Windows-Sysmon
  9. Altitude值
    • SysmonDrv的Altitude高度385201
    • PROCMON24的Altitude高度385200
  10. 日志产生关键字:日志名及内容特征
  11. 程序特征字符:在%SystemRoot%目录下查找

2.2 Sysmon绕过技术

  1. 规则解析绕过

    • 通过Powershell(Posh-Sysmon)获取Sysmon注册表中的Rules值并解析为规则
    • 寻找监控盲区进行绕过
  2. 注入技术绕过

    • 通过APC实现Dll注入,绕过Sysmon对CreateRemoteThread行为的监控

2.3 Sysmon阻断技术

  1. 驱动卸载

    • 管理员权限CMD执行fltMC.exe upload SysmonDrv
    • 优劣:简单粗暴,但会产生服务变更告警
  2. 规则删除

    • 删除Sysmon注册表项中的规则项
    • 优劣:简单粗暴,会产生服务变更告警
  3. 服务停止

    • SC stop SysmonDrv停止驱动
    • 优劣:简单粗暴,会产生服务变更告警
  4. 日志句柄终止

    • 结束Sysmon日志句柄的对应进程
    • 优劣:Sysmon日志不会产生告警,但系统日志会产生错误日志
  5. 日志服务暂停

    • 使用Mimikatz中Event::Drop使日志服务暂停
    • 优劣:不会产生日志,但Windows不再产生任何日志,可能触发SIEM告警

3. 蓝队视角:Sysmon隐藏与防护

3.1 隐藏Sysmon安装及使用痕迹

  1. 进程名更改:将Sysmon.exe安装程序重命名
  2. 服务名更改:与服务名保持一致
  3. 驱动名更改:通过Sysmon自带参数d更改
  4. 驱动所在目录:修改Sysmon释放的资源文件路径
  5. 服务描述修改:通过Windows API、注册表或服务管理器修改
  6. 注册表修改
    • 删除HKCU\Software\Sysinternals项
    • 修改Sysmon.exe文件修改Guid
    • 修改Sysmon关键字
  7. Guid修改:同上
  8. 日志名修改:修改Sysmon.exe程序内关键字
  9. Altitude值伪装
    • 伪装MSDN中已注册的Atitude注册表及驱动名称
    • 安装前修改Sysmon文件或安装后修改重启驱动对应注册表
  10. 日志关键字修改
    • 修改Sysmon释放的MANXXX.TMP Manifest文件替换内容关键字
    • 修改日志内容关键字(如Driver->DDiver)

3.2 针对Sysmon绕过及阻断的防护

SIEM策略

  1. 事件产生基线:单位时间内若无日志产生则产生告警
  2. 机器学习检测:基于事件动态频次检测,建立基线检查

日志审计

  1. 规则键读取审计:非Sysmon程序对Rule键的读取
  2. 服务变更审计:Sysmon服务变更信息及系统事件错误(EventID:7036)
  3. 驱动卸载审计:对fltMC的unload行为进行审计
  4. Mimikatz检测
    • 针对任何形式的Mimikatz进行行为检测
    • 制定Windows主机Debug权限基线并行为审计(EventID: 4672)

4. 总结

Sysmon作为一款功能强大的免费入侵检测引擎,其攻防要点如下:

  • 红队需要掌握Sysmon的检测方法,并能够通过多种技术手段绕过或阻断其监控
  • 蓝队需要隐藏Sysmon的存在痕迹,并通过SIEM和日志审计等手段防护针对Sysmon的攻击
  • 默认配置的Sysmon容易被检测和绕过,因此必须进行定制化配置和隐藏
  • 攻防双方都需要深入了解Sysmon的工作原理和实现细节,才能在实际对抗中占据优势
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 优劣:简单粗暴,但会产生服务变更告警 规则删除 : 删除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的工作原理和实现细节,才能在实际对抗中占据优势