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

发布时间:2021-11-25 14:43:00 作者:柒染
来源:亿速云 阅读:146

如何检测并移除WMI持久化后门,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

前言

Windows Management Instrumentation(WMI)事件订阅,是一种常被攻击者利用来在端点上建立持久性的技术。因此,我决定花一些时间研究下Empire的WMI模块,看看有没有可能检测并移除这些WMI持久化后门。此外,文中我还回顾了一些用于查看和移除WMI事件订阅的PowerShell命令。这些命令在实际测试当中都非常的有用。

WMI 介绍

WMI是微软基于Web的企业管理(WBEM)的实现版本,这是一项行业计划,旨在开发用于访问企业环境中管理信息的标准技术。WMI使用公共信息模型(CIM)行业标准来表示系统,应用程序,网络,设备和其他托管组件。

事件过滤器(event filter )是一个WMI类,用于描述WMI向事件使用者传递的事件。此外,事件过滤器还描述了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订阅。

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

检测

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

注册了一个WMI事件过滤器;

注册了一个WMI事件使用者;

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

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

WMI事件过滤器为stager设置了相应执行条件,其中包括对系统正常运行时间的引用。

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

WMI事件使用者包含了以Base64编码形式的Empire stager,并使用了一个不易引起人们怀疑的名称Updater进行注册。

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

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

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

现在,事件使用者被绑定到了事件过滤器。如果事件过滤条件为真,那么将会触发相应的事件使用者(stager)。

后门移除

最简单的办法就是,使用Autoruns从WMI数据库中删除条目。以管理员身份启动Autoruns,并选择WMI选项卡查看与WMI相关的持久性后门。

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

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

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

或者,你也可以从命令行中删除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持久化后门

完成后我们再次运行Autoruns,以验证持久化后门是否已被我们成功清除。

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

看完上述内容,你们掌握如何检测并移除WMI持久化后门的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注亿速云行业资讯频道,感谢各位的阅读!

推荐阅读:
  1. phpStudy后门如何检测和修复
  2. Linux下rootkit后门检测工具chkrootkit

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

wmi

上一篇:Python模块总是安装失败或者速度慢怎么办

下一篇:怎么使用Python实现太阳系的运转

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》