Verfolgen einer Akira-Ransomware-Kill-Chain durch Perimeter- und Endpunktprotokolle
Detection stack
- AIDR
- Alert
- ETL
- Query
Zusammenfassung
Der Artikel beschreibt einen kürzlichen Einbruch im Zusammenhang mit der Akira-Ransomware-Operation. Die Angreifer erlangten ersten Zugriff, indem sie ein deaktiviertes lokales SSL-VPN-Konto durch Bruteforce erlangten. Anschließend bewegten sie sich zu Zugangsdaten-Erkennung, Kerberoasting und lateraler Bewegung über RDP. Vor der Verschlüsselung löschten sie Protokolle und entfernten Schattenkopien. Bemerkenswert ist, dass die gesamte Sequenz über Firewall-Syslog-Daten und Windows-EVTX-Protokolle sichtbar war, ohne auf Endpoint-Erkennungstools angewiesen zu sein. Der Bericht hebt hervor, wie die Kombination von Perimeter- und Endpoint-Telemetrie Ransomware-Aktivitäten in ihren frühen Stadien aufdecken kann.
Untersuchung
Die Untersuchung stützte sich ausschließlich auf SSL-VPN-Firewall-Protokolle und Windows-Ereignisprotokoll-Exporte, die von Domänencontrollern und Mitgliederservern gesammelt wurden. Ereignis-IDs einschließlich 4624, 4688, 4769, 1102, und 7036 wurden korreliert, um die vollständige Kill-Chain vom ersten Zugang bis zum finalen Einfluss zu rekonstruieren. Die beobachteten Techniken umfassten Credential-Stuffing, Domänenentdeckung, Kerberoasting, RDP-Authentifizierung, Protokoll-Löschung und Schattenkopielöschung. Es waren keine Speicherabbilder oder EDR-Telemetrie erforderlich, um den Einbruch zu kartieren.
Abschwächung
Der Bericht empfiehlt die Verstärkung der Sicherheitsmaßnahmen für den Fernzugriff, die Durchsetzung von MFA, die Entfernung von deaktivierten Konten aus Firewall-Zugangslisten und die Stärkung der Authentifizierungs-Sperrrichtlinien. Es wird auch geraten, eine detaillierte Prozessüberwachung mit Ereignis-ID 4688 über alle Systeme hinweg zu aktivieren, die Aufbewahrung der Sicherheitsprotokolle zu erhöhen und kritische Protokolle an externen Speicher weiterzuleiten. Die Erkennungsinhalte sollten speziell RC4-basierte Kerberos-Tickets, vssadmin Schattenkopielöschung, und unerwartete PowerShell-Befehle mit -EncodedCommandbeinhalten. Eine konsistente Zeitsynchronisation in der gesamten Infrastruktur ist ebenfalls unerlässlich für eine zuverlässige Korrelation.
Antwort
Wenn einer der identifizierten Indikatoren auftaucht, sollten die Responder sofort das kompromittierte VPN-Konto isolieren und die betroffenen Systeme unter Quarantäne stellen. Relevante Firewall- und EVTX-Protokolle sollten gesichert, die Zugangsdaten zurückgesetzt, kompromittierte Konten deaktiviert und Schattenkopien aus sauberen Backups, wenn vorhanden, wiederhergestellt werden. Es sollte eine vollständige forensische Überprüfung durchgeführt werden, um zusätzliche Persistenzen oder Folgeaktivitäten zu identifizieren, während die Verfahren zur Ransomware-Reaktion aktiviert werden. Stakeholder sollten umgehend informiert und eine öffentliche Offenlegung in Betracht gezogen werden, wo erforderlich.
"graph TB %% Klassendefinitionen classDef phase fill:#ffcc99 classDef tool fill:#c2f0c2 %% Knotendefinitionen phase_initial_access["<b>Phase</b> – Erster Zugang<br/><b>Technik</b> – T1133 Externe Remote-Dienste<br/><b>Beschreibung</b>: Credential Stuffing gegen SSL-VPN mit kompromittiertem lokalen Konto."] class phase_initial_access phase tech_valid_accounts["<b>Technik</b> – T1078 Gültige Accounts<br/><b>Beschreibung</b>: Nutzung von gestohlenen Zugangsdaten zur Anmeldung im VPN."] class tech_valid_accounts phase phase_discovery["<b>Phase</b> – Entdeckung<br/><b>Technik</b> – T1482 Vertrauensbeziehungen in der Domäne entdecken<br/><b>Beschreibung</b>: Auflisten von Domänenvertrauen mit nltest."] class phase_discovery phase tech_account_discovery["<b>Technik</b> – T1087 Konten entdecken<br/><b>Beschreibung</b>: Auflisten von Gruppen und Benutzern über net.exe und whoami."] class tech_account_discovery phase phase_credential_access["<b>Phase</b> – Zugangsdatenzugriff<br/><b>Technik</b> – T1558.003 Kerberoasting<br/><b>Beschreibung</b>: Anfordern von RC4-Service-Tickets, um Dienstkontopasswörter zu knacken."] class phase_credential_access phase phase_lateral_movement["<b>Phase</b> – Laterale Bewegung<br/><b>Technik</b> – T1021.001 Remote-Dienste Remote Desktop Protocol<br/><b>Beschreibung</b>: Nutzung von RDP, um sich seitwärts zu Servern und Domänencontrollern zu bewegen."] class phase_lateral_movement phase phase_persistence["<b>Phase</b> – Aufrechterhaltung und Privilegien-Eskalation<br/><b>Technik</b> – T1136 Konto erstellen<br/><b>Beschreibung</b>: Ein neues Dienstkonto in einer nicht standardmäßigen OU erstellen und zu privilegierten Gruppen hinzufügen."] class phase_persistence phase phase_execution["<b>Phase</b> – Ausführung<br/><b>Technik</b> – T1059.001 PowerShell<br/><b>Beschreibung</b>: Ausführen von PowerShell-Skripten mit -EncodedCommand.<br/><b>Technik</b> – T1059.003 Windows-Kommandozeile<br/><b>Beschreibung</b>: Verwendung von cmd.exe für verschiedene Befehle."] class phase_execution phase phase_defense_evasion["<b>Phase</b> – Verteidigungsumgehung<br/><b>Technik</b> – T1070.001 Windows-Ereignisprotokolle löschen<br/><b>Beschreibung</b>: Löschen von Windows-Ereignisprotokollen.<br/><b>Technik</b> – T1562 Verteidigungen beeinträchtigen<br/><b>Beschreibung</b>: Anhalten von Sicherheitsdiensten mit sc.exe oder net stop."] class phase_defense_evasion phase phase_impact["<b>Phase</b> – Beeinflussung<br/><b>Technik</b> – T1490 Systemwiederherstellung hemmen<br/><b>Beschreibung</b>: Löschen von Schattenkopien mit vssadmin.<br/><b>Technik</b> – T1565.001 Manipulation von gespeicherten Daten<br/><b>Beschreibung</b>: Verschlüsseln von Dateien auf der Festplatte."] class phase_impact phase tool_ssl_vpn["<b>Werkzeug</b> – SSL-VPN-Client"] class tool_ssl_vpn tool tool_nltest["<b>Werkzeug</b> – nltest-Dienstprogramm"] class tool_nltest tool tool_net["<b>Werkzeug</b> – net.exe-Dienstprogramm"] class tool_net tool tool_whoami["<b>Werkzeug</b> – whoami-Befehl"] class tool_whoami tool tool_powershell["<b>Werkzeug</b> – PowerShell"] class tool_powershell tool tool_cmd["<b>Werkzeug</b> – cmd.exe"] class tool_cmd tool tool_sc["<b>Werkzeug</b> – sc.exe-Befehl"] class tool_sc tool tool_vssadmin["<b>Werkzeug</b> – vssadmin-Dienstprogramm"] class tool_vssadmin tool %% Verbindungen zeigen den Fluss phase_initial_access –>|führt zu| tech_valid_accounts tech_valid_accounts –>|führt zu| phase_discovery phase_discovery –>|führt zu| tech_account_discovery tech_account_discovery –>|führt zu| phase_credential_access phase_credential_access –>|führt zu| phase_lateral_movement phase_lateral_movement –>|führt zu| phase_persistence phase_persistence –>|führt zu| phase_execution phase_execution –>|führt zu| phase_defense_evasion phase_defense_evasion –>|führt zu| phase_impact %% Werkzeugnutzungs-Kanten phase_initial_access –>|verwendet| tool_ssl_vpn phase_discovery –>|verwendet| tool_nltest phase_discovery –>|verwendet| tool_net phase_discovery –>|verwendet| tool_whoami phase_execution –>|verwendet| tool_powershell phase_execution –>|verwendet| tool_cmd phase_defense_evasion –>|verwendet| tool_sc phase_impact –>|verwendet| tool_vssadmin "
Angriffsablauf
Erkennungen
Mögliche Administrator-Kontenenumeration oder Gruppenaufzählung (über cmdline)
Ansehen
Mögliche Konto- oder Gruppenenumeration/Manipulation (über cmdline)
Ansehen
Verdächtige Domänenvertrauensbeziehungserkennung (über cmdline)
Ansehen
Verdächtige VSSADMIN-Aktivität (über cmdline)
Ansehen
Erkennung von RDP-basierter lateraler Bewegung und domänenweiter Privilegieneskalation [Microsoft Windows Security Event Log]
Ansehen
Erkennung von SSLVPN-Bruteforce und Credential-Stuffing [Firewall]
Ansehen
Simulation Ausführung
Voraussetzung: Die Telemetrie & Baseline Vorab-Check muss bestanden haben.
Begründung: Dieser Abschnitt beschreibt die genaue Ausführung der gegnerischen Technik (TTP), die entwickelt wurde, um die Erkennungsregel auszulösen. Die Befehle und die Schilderung MÜSSEN direkt die identifizierten TTPs widerspiegeln und zielen darauf ab, die erwartete Telemetrie zu erzeugen, die von der Erkennungslogik erwartet wird.
-
Angriffserzählung & Befehle:
- Aufklärung (T1087): Der Angreifer listet Benutzernamen von einem kompromittierten internen System auf und erstellt eine Liste zum Credential-Stuffing (z.B.
users.txt). - Bruteforce-Schleife (T1021.001 / T1078.001): Verwendung einer kompromittierten externen IP-Reihe, die zu einem bekannten Hosting-Anbieter gehört (z.B.
203.0.113.45), startet der Angreifer innerhalb einer Stunde eine schnelle Serie fehlgeschlagener SSLVPN-Authentifizierungsversuche (≥ 50). Jeder Versuch verwendet ein anderes Passwort von der Liste und zielt auf ein einziges Opferkonto ab. - Erfolgreiches Credential Stuffing: Nach dem Erschöpfen der Liste wird ein korrektes Passwort gefunden; der Angreifer meldet sich erfolgreich von derselben IP an und erfüllt die Bedingung „successful_auth“.
- Umgehung (Optional – T1070.001): Der Angreifer löscht das Sicherheitsprotokoll auf dem VPN-Gerät nach der erfolgreichen Anmeldung, um Spuren zu verbergen (wird von dieser Regel nicht abgedeckt).
- Aufklärung (T1087): Der Angreifer listet Benutzernamen von einem kompromittierten internen System auf und erstellt eine Liste zum Credential-Stuffing (z.B.
-
Regression-Test-Skript: Bash-Skript mit Verwendung von
curl(funktioniert auf Linux-Angreiferbox). Variablen für die reale Umgebung anpassen.#!/usr/bin/env bash # ------------------------------------------------------------------ # Simuliert SSLVPN Bruteforce/Credential Stuffing, um Sigma-Regel auszulösen # ------------------------------------------------------------------ VPN_ENDPOINT="https://vpn.example.com/remote/auth" USERNAME="victim_user" PASSWORD_LIST="passwords.txt" # ein Passwort pro Zeile SOURCE_IP="203.0.113.45" # muss zum VPN routbar sein # Funktion, um einen einzelnen Login-Versuch durchzuführen attempt_login() { local pwd="$1" # Verwendung von --silent, um Unordnung zu vermeiden; --write-out, um HTTP-Code zu erfassen curl --silent --output /dev/null --write-out "%{http_code}" --user "$USERNAME:$pwd" "$VPN_ENDPOINT" } # 1. Generiere 55 fehlgeschlagene Versuche (Rate ~1/Sek) echo "Starte fehlgeschlagene Versuche..." count=0 while IFS= read -r pwd && [ $count -lt 55 ]; do http_code=$(attempt_login "$pwd") echo "Versuch $((count+1)): HTTP $http_code (erwartet 401)" ((count++)) sleep 1 # innerhalb 1-Stunden-Fenster bleiben done < "$PASSWORD_LIST" # 2. Erfolgreiches Login mit korrekt Passwort (annehmen, dass letzte Zeile in Datei ist) echo "Erfolgreiches Login durchführen..." correct_pwd=$(tail -n1 "$PASSWORD_LIST") http_code=$(attempt_login "$correct_pwd") echo "Erfolgreicher Versuch: HTTP $http_code (erwartet 200)" echo "Simulation abgeschlossen." -
Befehle zur Bereinigung: Entfernen Sie alle temporären Dateien und setzen Sie die Firewall-Ratebegrenzung zurück (falls geändert).
#!/usr/bin/env bash # Bereinigung nach SSLVPN-Bruteforce-Simulation # Löschen Sie die temporäre Passwortliste, falls sie im Voraus erstellt wurde ih [ -f passwords.txt ]; then shred -u passwords.txt echo "passwords.txt gelöscht" fi # Optionale, temporäre iptables-Regeln, die zum Testen verwendet wurden, zurücksetzen sudo iptables -D INPUT -s 203.0.113.45 -j DROP 2>/dev/null || true echo "Bereinigung abgeschlossen."