SOC Prime Bias: Critique

22 May 2026 07:08 UTC

RDP Exposé : La Mauvaise Configuration Qui Continue de Payer pour les Attaquants

Author Photo
SOC Prime Team linkedin icon Suivre
RDP Exposé : La Mauvaise Configuration Qui Continue de Payer pour les Attaquants
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

Résumé

L’article explique que les services Remote Desktop Protocol exposés continuent d’être un vecteur d’accès initiale courant pour les attaquants. De nombreuses organisations laissent encore les ports RDP accessibles depuis Internet, ce qui en fait des cibles faciles pour les scans automatisés et les tentatives d’intrusion opportunistes. Le post met en avant des incidents réels dans lesquels des attaquants ont abusé de l’accès RDP ouvert ou des portails RDWeb exposés pour pénétrer dans des environnements et étendre ensuite leur accès par mouvement latéral.

Investigation

Les cas décrits incluent une organisation de santé avec un port RDP exposé sur Internet, un incident impliquant une compromission via un portail RDWeb, et une intrusion où les attaquants ont modifié les paramètres de pare-feu et de registre pour activer RDP après avoir exploité un appareil SonicWall VPN vulnérable. Dans ces scénarios, les attaquants se sont appuyés sur des commandes Windows simples, des utilitaires de tunneling inverse, et des scripts de collecte d’identifiants pour maintenir l’accès et progresser plus loin dans le réseau.

Atténuation

Les défenses recommandées se concentrent sur l’élimination de l’exposition inutile de RDP, la mise en place de l’accès RDP requis derrière des pare-feu correctement configurés, la rotation des identifiants après toute exposition suspectée, et le transfert des journaux de pare-feu et de VPN dans un SIEM pour une détection plus rapide. L’article conseille également de déployer une couverture EDR et de surveiller les modifications de registre qui activent ou réactivent les services RDP.

Réponse

Si une activité suspecte liée à RDP est détectée, les intervenants doivent bloquer l’adresse IP fautive, désactiver le service RDP, inverser les modifications malveillantes du registre, s’assurer que les règles du pare-feu n’ont pas été modifiées, et réinitialiser les identifiants affectés. Un suivi continu des tentatives d’accès répétées et la validation de tous les changements de configuration sont également essentiels.

<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>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</b>: GUI utility used to enumerate devices and network connections. »] class tool_adv_ip_scanner tool %% Connections – Attack Flow tech_scanning_ip –>|uses| tool_shodan tech_scanning_ip –>|leads_to| tech_scanning_vuln tech_scanning_vuln –>|leads_to| tech_valid_accounts tech_valid_accounts –>|uses| tool_rdp tool_rdp –>|enables| tech_disable_firewall tech_disable_firewall –>|uses| tool_netsh tech_disable_firewall –>|leads_to| tech_create_modify_process tech_create_modify_process –>|uses| tool_reg tech_create_modify_process –>|leads_to| tech_system_services tech_system_services –>|uses| tool_netstart tech_valid_accounts –>|reused_for| tech_valid_accounts tech_valid_accounts –>|leads_to| tech_discovery_network tech_discovery_network –>|uses| tool_adv_ip_scanner

Flux d’attaque

Exécution de Simulation

Préalable : Le contrôle préalable de télémétrie et de baselining doit avoir réussi.

Rationnel: Cette section détaille l’exécution précise de la technique de l’adversaire (TTP) conçue pour déclencher la règle de détection. Les commandes et le récit doivent refléter directement les TTP identifiés et viser à générer exactement la télémétrie attendue par la logique de détection.

  • Narration et Commandes d’attaque :

    1. Reconnaissance (T1016.001) : L’adversaire exécute une analyse rapide du sous-réseau cible pour identifier les hôtes avec le port 3389 ouvert, en utilisant Test-NetConnection dans une boucle.
    2. Escalade des privilèges / Manipulation du pare-feu (T1021.001) : Ayant obtenu les droits administratifs locaux, l’attaquant utilise netsh.exe pour ajouter une règle de pare-feu permissive pour RDP, exposant ainsi le service à Internet.
    3. Vérification après création : L’attaquant liste les règles de pare-feu pour confirmer l’existence de la nouvelle entrée, puis initie une session RDP (hors du périmètre de ce test).
  • Script de Test de Régression :

    #---------------------------------------------------------
    # Activité Simulée de l'Adversaire – Exposition RDP via netsh
    #---------------------------------------------------------
    # 1. Analyser le sous-réseau local /24 pour des ports RDP ouverts (recon bénigne)
    $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 ouvert sur $ip"
        }
    }
    
    # 2. Ajouter une règle de pare-feu permettant l'entrée RDP depuis n'importe quelle adresse
    $ruleName = "TempAllowRDP_$(Get-Random -Maximum 10000)"
    $netshCmd = "advfirewall firewall add rule name=`"$ruleName`" dir=in action=allow protocol=TCP localport=3389"
    Write-Host "`n[+] Création de la règle de pare-feu via netsh..."
    Start-Process -FilePath "$env:SystemRootSystem32netsh.exe" -ArgumentList $netshCmd -Wait -NoNewWindow
    
    # 3. Vérifier que la règle existe (optionnel, aide à confirmer la télémétrie)
    netsh advfirewall firewall show rule name=$ruleName
    
    # Fin de l'attaque simulée
  • Commandes de Nettoyage :

    #---------------------------------------------------------
    # Supprimer la règle de pare-feu temporairement créée pendant le test
    #---------------------------------------------------------
    $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 "[*] Suppression de la règle $r"
        netsh advfirewall firewall delete rule name=$r
    }