0x00 WMI简介
WMI是从Windows 2000起,在每个Windows系统版本中都会内置的一个管理框架。WMI以本地和远程方式提供了许多管理功能,包括查询系统信息、启动和停止进程以及设置条件触发器。我们可以使用各种工具(比如Windows的WMI命令行工具wmic.exe)或者脚本编程语言(如PowerShell、VBS)提供的API接口来访问WMI。Windows系统的WMI数据存储在WMI公共信息模型(common information model,CMI)仓库中,该仓库由“System32wbemRepository”文件夹中的多个文件组成。
WMI类是WMI的主要结构。WMI类中可以包含方法(代码)以及属性(数据)。具有系统权限的用户可以自定义类或扩展许多默认类的功能。
在满足特定条件时,我们可以使用WMI永久事件订阅(permanent event subscriptions)机制来触发特定操作。攻击者经常利用这个功能,在系统启动时执行后门程序,完成本地持久化。WMI的事件订阅包含三个核心WMI类:Filter(过滤器)类、Consumer(消费者)类以及FilterToConsumerBinding类。WMI Consumer用来指定要执行的具体操作,包括执行命令、运行脚本、添加日志条目或者发送邮件。WMI Filter用来定义触发Consumer的具体条件,包括系统启动、特定程序执行、特定时间间隔以及其他条件。FilterToConsumerBinding用来将Consumer与Filter关联在一起。创建一个WMI永久事件订阅需要系统的管理员权限。
0x01 环境&工具
目标端:WIN7、WMI Tool
服务端:WIN10、Python3
WMI相关工具可查看Black Hat 2015的报告
0x02 文件简介
evil3.vbs -- 恶意VBS脚本。创建事件过滤器,捕获账户成功登陆的事件;创建活动脚本事件消费者,捕获到事件后执行远程脚本pnc.js;绑定过滤器和消费者。
pnc.js -- 服务端恶意脚本。下载powercat.ps1,并使用其返回shell。
shell_server.py -- 服务端监听shell的脚本。
powercat.ps1 -- powershell版netcat。(https://github.com/besimorhino/powercat)
clean.ps1 -- 清除evil3.vbs创建的过滤器、消费者、绑定器。
0x03 视频演示
B站可看高清视频
0x04 Reference
A WMI Based Agentless Post-Exploitation RAT Developed in PowerShell