如何检测并清除WMI持久化后门

栏目: 数据库 · 发布时间: 5年前

内容简介:概述WMI(Windows Management Instrumentation)事件订阅(Event Subscription)是一种非常流行的终端持久化技术。我们针对Empire的WMI模块(“WMI事件订阅”在MITRE ATT&CK技术中的编号为T1084,详情请参见:

概述

WMI(Windows Management Instrumentation)事件订阅(Event Subscription)是一种非常流行的终端持久化技术。我们针对Empire的WMI模块( https://github.com/EmpireProject/Empire )进行了尝试,并对其模块进行分析,同时还汇总了可用于查看和删除WMI事件订阅的PowerShell命令。本文将主要阐述如何检测WMI持久化后门并进行移除。

“WMI事件订阅”在MITRE ATT&CK技术中的编号为T1084,详情请参见: https://attack.mitre.org/wiki/Technique/T1084

攻击者可以利用WMI的事件订阅功能,在特定事件发生时执行任意代码,从而保证其恶意软件的持久性。

关于WMI

WMI是微软实施的WBEM(基于Web的企业管理,Web-Based Enterprise Management),WBEM是一项行业计划,旨在开发用于访问企业环境中管理信息的标准技术。WMI使用通用信息模型(Common Information Model)行业标准来表示系统、应用程序、设备和其他可管理的组件。

事件过滤器是一个WMI类,用于描述WMI向事件使用者(Event Consumer)所传递的时间。此外,事件过滤器还描述了WMI传递事件的条件。

配置Sysmon日志记录

在Sysmon中,可以通过配置,开启对WmiEventFilter、WmiEventConsumer和WmiEventConsumerToFilter活动的记录,同时能够启用WMI滥用检测。

如何检测并清除WMI持久化后门

在Roberto Rodriguez(@Cyb3rWard0g)发布的Sysmon配置文件中,还支持捕获上述事件ID的功能。

执行以下命令,安装Sysmon并配置应用文件。

sysmon.exe -i -c .\config_file.xml

建立持久性

接下来,我们尝试使用Empire是的Invoke-WMI模块,来创建一个永久的WMI订阅,从而在目标用户的终端上建立持久性。

查看Empire中与WMI相关的模块:

如何检测并清除WMI持久化后门

查看Empire中Invoke-WMI模块的选项:

如何检测并清除WMI持久化后门

运行模块:

如何检测并清除WMI持久化后门

检测方法

通过查看Sysmon日志,我们可以看到以下Empire模块:

1、已经注册的WMI事件过滤器(Event Filter)

2、已经注册的WMI事件使用者(Event Consumer)

3、将事件使用者绑定到事件过滤器

如何检测并清除WMI持久化后门

WMI事件过滤器设置执行阶段的条件,包括对系统正常运行时间的引用。

ID为19的Sysmon事件 – WmiEvent(检测到WmiEventFilter活动):

如何检测并清除WMI持久化后门

在WMI事件使用者(Event Consumer)中,可以看到由Empire创建的条目,其内容进行了Base64编码。并且,使用了看似合法的名称Updater进行注册。

ID为20的Sysmon事件 – WmiEvent(检测到WmiEventConsumer活动):

如何检测并清除WMI持久化后门

WMI事件使用者CommandLineEventConsumer.Name=\”Updater\"被绑定到事件过滤器__EventFilter.Name=\”Updater\”。

ID为21的Sysmon事件 – WmiEvent(检测到WmiEventConsumerToFilter活动):

如何检测并清除WMI持久化后门

现在,事件使用者已经被成功绑定到事件过滤器。如果满足事件过滤的条件,那么就会触发事件使用者(Stager)。

彻底清除WMI持久化后门

如果想要从WMI数据库中删除特定条目,最简单的方法就是使用Autoruns。我们以管理员身份启动Autoruns,并选择WMI选项卡,以查看与WMI相关的持久性。

使用Autoruns查看WMI数据库条目:

如何检测并清除WMI持久化后门

使用Autoruns查看WMI数据库中内容:

如何检测并清除WMI持久化后门

右键单击恶意WMI数据条目,然后选择“删除”。

或者,我们也可以从命令行中删除WMI事件订阅。

在PowerShell中,可以使用Get-WMIObject查看WMI中事件筛选器绑定的事件使用者。感谢Boe Prox(@proxb)在他的博客上详细解释了这些命令。

# Reviewing WMI Subscriptions using Get-WMIObject
# Event Filter
Get-WMIObject -Namespace root\Subscription -Class __EventFilter -Filter “Name=’Updater’”
 
# Event Consumer
Get-WMIObject -Namespace root\Subscription -Class CommandLineEventConsumer -Filter “Name=’Updater’”
 
# Binding
Get-WMIObject -Namespace root\Subscription -Class __FilterToConsumerBinding -Filter “__Path LIKE ‘%Updater%’”

使用Remove-WMIObject,删除与WMI持久性相关的所有组件。

# Removing WMI Subscriptions using Remove-WMIObject
# Event Filter
Get-WMIObject -Namespace root\Subscription -Class __EventFilter -Filter “Name=’Updater’” | Remove-WmiObject -Verbose
 
# Event Consumer
Get-WMIObject -Namespace root\Subscription -Class CommandLineEventConsumer -Filter “Name=’Updater’” | Remove-WmiObject -Verbose
 
# Binding
Get-WMIObject -Namespace root\Subscription -Class __FilterToConsumerBinding -Filter “__Path LIKE ‘%Updater%’” | Remove-WmiObject –Verbose

删除WMI事件订阅:

如何检测并清除WMI持久化后门

再次运行Autoruns,以验证WMI持久化后门是否已成功清除:

如何检测并清除WMI持久化后门


以上所述就是小编给大家介绍的《如何检测并清除WMI持久化后门》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Web Design for ROI

Web Design for ROI

Lance Loveday、Sandra Niehaus / New Riders Press / 2007-10-27 / USD 39.99

Your web site is a business--design it like one. Billions of dollars in spending decisions are influenced by web sites. So why aren't businesses laser-focused on designing their sites to maximize thei......一起来看看 《Web Design for ROI》 这本书的介绍吧!

JS 压缩/解压工具
JS 压缩/解压工具

在线压缩/解压 JS 代码

XML 在线格式化
XML 在线格式化

在线 XML 格式化压缩工具

HEX CMYK 转换工具
HEX CMYK 转换工具

HEX CMYK 互转工具