Exponiertes RDP: Die Fehlkonfiguration, die Angreifern immer noch zugutekommt
Detection stack
- AIDR
- Alert
- ETL
- Query
Zusammenfassung
Der Artikel erklärt, dass exponierte Remote-Desktop-Protokolldienste weiterhin als häufige anfängliche Zugriffsvektoren für Angreifer dienen. Viele Organisationen lassen RDP-Ports noch immer vom öffentlichen Internet aus zugänglich, was sie zu leichten Zielen für automatisches Scannen und opportunistische Eindringversuche macht. Der Beitrag hebt reale Vorfälle hervor, bei denen Angreifer offenen RDP-Zugang oder offene RDWeb-Portale ausnutzten, um in Umgebungen einzudringen und anschließend ihren Zugang durch seitliche Bewegungen zu erweitern.
Untersuchung
Die beschriebenen Fälle umfassen eine Gesundheitseinrichtung mit einem internetexponierten RDP-Port, einen Vorfall mit Kompromittierung durch ein RDWeb-Portal und einen Einbruch, bei dem Angreifer die Firewall- und Registrierungseinstellungen änderten, um RDP zu aktivieren, nachdem sie ein verwundbares SonicWall-VPN-Gerät ausgenutzt hatten. In diesen Szenarien verließen sich die Angreifer auf einfache Windows-Befehle, Reverse-Tunneling-Utilities und Skripte zur Anmeldeinformationsausgrabung, um den Zugang aufrechtzuerhalten und tiefer ins Netzwerk vorzudringen.
Abschwächung
Die empfohlenen Abwehrmaßnahmen konzentrieren sich darauf, unnötige RDP-Exposition zu beseitigen, den erforderlichen RDP-Zugang hinter korrekt konfigurierten Firewalls zu platzieren, Anmeldeinformationen nach vermuteter Exposition zu rotieren und Firewall- und VPN-Protokolle in ein SIEM einzuspeisen, um eine schnellere Erkennung zu ermöglichen. Der Artikel rät auch zum Einsatz von EDR-Abdeckung und Überwachung von Registrierungsänderungen, die RDP-Dienste aktivieren oder reaktivieren.
Reaktion
Wenn verdächtige RDP-bezogene Aktivitäten erkannt werden, sollten die Reaktionskräfte die betroffene IP-Adresse blockieren, den RDP-Dienst deaktivieren, alle bösartigen Registrierungsänderungen rückgängig machen, überprüfen, dass die Firewall-Regeln nicht geändert wurden, und betroffene Anmeldeinformationen zurücksetzen. Eine kontinuierliche Überwachung auf wiederholte Zugriffsversuche und die Validierung aller Konfigurationsänderungen sind ebenfalls wesentlich.
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>Technik</b> – <b>T1595.001</b><br/><b>Name</b>: Aktives Scannen: IP-Blöcke scannen<br/><b>Beschreibung</b>: Der Angreifer durchsucht IP-Adressbereiche, um verwundbare Hosts zu finden.“] class tech_scanning_ip technique tech_scanning_vuln[„<b>Technik</b> – <b>T1595.002</b><br/><b>Name</b>: Aktives Scannen: Schwachstellentest<br/><b>Beschreibung</b>: Verwendet automatisierte Werkzeuge, um bekannte Schwachstellen in entfernten Systemen zu finden.“] class tech_scanning_vuln technique tech_valid_accounts[„<b>Technik</b> – <b>T1078</b><br/><b>Name</b>: Gültige Konten<br/><b>Beschreibung</b>: Nutzung gestohlener oder anderweitig kompromittierter Anmeldeinformationen, um Zugang zu erhalten.“] class tech_valid_accounts technique tech_disable_firewall[„<b>Technik</b> – <b>T1562.004</b><br/><b>Name</b>: Deaktivieren oder Ändern von Systemfirewall<br/><b>Beschreibung</b>: Ändert die Firewall-Konfiguration, um eingehenden Verkehr wie RDP zu erlauben.“] class tech_disable_firewall technique tech_create_modify_process[„<b>Technik</b> – <b>T1543</b><br/><b>Name</b>: Erstellen oder Ändern eines Systemprozesses<br/><b>Beschreibung</b>: Erstellt oder ändert Systemprozesse über Registrierungs- oder Dienstkonfiguration.“] class tech_create_modify_process technique tech_system_services[„<b>Technik</b> – <b>T1569</b><br/><b>Name</b>: Systemdienste<br/><b>Beschreibung</b>: Manipuliert Dienste, um bösartigen Code auszuführen oder Persistenz aufrechtzuerhalten.“] class tech_system_services technique tech_discovery_network[„<b>Technik</b> – <b>T1049</b><br/><b>Name</b>: Entdeckung von Systemnetzwerkverbindungen<br/><b>Beschreibung</b>: Listet aktive Netzwerkverbindungen auf dem kompromittierten Host auf.“] class tech_discovery_network technique %% Nodes – Tools / Commands tool_shodan[„<b>Tool</b> – <b>Name</b>: Shodan<br/><b>Beschreibung</b>: Internet-weiter Scanning-Service zur Entdeckung exponierter Dienste wie RDP.“] class tool_shodan tool tool_rdp[„<b>Tool</b> – <b>Name</b>: Remote Desktop Protocol (RDP)<br/><b>Beschreibung</b>: Windows-Remote-Login-Dienst, der nach Diebstahl von Anmeldeinformationen genutzt wird.“] class tool_rdp tool tool_netsh[„<b>Tool</b> – <b>Name</b>: netsh<br/><b>Befehl</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>Befehl</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>Befehl</b>: net start TermService“] class tool_netstart tool tool_adv_ip_scanner[„<b>Tool</b> – <b>Name</b>: Advanced IP Scanner<br/><b>Beschreibung</b>: GUI-Dienstprogramm zur Auflistung von Geräten und Netzwerkverbindungen.“] class tool_adv_ip_scanner tool %% Connections – Attack Flow tech_scanning_ip –>|verwendet| tool_shodan tech_scanning_ip –>|führt zu| tech_scanning_vuln tech_scanning_vuln –>|führt zu| tech_valid_accounts tech_valid_accounts –>|verwendet| tool_rdp tool_rdp –>|ermöglicht| tech_disable_firewall tech_disable_firewall –>|verwendet| tool_netsh tech_disable_firewall –>|führt zu| tech_create_modify_process tech_create_modify_process –>|verwendet| tool_reg tech_create_modify_process –>|führt zu| tech_system_services tech_system_services –>|verwendet| tool_netstart tech_valid_accounts –>|wird für wiederverwendet| tech_valid_accounts tech_valid_accounts –>|führt zu| tech_discovery_network tech_discovery_network –>|verwendet| tool_adv_ip_scanner
Angriffsfluss
Erkennungen
Mögliche Remote-Desktop-Dienste-Schattenkopie (via registry_event)
Ansehen
Mögliche Remote-Desktop-Dienste-Schattenkopie (via process_creation)
Ansehen
Verdächtige Firewall-Änderungen via CLI (via cmdline)
Ansehen
Erkennen von Registrierungsänderungen, um RDP-Verbindungen zu ermöglichen [Windows-Registrierungsereignis]
Ansehen
Erkennung von exponiertem RDP und Firewall-Regeländerung [Firewall]
Ansehen
Simulationsausführung
Voraussetzung: Die Telemetrie- und Basislinien-Vorkontrolle muss bestanden werden.
Begründung: In diesem Abschnitt wird die präzise Ausführung der Angreifertechnik (TTP) beschrieben, die entwickelt wurde, um die Erkennungsregel auszulösen. Die Befehle und Erzählungen MÜSSEN die identifizierten TTPs direkt widerspiegeln und darauf abzielen, die genaue Telemetrie zu generieren, die von der Erkennungslogik erwartet wird.
-
Angriffserzählung & Befehle:
-
Aufklärung (T1016.001): Der Angreifer führt einen schnellen Scan des Ziel-Subnets durch, um Hosts mit offenem Port 3389 zu identifizieren, unter Verwendung von
Test-NetConnectionin einer Schleife. -
Privilegieneskalation / Firewall-Manipulation (T1021.001): Nachdem lokale Administratorrechte erlangt wurden, nutzt der Angreifer
netsh.exeum eine freizügige eingehende Firewall-Regel für RDP hinzuzufügen und so den Dienst dem Internet auszusetzen. - Überprüfung nach Erstellung: Der Angreifer listet Firewall-Regeln auf, um zu bestätigen, dass der neue Eintrag existiert, und initiiert dann eine RDP-Sitzung (außerhalb des Umfangs dieses Tests).
-
Aufklärung (T1016.001): Der Angreifer führt einen schnellen Scan des Ziel-Subnets durch, um Hosts mit offenem Port 3389 zu identifizieren, unter Verwendung von
-
Regressionstest-Skript:
#--------------------------------------------------------- # Simulierte Angreiferaktivität – RDP-Exposition via netsh #--------------------------------------------------------- # 1. Scannen Sie das lokale /24 Subnet auf offene RDP-Ports (harmloses Scannen) $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 open on $ip" } } # 2. Fügen Sie eine Firewall-Regel hinzu, die eingehenden RDP von jeder Adresse erlaubt $ruleName = "TempAllowRDP_$(Get-Random -Maximum 10000)" $netshCmd = "advfirewall firewall add rule name=`"$ruleName`" dir=in action=allow protocol=TCP localport=3389" Write-Host "`n[+] Creating firewall rule via netsh..." Start-Process -FilePath "$env:SystemRootSystem32netsh.exe" -ArgumentList $netshCmd -Wait -NoNewWindow # 3. Überprüfen Sie, dass die Regel existiert (optional, hilft bei der Bestätigung der Telemetrie) netsh advfirewall firewall show rule name=$ruleName # Ende des simulierten Angriffs -
Bereinigungskommandos:
#--------------------------------------------------------- # Entfernen Sie die während des Tests erstellte temporäre Firewall-Regel #--------------------------------------------------------- $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 "[*] Deleting rule $r" netsh advfirewall firewall delete rule name=$r }