RDP Expuesto: La Mala Configuración que Aún Beneficia a los Atacantes
Detection stack
- AIDR
- Alert
- ETL
- Query
Resumen
El artículo explica que los servicios del Protocolo de Escritorio Remoto expuestos continúan sirviendo como un vector común de acceso inicial para los atacantes. Muchas organizaciones aún dejan los puertos RDP accesibles desde la internet pública, convirtiéndolos en objetivos fáciles para el escaneo automatizado y los intentos de intrusión oportunistas. El post destaca incidentes reales en los que los atacantes abusaron del acceso RDP abierto o portales RDWeb expuestos para ingresar a los entornos y luego expandir su acceso mediante el movimiento lateral.
Investigación
Los casos descritos incluyen una organización de salud con un puerto de RDP expuesto a internet, un incidente que involucró el compromiso a través de un portal RDWeb, y una intrusión en la que los atacantes cambiaron la configuración del firewall y del registro para habilitar RDP después de explotar un dispositivo VPN de SonicWall vulnerable. En estos escenarios, los atacantes se basaron en comandos de Windows directos, utilidades de túnel inverso y scripts de recolección de credenciales para mantener el acceso y moverse más profundamente en la red.
Mitigación
Las defensas recomendadas se centran en eliminar la exposición innecesaria del RDP, colocar el acceso requerido de RDP detrás de firewalls configurados correctamente, rotar las credenciales después de cualquier exposición sospechosa, y alimentar los registros de firewall y VPN a un SIEM para una detección más rápida. El artículo también recomienda implementar cobertura EDR y monitoreo de los cambios en el registro que habilitan o reactivan los servicios RDP.
Respuesta
Si se detecta actividad sospechosa relacionada con RDP, los respondedores deben bloquear la dirección IP ofensiva, deshabilitar el servicio RDP, revertir cualquier cambio malicioso en el registro, confirmar que las reglas del firewall no han sido alteradas, y restablecer las credenciales afectadas. También es esencial el monitoreo continuo de intentos repetidos de acceso y la validación de todos los cambios de configuración.
Flujo de Ataque
Detecciones
Posible Sombrero de Servicios de Escritorio Remoto (via registry_event)
Ver
Posible Sombrero de Servicios de Escritorio Remoto (via process_creation)
Ver
Modificaciones Sospechosas del Firewall via CLI (via cmdline)
Ver
Detectar Modificación del Registro para Habilitar Conexiones RDP [Evento del Registro de Windows]
Ver
Detección de RDP Expuesto y Modificación de Reglas del Firewall [Firewall]
Ver
Ejecución de Simulación
Prerequisito: La Verificación Preliminar de Telemetría y Línea Base debe haber pasado.
Razonamiento: Esta sección detalla la ejecución precisa de la técnica del adversario (TTP) diseñada para activar la regla de detección. Los comandos y la narrativa DEBEN reflejar directamente las TTP identificadas y tienen como objetivo generar la telemetría exacta esperada por la lógica de detección.
-
Narrativa de Ataque & Comandos:
-
Reconocimiento (T1016.001): El adversario realiza un escaneo rápido del subred objetivo para identificar hosts con el puerto 3389 abierto, usando
Test-NetConnectionen un bucle. -
Escalada de Privilegios / Manipulación del Firewall (T1021.001): Habiendo conseguido derechos de administrador local, el atacante usa
netsh.exepara agregar una regla de firewall entrante permisiva para RDP, exponiendo así el servicio a internet. - Verificación Post-creación: El atacante enumera las reglas del firewall para confirmar que la nueva entrada existe, luego inicia una sesión RDP (fuera del alcance de esta prueba).
-
Reconocimiento (T1016.001): El adversario realiza un escaneo rápido del subred objetivo para identificar hosts con el puerto 3389 abierto, usando
-
Script de Prueba de Regresión:
#--------------------------------------------------------- # Actividad Simulada del Adversario – Exposición RDP vía netsh #--------------------------------------------------------- # 1. Escanea la subred local /24 en busca de puertos RDP abiertos (reconocimiento benigno) $subnet = "10.0.0." 1..254 | ForEach-Object { $ip = "$subnet$_" $result = Test-NetConnection -ComputerName $ip -Port 3389 -WarningAction SilentlyContinue if ($result.TcpTestSucceeded) { Write-Host "[+] RDP abierto en $ip" } } # 2. Agrega una regla de firewall que permita RDP entrante desde cualquier dirección $ruleName = "TempAllowRDP_$(Get-Random -Maximum 10000)" $netshCmd = "advfirewall firewall add rule name=`"$ruleName`" dir=in action=allow protocol=TCP localport=3389" Write-Host "`n[+] Creando regla de firewall vía netsh..." Start-Process -FilePath "$env:SystemRootSystem32netsh.exe" -ArgumentList $netshCmd -Wait -NoNewWindow # 3. Verifica que la regla existe (opcional, ayuda a confirmar la telemetría) netsh advfirewall firewall show rule name=$ruleName # Fin del ataque simulado -
Comandos de Limpieza:
#--------------------------------------------------------- # Eliminar la regla de firewall temporal creada durante la prueba #--------------------------------------------------------- $rulePrefix = "TempAllowRDP_" $rules = netsh advfirewall firewall show rule name=all | Select-String -Pattern $rulePrefix | ForEach-Object { ($_ -split 's+')[0] } foreach ($r in $rules) { Write-Host "[*] Eliminando regla $r" netsh advfirewall firewall delete rule name=$r }