WMI攻击检测

本文介绍了如何通过监控Windows日志和使用Sysmon来检测WMI活动,特别是关注wmic.exe的命令行参数和进程创建。强调了EventCode 4648和4688在日志中的重要性,以及如何通过Sysmon获取更详细的日志信息。此外,还讨论了流量检测,指出WMIC基于DCEPC的流量难以直接解析,但可以通过限制WinRM信任主机和监控特定进程来加强防御。

讲在前面:

    无论何种攻击手法在日志或流量是都会留下一定的痕迹,但是使用何种的规则将其监控到,这是令防守方头大的问题。WMI横向移动、权限维持都会在日志监控到。至于如何制定规则,本文不展开。
总之两点:

  • 做好 WMI 连接的网络流量监控,一般不使用 WMI 的环境若出现了使用 WMI的情况,则内部网络可能已经被入侵。
  • 做好进程监控,监测”wmic.exe“的命令行参数及其执行的命令。

日志检测

注意:在日志检测中,最重要的数据来源就是Windows日志,而Windows日志也不是说全部选项都开启就可以,因为必须要考虑到机器本身的性能,很多无关紧要的日志数据我们可以将其监控选项关闭。

Windows EventLog

Windows中对于WMIC的检测有两个关键日志:

  • EventCode 4648 — 尝试使用显式凭据登录
  • EventCode 4688 / SysmonID​​ 1 — 进程创建 (wmic.exe)

wmic执行命令
在域内客户机上执行wmic远程命令
在这里插入图片描述

wmic创建事件
当创建wmi事件时出现了4648和4688日志

在这里插入图片描述
4648日志出现,调用程序svchost.exe
在这里插入图片描述
在这里插入图片描述

当wmic执行时,以上述例子为例,可以看到命令执行成功前后出现了3个日志,这也和wmic的执行流程有关,我们可以参考下图:
在这里插入图片描述

上图咱们可以结合WMI讲解篇进行理解,WMIC操作时会先由svchost.exe调用WmiPrvSE.exe然后由WmiPrvSE调用指定的程序,指定的cmd则由cmd.exe进行下一步操作,指定的powershell则有powershell.exe进行下一步操作。

Sysmon

注意:Sysmon是微软对于Eventlog的补充解决方案,这是笔者对于Sysmon的理解,Sysmon可以能够获取到Evenlog获取不到的更多信息,MS解释Sysmon。

sysmon64.exe -i exampleSysmonConfig.xml       //执行安装:
sysmon64.exe -u                               //删除

执行安装
在这里插入图片描述
删除
在这里插入图片描述

注意:exampleSysmonConfig.xml为Sysmon的配置文件,内容和名字均可以自定义,内容可以自行进行增加或修改。

<Sysmon schemaversion="4.40">
<EventFiltering>
  <!-- Restrict logging to access targeting svchost.exe and verclsid.exe -->
  <ProcessAccess onmatch="exclude">
    <TargetImage condition="excludes">verclsid.exe</TargetImage>
    <TargetImage condition="excludes">svchost.exe</TargetImage>
  </ProcessAccess>
  <!-- Process access requests with suspect privileged access,
       or call trace indicative of unknown modules -->
     <ProcessAccess onmatch="include">
         <GrantedAccess condition="is">0x1F0FFF</GrantedAccess>
         <GrantedAccess condition="is">0x1F1FFF</GrantedAccess>
         <GrantedAccess condition="is">0x1F2FFF</GrantedAccess>
         <GrantedAccess condition="is">0x1F3FFF</GrantedAccess>
         <GrantedAccess condition="is">0x1FFFFF</GrantedAccess>
         <CallTrace condition="contains">unknown</CallTrace>
     </ProcessAccess>
</EventFiltering>
</Sysmon>

参考配置文件sysmonconfig-export.xml
Powershell查看Sysmon日志

Get-WinEvent -LogName Microsoft-Windows-Sysmon/Operational

本地事件管理器:
Windows日志->应用程序和服务日志->Microsoft->Windows
在这里插入图片描述
可以看到详细的日志内容
在这里插入图片描述

若是需要将sysmon的日志导出则可以使用wevtutil命令:

wevtutil query-events "Microsoft-Windows-Sysmon/Operational" /format:xml /e:sysmonview > eventlog.xml

然后可以自行导入sysmon帮助工具进行分析:
sysmontools
在这里插入图片描述

若是权限维持中的WMI事件,则sysmon可以关注如下四个事件ID

Process Create(ID 1)
WmiEventFilter(ID 19)
WmiEventConsumer(ID 20)
WmiEventConsumterToFilter(ID 21)

可以看到CommandLine中执行的命令细节
在这里插入图片描述

流量检测

    我们要注意在使用PSEXEC,SC.EXE,或其他远程服务管理工具进行操作时,通信将通过MS-SCMR协议操作DCERPC。即使该协议使用最大加密级别,但仍然可以使用流量监控确定目标执行了哪些类型的操作(例如服务创建、服务启动等)。
下图为sc.exe 创建远程服务的 wireshark 捕获
在这里插入图片描述

尽管WMIC仍然基于 DCEPC,但所有 WMI DCOM 方法调用都是通过单个接口完成的,并且当与“数据包隐私”级别的加密相结合时,流量监控的解决方案只能知道调用了某些 WMI 方法。无法知道执行了那些细节操作。若通过 WINRM 协议执行时,WMI 流量看起来像 HTTP,并且再次与通过 SVCCTL 接口时完全不同。这意味着 WMI技术可以有效地规避任何流量检测其横向移动的操作。
下图为DCEPRC数据包
在这里插入图片描述

缓解措施:

  • 限制 WinRM信任的主机数量
winrm 设置 winrm/config/client '@{TrustedHosts="指定主机"}'
  • 在日志中重点监控WmiPrvSE.exe和WMIC.exe。
  • 做好高权限的控制,避免高权限帐户滥用。

参考文章:

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值