RDP Enumeration Cheatsheet
Default Port: 3389 (TCP)
Detection & Info Gathering
nmap -p 3389 -sV <ip>
nmap -p 3389 --script rdp-enum-encryption <ip>
nmap -p 3389 --script rdp-vuln-ms12-020 <ip>
nmap -p 3389 --script rdp-enum-encryption,rdp-vuln-ms12-020,rdp-ntlm-info <ip>
Check NLA (Network Level Auth)
# If NLA is required, credential prompt appears BEFORE full connection
nmap -p 3389 --script rdp-enum-encryption <ip>
# Look for: "Security layer: NLA" or "CredSSP"
# rdp_check.py (impacket) — tests credential validity
python3 rdp_check.py <domain>/<user>:<pass>@<ip>
Password Attacks
# Hydra
hydra -l <user> -P wordlist.txt rdp://<ip>
hydra -L users.txt -P wordlist.txt rdp://<ip>
hydra -l <user> -P wordlist.txt rdp://<ip> -t 4 # Limit threads (RDP is picky)
# Crowbar
crowbar -b rdp -s <ip>/32 -u <user> -C wordlist.txt
crowbar -b rdp -s 192.168.1.0/24 -U users.txt -C wordlist.txt
# Metasploit
use auxiliary/scanner/rdp/rdp_scanner
set RHOSTS <ip>
run
Connecting via Linux
# xfreerdp (recommended)
xfreerdp /u:<user> /p:<pass> /v:<ip>
xfreerdp /u:<user> /p:<pass> /v:<ip> /d:<domain>
xfreerdp /u:<user> /p:<pass> /v:<ip> /drive:share,/tmp # Mount local dir
xfreerdp /u:<user> /p:<pass> /v:<ip> /cert-ignore # Ignore cert errors
xfreerdp /u:<user> /h:<nthash> /v:<ip> # Pass-the-Hash
# rdesktop
rdesktop <ip>
rdesktop -u <user> -p <pass> -d <domain> <ip>
# Remmina (GUI)
remmina -c rdp://<user>@<ip>
Session Hijacking (Post-Exploitation)
# List sessions (on Windows target)
query session
query user
# Hijack disconnected session (as SYSTEM)
tscon <session_id> /dest:<current_session>
Key Vulnerabilities
| CVE | Name | Affected Systems | Description |
|---|---|---|---|
| CVE-2019-0708 | BlueKeep | Win7, WinXP, Server 2008 | Pre-auth RCE via RDP |
| CVE-2019-1181 | DejaBlue | Win8, Win10, Server 2012+ | Pre-auth RCE via RDP |
| CVE-2019-1182 | DejaBlue | Win8, Win10, Server 2012+ | Pre-auth RCE via RDP |
| CVE-2012-0002 | MS12-020 | Multiple | DoS / potential code execution |
BlueKeep Check (Metasploit)
use auxiliary/scanner/rdp/cve_2019_0708_bluekeep
set RHOSTS <ip>
run
Useful Options
# Custom RDP port
xfreerdp /u:<user> /p:<pass> /v:<ip>:<port>
# Enable clipboard sharing
xfreerdp /u:<user> /p:<pass> /v:<ip> +clipboard
# Full screen
xfreerdp /u:<user> /p:<pass> /v:<ip> /f
# Dynamic resolution
xfreerdp /u:<user> /p:<pass> /v:<ip> /dynamic-resolution