SOC Prime Bias: Hoch

17 Jun 2026 13:03 UTC

Operation Poisson: Eine komplette Cyberkriminelle Operation analysieren

Author Photo
SOC Prime Team linkedin icon Folgen
Operation Poisson: Eine komplette Cyberkriminelle Operation analysieren
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

Zusammenfassung

Ein wenig fähiger Bedrohungsakteur, bekannt als „Poisson“, führte eine mehrstufige Kampagne zum Diebstahl von Anmeldedaten durch, die auf französische Individuen und ein kleines Unternehmen abzielte. Der Angreifer nutzte Havoc C2, einen maßgeschneiderten Python-Keylogger, und baute widerstandsfähigen Zugang durch OpenSSH und ein Tailscale VPN-Mesh auf. Diese Einrichtung ermöglichte es dem Betreiber, den Zugang zu behalten, selbst nachdem die Hauptkommandokontroll-Infrastruktur gestört wurde.

Untersuchung

Cato CTRL führte eine umfassende Nachbesprechung des Vorfalls durch, die 33 Tage der Angreiferaktivität und 339 aufgezeichnete Befehle umfasste. Die Untersuchung enthüllte die Nutzung von Gratisdiensten wie Backblaze B2, DuckDNS und IONOS, sowie ein Persistenzdesign, das darauf ausgelegt ist, C2-Abschaltungen zu überstehen. Forscher erholten zudem das SSH-Playbook des Betreibers und Opfer-SSH-Schlüssel, die fälschlicherweise in einem öffentlichen Speicherbucket offengelegt wurden.

Minderung

Verteidiger sollten Alarme für die Bereitstellung von OpenSSH-Servern auf Arbeitsstationen generieren und die Tailscale-VPN-Aktivität auf Systemen, auf denen dies nicht erwartet wird, überwachen. Organisationen müssen auch SSH-Reversetunnel erkennen und verdächtige geplante Aufgaben verfolgen, die mit erhöhten Privilegien ausgeführt werden. Effektive Schadensbegrenzung muss über die Entfernung des C2-Zugangs hinausgehen und die Beseitigung von auf Mesh-VPN basierenden Persistenzmechanismen einschließen.

Reaktion

Sobald diese Aktivität identifiziert wird, sollten Sicherheitsteams sofort alle aktiven Tailscale- oder SSH-Mesh-Verbindungen aufspüren und demontieren. Ermittler sollten alle geplanten Aufgaben und Startverknüpfungen auf unbefugte Persistenz überprüfen. Ein vollständiger Anmeldeinformations-Reset wird dringend für alle Benutzer empfohlen, da die Verwendung eines Keyloggers eine hohe Wahrscheinlichkeit eines Anmeldeinformationskompromisses erzeugt.

graph TB %% Klassendefinitionen classDef action fill:#99ccff classDef tool fill:#cccccc classDef malware fill:#ff9999 classDef persistence fill:#99ff99 classDef command_control fill:#ffcc99 %% Initiale Ausführung und Payload-Bereitstellung action_stager_exec[„<b>Aktion</b> – <b>T1216.002 PowerShell: Befehls- und Skriptinterpreter</b><br/>Der Benutzer führt den VBScript-Stager sys.vbs aus,<br/>um die Proxy-Ausführung von Systemskripten zu starten.<br/><b>Datei</b>: sys.vbs“] class action_stager_exec action malware_powershell_payload[„<b>Malware</b> – <b>T1216.002 PowerShell</b><br/>Entschlüsselte PowerShell-Payload zum<br/>Herunterladen der primären Malware.<br/><b>Typ</b>: Stager/Downloader“] class malware_powershell_payload malware action_download_primary[„<b>Aktion</b> – <b>T1105 Eingehende Tool-Übertragung</b><br/>Herunterladen des primären Malware-Implantats<br/>über PowerShell.“] class action_download_primary action %% Verschleierung und Laden malware_senti_dll[„<b>Malware</b> – <b>Name</b>: senti.dll<br/><b>Techniken</b>: T1027.009 Eingebettete Payloads und T1027.015 Komprimierung<br/>Verwendet eine fünfstufige Matroschka-Kodierung, um<br/>Shellcode innerhalb englischer Wörter in einer .NET-DLL zu verbergen.<br/><b>Ziel</b>: Dateilose Ausführung“] class malware_senti_dll malware %% Rechteausweitung und Persistenz action_uac_bypass[„<b>Aktion</b> – <b>T1204 Benutzerausführung</b><br/>Versuch der Rechteausweitung mit<br/>Start-Process -Verb RunAs zur Auslösung von UAC-Abfragen.“] class action_uac_bypass action persist_task_admin[„<b>Persistenz</b> – <b>T1053 Geplante Aufgabe/Job</b><br/>Erstellt TaskAdmin1, um den Stager beim Anmelden<br/>mit höchsten Berechtigungen auszuführen.“] class persist_task_admin persistence persist_startup_lnk[„<b>Persistenz</b> – <b>T1547.001 Automatischer Start bei Boot oder Anmeldung: Registry Run Keys / Autostartordner</b><br/>Platziert die Verknüpfung sys.lnk im Autostartordner.“] class persist_startup_lnk persistence %% Diebstahl von Anmeldedaten tool_keylogger[„<b>Werkzeug</b> – <b>Name</b>: KeyL.zip<br/><b>Technik</b>: T1056.001 Eingabeerfassung: Keylogging<br/>Benutzerdefinierter 70-zeiliger Python-Keylogger<br/>zum Sammeln von Bank- und E-Mail-Anmeldedaten.“] class tool_keylogger tool %% Command and Control c2_havoc[„<b>Command and Control</b> – <b>Name</b>: Havoc Framework<br/>Primäres C2-Verwaltungsframework.“] class c2_havoc command_control tool_rustdesk[„<b>Werkzeug</b> – <b>T1219 Remote-Zugriffssoftware</b><br/>Benutzerdefiniert kompiliertes RustDesk,<br/>installiert als redundanter Fernzugriff.“] class tool_rustdesk tool %% Widerstandsfähige Persistenz persist_ssh_tailscale[„<b>Persistenz</b> – <b>T1668 Exklusive Kontrolle</b><br/>Installiert OpenSSH Server und tritt einem Tailscale-VPN-Mesh bei,<br/>um den Zugriff nach einer C2-Abschaltung aufrechtzuerhalten.“] class persist_ssh_tailscale persistence action_ssh_tunnel[„<b>Aktion</b> – <b>T1219.001 IDE-Tunneling und T1572 Protokoll-Tunneling</b><br/>Verwendet den SSH-Reverse-Tunnel ssh -R,<br/>um direkten verschlüsselten Zugriff aufrechtzuerhalten.“] class action_ssh_tunnel action %% Verbindungsfluss action_stager_exec –>|führt_aus| malware_powershell_payload malware_powershell_payload –>|lädt_herunter| action_download_primary action_download_primary –>|lädt| malware_senti_dll malware_senti_dll –>|aktiviert| action_uac_bypass action_uac_bypass –>|etabliert| persist_task_admin action_uac_bypass –>|etabliert| persist_startup_lnk malware_senti_dll –>|setzt_ein| tool_keylogger malware_senti_dll –>|kommuniziert_mit| c2_havoc c2_havoc –>|setzt_redundant_ein| tool_rustdesk tool_rustdesk –>|führt_zu| persist_ssh_tailscale persist_ssh_tailscale –>|verwendet| action_ssh_tunnel

