SOC Prime Bias: Crítico

22 May 2026 07:08 UTC

RDP Expuesto: La Mala Configuración que Aún Beneficia a los Atacantes

Author Photo
SOC Prime Team linkedin icon Seguir
RDP Expuesto: La Mala Configuración que Aún Beneficia a los Atacantes
shield icon

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.

<div class="wp-block-socprime-category-attack-flow attack-flow-class" data-title="Attack Flow" data-attack-flow="graph TB %% Class Definitions classDef technique fill:#ffcc99 classDef action fill:#99ccff classDef tool fill:#cccccc classDef operator fill:#ff9900 %% Nodes – Techniques tech_scanning_ip["<b>Technique</b> – <b>T1595.001</b><br/><b>Name</b>: Active Scanning: Scanning IP Blocks<br/><b>Description</b>: Adversary probes ranges of IP addresses to locate vulnerable hosts."] class tech_scanning_ip technique tech_scanning_vuln["<b>Technique</b> – <b>T1595.002</b><br/><b>Name</b>: Active Scanning: Vulnerability Scanning<br/><b>Description</b>: Uses automated tools to find known vulnerabilities in remote systems."] class tech_scanning_vuln technique tech_valid_accounts["<b>Technique</b> – <b>T1078</b><br/><b>Name</b>: Valid Accounts<br/><b>Description</b>: Use of stolen or otherwise compromised credentials to gain access."] class tech_valid_accounts technique tech_disable_firewall["<b>Technique</b> – <b>T1562.004</b><br/><b>Name</b>: Disable or Modify System Firewall<br/><b>Description</b>: Alters firewall configuration to allow inbound traffic such as RDP."] class tech_disable_firewall technique tech_create_modify_process["<b>Technique</b> – <b>T1543</b><br/><b>Name</b>: Create or Modify System Process<br/><b>Description</b>: Creates or changes system processes via registry or service configuration."] class tech_create_modify_process technique tech_system_services["<b>Technique</b> – <b>T1569</b><br/><b>Name</b>: System Services<br/><b>Description</b>: Manipulates services to execute malicious code or maintain persistence."] class tech_system_services technique tech_discovery_network["<b>Technique</b> – <b>T1049</b><br/><b>Name</b>: System Network Connections Discovery<br/><b>Description</b>: Enumerates active network connections on the compromised host."] class tech_discovery_network technique %% Nodes – Tools / Commands tool_shodan["<b>Tool</b> – <b>Name</b>: Shodan<br/><b>Description</b>: Internet‑wide scanning service used to discover exposed services such as RDP."] class tool_shodan tool tool_rdp["<b>Tool</b> – <b>Name</b>: Remote Desktop Protocol (RDP)<br/><b>Description</b>: Windows remote login service leveraged after credential theft."] class tool_rdp tool tool_netsh["<b>Tool</b> – <b>Name</b>: netsh<br/><b>Command</b>: netsh advfirewall add rule name='RDP-Open' dir=in protocol=TCP localport=3389 action=allow enable=yes"] class tool_netsh tool tool_reg["<b>Tool</b> – <b>Name</b>: reg.exe<br/><b>Command</b>: reg add "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server" /v fDenyTSConnections /t REG_DWORD /d 0 /f"] class tool_reg tool tool_netstart["<b>Tool</b> – <b>Name</b>: net start<br/><b>Command</b>: net start TermService"] class tool_netstart tool tool_adv_ip_scanner["<b>Tool</b> – <b>Name</b>: Advanced IP Scanner<br/><b>Description

