前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >WMI攻击检测

WMI攻击检测

作者头像
谢公子
发布2022-01-19 21:17:10
1.7K0
发布2022-01-19 21:17:10
举报
文章被收录于专栏:谢公子学安全谢公子学安全

攻击检测

WMI攻击检测

谢公子学安全

讲在前面

作者:pingpig@深蓝攻防实验室

在前面的文章中我们讲了:WMI讲解(是什么,做什么,为什么)

WMI利用(横向移动)

WMI利用(权限维持)

今天主要分享的是WMI攻击检测。

无论何种攻击手法在日志或流量是都会留下一定的痕迹,但是使用何种的规则将其监控到,这是令防守方头大的问题。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。 - 做好高权限的控制,避免高权限帐户滥用。

参考文章

Windows 管理规范

WMI检测详细分析

发现横向移动

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2021-09-06,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 谢公子学安全 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档