Angriffsablauf

Simulation-Ausführung

Voraussetzung: Der Telemetrie- und Basislinien-Vorab-Check muss bestanden haben.

Grundlage: Dieser Abschnitt beschreibt die genaue Ausführung der Taktik-Technik-Prozedur (TTP) des Gegners, die die Erkennungsregel auslösen soll. Die Befehle und Erzählungen MÜSSEN direkt die identifizierten TTPs widerspiegeln und darauf abzielen, die genaue Telemetrie zu erzeugen, die von der Erkennungslogik erwartet wird. Abstrakte oder nicht verwandte Beispiele führen zu Fehldiagnosen.

  • Angriffs-Narrativ & Befehle: Der Gegner, der die Gruppe „Poisson“ simuliert, zielt darauf ab, einen Fernzugriffshalt zu etablieren. Zuerst stellen sie eine Nutzlast bereit, indem sie eine Datei mit dem Namen thales.zip in einem temporären Verzeichnis erstellen. Um Privilegien zu erhöhen, führen sie einen PowerShell-Befehl unter Verwendung des RunAs Verbs aus, das eine gängige Methode zur Auslösung von UAC-Eingabeaufforderungen ist. Schließlich führen sie rustdesk.exe aus, um einen sekundären Fernkommunikationskanal über den Desktop zu bieten. Diese Sequenz spiegelt das spezifische Verhaltensmuster wider (UAC-Eskalation + RustDesk + spezifische Zip-Datei), das in der Erkennungsregel definiert ist.

  • Regressionstest-Skript:

    # Simulationsskript: Poisson TTP-Emulation
    
    # 1. Bereitstellen der 'thales.zip'-Datei (erforderlich durch Erkennungslogik)
    $targetZip = "$env:TEMPthales.zip"
    New-Item -Path $targetZip -ItemType File -Force
    Write-Host "[+] Bereitgestellt $targetZip"
    
    # 2. Simuliere UAC-Erhöhung über PowerShell (erforderlich durch Erkennungslogik)
    # Hinweis: Dies wird in einer realen Umgebung einen UAC-Aufforderung auslösen.
    Write-Host "[+] Versuche UAC-Erhöhung über Start-Process -Verb RunAs..."
    Start-Process powershell.exe -ArgumentList "-Command Write-Host 'Erhöhung versucht'" -Verb RunAs
    
    # 3. Simuliere Ausführung von RustDesk (erforderlich durch Erkennungslogik)
    # Wir werden ein Dummy-RustDesk.exe im Temp-Ordner erstellen, um die Erkennung ohne reale Installation auszulösen
    $rustdeskPath = "$env:TEMPrustdesk.exe"
    New-Item -Path $rustdeskPath -ItemType File -Force
    Write-Host "[+] Simulierte Ausführung von RustDesk bei $rustdeskPath"
    Start-Process $rustdeskPath
  • Bereinigungsbefehle:

    # Simulation von Artefakten bereinigen
    Remove-Item -Path "$env:TEMPthales.zip" -Force -ErrorAction SilentlyContinue
    Remove-Item -Path "$env:TEMPrustdesk.exe" -Force -ErrorAction SilentlyContinue
    Write-Host "[+] Bereinigung abgeschlossen."