Skip to main content

WMI

WMIC  (Windows 管理仪表) 是一项 Windows 管理功能,它为本地和远程访问 Windows 系统组件提供统一的环境。系统管理员可以创建 VBScript 或 PowerShell 脚本来管理本地和远程的 Windows 主机。WMI 也是横向移动和远程代码执行的原生方式,它需要本地管理员权限。

Windows 内置命令wmi.exe

我们可以通过如下的原生命令给远程主机创建新的进程:

wmic /node:<主机> /user:<用户名> /password:<密码> process call create "<命令>" 

image.png

然后发现在目标主机上该进程确实存在了。

image.png

将要启动的进程换为载荷,便能实现横向移动了。

image.png

C2 

remote-exec wmi

我们会发现没有 jump wmi 的选项,只有 remote-exec wmi。remote-exec 方法使用的其实就是 process call create 来执行任意命令。

image.png

因此,我们可以先上传载荷文件到目标主机上,再使用 remote-exec 来执行。

image.png


第三方工具

Impacket

Impacket 中的 wmiexec 同样可用于横向移动,不过返回的是半交互式 Shell

image.png

因为 wmiexec 会将输出写入文件,因此会带来 IoC,静默命令以及取消输出可以改善这一问题。

image.png

XiaoLi 修改后的 wmiexec 脚本 (https://github.com/XiaoliChan/wmiexec-RegOut) 通过注册表读写输出,也是一个不错的方法。