graph TB %% Class Definitions classDef technique fill:#ffcc99 classDef action fill:#99ccff classDef tool fill:#cccccc classDef operator fill:#ff9900 %% Nodes – Techniques tech_scanning_ip[«<b>Técnica</b> – <b>T1595.001</b><br/><b>Nombre</b>: Escaneo Activo: Escaneo de Bloques IP<br/><b>Descripción</b>: El adversario sondea rangos de direcciones IP para localizar hosts vulnerables.»] class tech_scanning_ip technique tech_scanning_vuln[«<b>Técnica</b> – <b>T1595.002</b><br/><b>Nombre</b>: Escaneo Activo: Escaneo de Vulnerabilidades<br/><b>Descripción</b>: Usa herramientas automatizadas para encontrar vulnerabilidades conocidas en sistemas remotos.»] class tech_scanning_vuln technique tech_valid_accounts[«<b>Técnica</b> – <b>T1078</b><br/><b>Nombre</b>: Cuentas Válidas<br/><b>Descripción</b>: Uso de credenciales robadas o comprometidas para obtener acceso.»] class tech_valid_accounts technique tech_disable_firewall[«<b>Técnica</b> – <b>T1562.004</b><br/><b>Nombre</b>: Deshabilitar o Modificar el Firewall del Sistema<br/><b>Descripción</b>: Altera la configuración del firewall para permitir tráfico entrante como RDP.»] class tech_disable_firewall technique tech_create_modify_process[«<b>Técnica</b> – <b>T1543</b><br/><b>Nombre</b>: Crear o Modificar Proceso del Sistema<br/><b>Descripción</b>: Crea o cambia procesos del sistema a través de la configuración de registros o servicios.»] class tech_create_modify_process technique tech_system_services[«<b>Técnica</b> – <b>T1569</b><br/><b>Nombre</b>: Servicios del Sistema<br/><b>Descripción</b>: Manipula servicios para ejecutar código malicioso o mantener persistencia.»] class tech_system_services technique tech_discovery_network[«<b>Técnica</b> – <b>T1049</b><br/><b>Nombre</b>: Descubrimiento de Conexiones de Red del Sistema<br/><b>Descripción</b>: Enumera conexiones de red activas en el host comprometido.»] class tech_discovery_network technique %% Nodes – Tools / Commands tool_shodan[«<b>Herramienta</b> – <b>Nombre</b>: Shodan<br/><b>Descripción</b>: Servicio de escaneo a nivel de internet usado para descubrir servicios expuestos como RDP.»] class tool_shodan tool tool_rdp[«<b>Herramienta</b> – <b>Nombre</b>: Protocolo de Escritorio Remoto (RDP)<br/><b>Descripción</b>: Servicio de inicio de sesión remoto de Windows utilizado después del robo de credenciales.»] class tool_rdp tool tool_netsh[«<b>Herramienta</b> – <b>Nombre</b>: netsh<br/><b>Comando</b>: netsh advfirewall add rule name=’RDP-Open’ dir=in protocol=TCP localport=3389 action=allow enable=yes»] class tool_netsh tool tool_reg[«<b>Herramienta</b> – <b>Nombre</b>: reg.exe<br/><b>Comando</b>: reg add «HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server» /v fDenyTSConnections /t REG_DWORD /d 0 /f»] class tool_reg tool tool_netstart[«<b>Herramienta</b> – <b>Nombre</b>: net start<br/><b>Comando</b>: net start TermService»] class tool_netstart tool tool_adv_ip_scanner[«<b>Herramienta</b> – <b>Nombre</b>: Advanced IP Scanner<br/><b>Descripción</b>: Utilidad GUI usada para enumerar dispositivos y conexiones de red.»] class tool_adv_ip_scanner tool %% Connections – Attack Flow tech_scanning_ip –>|usa| tool_shodan tech_scanning_ip –>|lleva a| tech_scanning_vuln tech_scanning_vuln –>|lleva a| tech_valid_accounts tech_valid_accounts –>|usa| tool_rdp tool_rdp –>|habilita| tech_disable_firewall tech_disable_firewall –>|usa| tool_netsh tech_disable_firewall –>|lleva a| tech_create_modify_process tech_create_modify_process –>|usa| tool_reg tech_create_modify_process –>|lleva a| tech_system_services tech_system_services –>|usa| tool_netstart tech_valid_accounts –>|reutilizada para| tech_valid_accounts tech_valid_accounts –>|lleva a| tech_discovery_network tech_discovery_network –>|usa| tool_adv_ip_scanner

Flujo de Ataque

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:

    1. Reconocimiento (T1016.001): El adversario realiza un escaneo rápido del subred objetivo para identificar hosts con el puerto 3389 abierto, usando Test-NetConnection en un bucle.
    2. Escalada de Privilegios / Manipulación del Firewall (T1021.001): Habiendo conseguido derechos de administrador local, el atacante usa netsh.exe para agregar una regla de firewall entrante permisiva para RDP, exponiendo así el servicio a internet.
    3. 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).
  • 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
    }