
USB HID 驱动程序模拟,使用 Plenom A/S Busylight Alpha 的 PID/VID(0x3bca/0x27bb),该设备受 Mimikatz 支持。 当 mimikatz 执行时,默认会生成一个线程,尝试定位受支持的 busylight 之一。系统会枚举所有 HID 设备,如果 PID/VID 匹配,则会发送数据包以不同颜色闪烁 busylight。
mimikatz 会向该设备发送三种类型的数据包:
busylight::off 时发送由于此设备模拟的 HID 设备完全模仿真实的 USB 设备,mimikatz 无法区分两者。
该驱动程序是一个 umdf2 驱动程序,这意味着:
它透明地模拟 busylight 的行为。驱动程序会检查是否收到了三种(start、keepalive、stop)数据包中的任何一种,如果收到,则加载 DLL 并分别调用三个导出函数。 DLL 不需要签名,尽管签名可能有助于可信分发。DLL 的功能可以轻松更改。
DLL 有三个导出函数:
它们分别由驱动程序调用。目前实现了三种不同的报告模式:
以下格式显示在事件日志(或其他两个日志界面)中的 Windows Logs\Application 下
Tool started. PID: 13456
非常基础,但最重要的两条信息都在其中。它要么是启动/停止,要么是 keepalive,这表示该工具当时正在运行。PID 是进程 ID。
由于 UMDF 驱动程序以低权限用户在用户空间中运行,因此无法深入获取其他进程的信息,这应由另一个更高权限的服务来完成。
需要以提升权限的用户身份执行以下操作:
install.bat需要以提升权限的用户身份执行以下操作:
uninstall.bat已在三个不同的 Windows 10 安装上搭配 rsyslog 服务器进行了测试。
测试了以下 Mimikatz 变体:
自 2015 年 10 月 8 日以来的原始 Mimikatz 版本(已检测到)
编译为 DLL 的原始版本(已检测到)
编译为 PowerShell 的原始版本(Invoke-Mimikatz)(已检测到)
PowerSploit - Invoke-Mimikatz(已检测到)
CrackMapExec - Invoke-Mimikatz(已检测到)
Shellenium - Invoke-Mimikatz(已检测到)
Cobalt Strike(未检测到)
Metasploit kiwi 模块(未检测到)
Pypykatz(未检测到)