TerminalFix-Kampagne ermöglicht Netzwerk-Pivoting durch kompromittierte Hosts
Detection stack
- AIDR
- Alert
- ETL
- Query
Zusammenfassung
TerminalFix ist eine Variante der ClickFix-Technik, bei der Angreifer gefälschte Cloudflare-Verifizierungsprompts verwenden, um Nutzer zur Ausführung bösartiger PowerShell-Befehle zu manipulieren. Der Angriff kombiniert DLL-Sideloading, Steganographie-basierte Payload-Auslieferung und einen WebSocket-basierten Reverse-Tunnel. Dies ermöglicht der kompromittierten Workstation, als Netzwerk-Pivot für zusätzliche Aufklärung und potenzielle Ransomware-Bereitstellung zu fungieren.
Untersuchung
Die Untersuchung untersuchte den Angriffszyklus vom anfänglichen webbasierten Köder bis zur Aktivität nach der Ausnutzung. Analysten identifizierten, dass LockScreenContentServer.exe für DLL-Sideloading missbraucht wurde und PNG-Dateien für die steganographische Payload-Auslieferung verwendet wurden. Die Kampagne wurde basierend auf deutschen Medienberichten und von der BSI veröffentlichten Warnungen weiter mit Vice Spider in Verbindung gebracht.
Abschwächung
Verteidiger sollten auf verdächtige browserbasierte iframes gefolgt von PowerShell- oder Windows-Terminal-Ausführungen überwachen. Organisationen sollten ungewöhnliches DLL-Ladeverhalten erkennen, insbesondere wenn legitime Binärdateien DLLs aus unerwarteten Standorten wie C:ProgramData laden. Die Einschränkung von PowerShell-Ausführungsrichtlinien und die Überwachung auf unautorisierte geplante Aufgaben und Registry-Run-Keys-Modifikationen können die Angriffsexposition weiter reduzieren.
Reaktion
Wenn TerminalFix-Aktivität erkannt wird, isolieren Sie die betroffene Workstation, um zu verhindern, dass sie als Netzwerk-Pivot fungiert. Analysieren Sie den Netzwerkverkehr auf externe WebSocket-Verbindungen zu unbekannten Domänen und interne Aufklärungsaktivitäten wie LDAP-Abfragen. Überprüfen Sie die Endpunkt-Telemetrie auf unautorisierte Python-Skriptausführung und die Verwendung von Tools wie Impacket und Certipy.
Angriffsverlauf
Wir aktualisieren diesen Teil noch.
Erkennungen
Verdächtige Operationen am NoWarningNoElevationOnInstall-Registrierungsschlüssel (über registry_event)
Mögliche Persistenzpunkte [ASEPs – Software/NTUSER Hive] (über registry_event)
Mögliche Impacket-Befehlszeilenmuster (über cmdline)
Mögliche Remote-Code-Ausführung mit Impacket (über cmdline)
Python-Ausführung aus verdächtigen Ordnern (über cmdline)
Mögliche Admin-Konto- oder Gruppenzählung (über cmdline)
Verdächtige Domain-Vertrauensentdeckung (über cmdline)
Mögliche Laterale Bewegung via PsExec oder Ähnliches (über system)
Mögliche Laterale Bewegung via PsExec oder Ähnliches (über audit)
Mögliche PsExec-Nutzung (über audit)
IoCs (SourceIP) zu erkennen: TerminalFix: Wenn eine Workstation ein Netzwerk-Pivot wird
IoCs (DestinationIP) zu erkennen: TerminalFix: Wenn eine Workstation ein Netzwerk-Pivot wird
Erkennung des TerminalFix-Netzwerk-Pivots [Windows-Netzwerkverbindung]
Erkennung der bösenartigen TerminalFix-Ausführung [Windows-Prozesserstellung]
Erkennung von bösartigen PowerShell-Befehlen für ZIP- und PNG-Abruf [Windows PowerShell]
Simulation Ausführung
-
Angriffserzählung & Kommandos: Der Angreifer hat sich initialen Zugang verschafft und versucht, einen dauerhaften C2-Kanal zu etablieren, um über die Workstation zu pivotieren. Um sich in den Standard-Webverkehr einzufügen, nutzen sie das WebSocket-Protokoll. Der Angreifer führt ein PowerShell-Skript aus, das eine Verbindung zu
gitnow.dev. Dies ahmt das TerminalFix-Verhalten nach, bei dem die Workstation als Relais fungiert. Das Ziel ist es, dieselection_domainandselection_connectionKriterien der Erkennungsregel zu triggern. -
Regressionstest-Skript:
# Simulation der TerminalFix-C2-WebSocket-Verbindung # Ziel-Domain: gitnow.dev $targetDomain = "gitnow.dev" $uri = "wss://$targetDomain/path/to/c2" Write-Host "Simulation der TerminalFix-C2-Verbindung zu $targetDomain..." $ws = New-Object System.Net.WebSockets.ClientWebSocket $ct = New-Object System.Threading.CancellationTokenSource try { # Versuchen der Verbindung zur Generierung von Netzwerkverbindungstelemetrie $connectTask = $ws.ConnectAsync($uri, $ct.Token) # Wir verwenden ein Timeout, da die Domain wahrscheinlich nicht existiert/nicht antwortet if ($connectTask.Wait(10000)) { Write-Host "Erfolgreich mit $targetDomain verbunden" $ws.CloseAsync([System.Net.WebSockets.WebSocketCloseStatus]::NormalClosure, "Schließen", $ct.Token).Wait() } } catch { Write-Host "Verbindungsversuch unternommen. Telemetrie sollte in Sysmon/EDR-Protokollen generiert werden." Write-Host "Fehlerdetal: $($_.Exception.Message)" } finally { $ws.Dispose() } -
Bereinigungskommandos:
# In diesem speziellen Simulationsskript wurden keine Persistenz- oder Dateien erstellt. # Wenn temporäre Dateien verwendet wurden, sollten sie hier entfernt werden. Write-Host "Simulationsbereinigung abgeschlossen. Keine Artefakte von diesem Skript hinterlassen."