电脑疯子技术论坛|电脑极客社区

微信扫一扫 分享朋友圈

已有 941 人浏览分享

WMI攻击与安全防御

[复制链接]
941 0
简介

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

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

WMI 的主要交互方式

1、Powershell(Get-WmiObject、Set-WmiInstance、Invoke-WmiMethod等)
例如:Get-WmiObject-Namespace “ROOT” -Class __NAMESPACE
2、Wmic
例如:wmic/NAMESPACE:"\\root\CIMV2" PATH Win32_OperatingSystem


WMI事件

WMI事件会创建一个查询请求,请求中定义了我们需要执行的操作 一旦事件发生就
会执行我们定义的操作 支持两种事件。
1、临时事件:要创建事件的进程处于活动状态 临时事件就会被激活(以当前权限运行)
例如:

1592997173_5ef33535a5412.png

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

1592997193_5ef335497c2a8.png

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

持久事件与后门

利用持久事件来做后门(创建需要管理员权限)需要三个部分。
1、事件过滤器(Filter):用来定义触发的条件 包括系统启动 特定程序执行 特定时间间隔等存储在
ROOT\subscription的实例__ EventFilter对象中 多数事件使用WQL WITHIN子句指定轮询间隔。
2、事件消费者(Consumer):用来指定要执行的具体操作,包括执行命令(CommandLineEventConsumer)
运行脚本(ActiveScriptEventConsumer)、添加日志条目(NTEventLogEventConsumer)或
者发送邮件(SMTPEventConsumer)。
3、绑定机制:将过滤器绑定到消费者(FilterToConsumerBinding类)


后门实例

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

Powershell实现

89.png

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

Wmic实现

88.png

86.png

效果:定时触发反弹

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

83.png

Mof实现

82.png

执行命令:

Mofcomp xx.mof
效果:每30分钟触发反弹。
也可以直接执行vbs脚本文件:
  1. instance ofActiveScriptEventConsumer as $Cons
  2. {

  3.     Name = "ASEC";
  4.     ScriptingEngine = "VBScript";
  5.     ScriptFileName = "c:\\asec.vbs";

  6. };
复制代码

安全防御

查看:
  1. #List EventFilters
  2. Get-WMIObject-Namespace root\Subscription -Class __EventFilter
  3. #List EventConsumers
  4. Get-WMIObject-Namespace root\Subscription -Class __EventConsumer
  5. #List EventBindings
  6. Get-WMIObject-Namespace root\Subscription -Class __FilterToConsumerBinding
复制代码

删除:
  1. #Filter
  2. Get-WMIObject-Namespace root\Subscription -Class __EventFilter -Filter"Na
  3. me='BotFilter82'" | Remove-WmiObject -Verbose
  4. #Consumer
  5. Get-WMIObject-Namespace root\Subscription -Class CommandLineEventConsume
  6. r -Filter"Name='BotConsumer23'" | Remove-WmiObject -Verbose
  7. #Binding
  8. Get-WMIObject-Namespace root\Subscription -Class __FilterToConsumerBin
  9. ding -Filter"__Path LIKE '%BotFilter82%'" | Remove-WmiObject -Verbose
复制代码

您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

关注

0

粉丝

9021

主题
精彩推荐
热门资讯
网友晒图
图文推荐

Powered by Pcgho! X3.4

© 2008-2022 Pcgho Inc.