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

9.8 KiB

3389 - Pentesting RDP

☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥

DragonJAR Security Conference es un evento internacional de ciberseguridad con más de una década que se celebrará el 7 y 8 de septiembre de 2023 en Bogotá, Colombia. Es un evento de gran contenido técnico donde se presentan las últimas investigaciones en español que atrae a hackers e investigadores de todo el mundo.
¡Regístrate ahora en el siguiente enlace y no te pierdas esta gran conferencia!:

{% embed url="https://www.dragonjarcon.org/" %}

Información básica

El Protocolo de Escritorio Remoto (RDP) es un protocolo propietario desarrollado por Microsoft, que proporciona a un usuario una interfaz gráfica para conectarse a otra computadora a través de una conexión de red. El usuario utiliza software cliente RDP para este propósito, mientras que la otra computadora debe ejecutar software servidor RDP (de aquí).

Puerto predeterminado: 3389

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

Enumeración

Automática

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

Comprueba la encriptación disponible y la vulnerabilidad DoS (sin causar DoS al servicio) y obtiene información de Windows NTLM (versiones).

Fuerza bruta

Ten cuidado, podrías bloquear cuentas

Rociado de contraseñas

Ten cuidado, podrías bloquear cuentas

# 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

Conectar con credenciales/hash conocidos

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

Verificar credenciales conocidas contra servicios RDP

rdp_check.py de Impacket te permite verificar si algunas credenciales son válidas para un servicio RDP:

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

DragonJAR Security Conference es un evento internacional de ciberseguridad con más de una década que se celebrará el 7 y 8 de septiembre de 2023 en Bogotá, Colombia. Es un evento de gran contenido técnico donde se presentan las últimas investigaciones en español que atrae a hackers e investigadores de todo el mundo.
¡Regístrate ahora en el siguiente enlace y no te pierdas esta gran conferencia!:

{% embed url="https://www.dragonjarcon.org/" %}

Ataques

Robo de sesión

Con permisos de SYSTEM puedes acceder a cualquier sesión RDP abierta por cualquier usuario sin necesidad de conocer la contraseña del propietario.

Obtener sesiones abiertas:

query user

Acceso a la sesión seleccionada

tscon <ID> /dest:<SESSIONNAME>

Ahora estarás dentro de la sesión RDP seleccionada y tendrás que hacerse pasar por un usuario utilizando solo herramientas y características de Windows.

Importante: Cuando acceda a una sesión RDP activa, cerrará la sesión del usuario que la estaba utilizando.

Podría obtener contraseñas mediante el volcado de procesos, pero este método es mucho más rápido y le permite interactuar con los escritorios virtuales del usuario (contraseñas en el bloc de notas sin guardarse en el disco, otras sesiones RDP abiertas en otras máquinas...)

Mimikatz

También puede usar mimikatz para hacer esto:

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

Sticky-keys & Utilman

Combinando esta técnica con stickykeys o utilman podrás acceder a una CMD administrativa y cualquier sesión RDP en cualquier momento

Puedes buscar RDPs que ya hayan sido comprometidos con una de estas técnicas con: https://github.com/linuz/Sticky-Keys-Slayer

Inyección de proceso RDP

Si alguien de un dominio diferente o con mejores privilegios inicia sesión a través de RDP en la PC donde eres un administrador, puedes inyectar tu beacon en su proceso de sesión RDP y actuar como él:

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

Agregar usuario al grupo RDP

net localgroup "Remote Desktop Users" UserLoginName /add

Ataque Shadow

AutoRDPwn es un marco de post-explotación creado en Powershell, diseñado principalmente para automatizar el ataque Shadow en computadoras con Microsoft Windows. Esta vulnerabilidad (listada como una característica por Microsoft) permite a un atacante remoto ver el escritorio de su víctima sin su consentimiento, e incluso controlarlo a voluntad, utilizando herramientas nativas del propio sistema operativo.

{% embed url="https://github.com/JoelGMSec/AutoRDPwn" %}

Comandos Automáticos de 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: |
    Remote Desktop Protocol (RDP) is a proprietary protocol developed by Microsoft, which provides a user with a graphical interface to connect to another computer over a network connection. The user employs RDP client software for this purpose, while the other computer must run RDP server software 

    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}

DragonJAR Security Conference es un evento internacional de ciberseguridad con más de una década de antigüedad que se llevará a cabo el 7 y 8 de septiembre de 2023 en Bogotá, Colombia. Es un evento técnico de gran contenido donde se presentan las últimas investigaciones en español que atrae a hackers e investigadores de todo el mundo.
¡Regístrate ahora en el siguiente enlace y no te pierdas esta gran conferencia!:

{% embed url="https://www.dragonjarcon.org/" %}

☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