Malware in Beliebtem Hugging Face Repository Gefunden
Detection stack
- AIDR
- Alert
- ETL
- Query
Zusammenfassung
Forscher von HiddenLayer entdeckten bösartigen Code, der im Hugging Face Repository Open-OSS/privacy-filter gehostet wird und ein legitimes OpenAI-Projekt imitiert. Das Repository enthielt ein loader.py-Skript, das einen PowerShell-Befehl von jsonkeeper.com abrief, der eine zweite Stufe Batch-Datei und einen auf Rust basierenden Infostealer herunterlud. Die Nutzlast extrahiert Anmeldedaten, Browserdaten, Kryptowährung-Wallet-Dateien und Screenshots und löscht sich dann selbst nach einer einmaligen geplanten Aufgaben-Ausführung.
Untersuchung
Die Analyse identifizierte sechs Stadien vom anfänglichen Köder bis zum finalen Rust-Infostealer, einschließlich einer versteckten PowerShell-Ausführung, eines Downloaders, der update.bat von api.eth-fastscan.org abruft, und einer Batch-Datei, die ein temporäres Runner-Skript und eine flüchtige geplante Aufgabe erstellt. Netzwerkverkehr wurde zu einer C2-Domain recargapopular.com und einer verwandten Domain welovechinatown.info beobachtet. Mehrere Hugging Face Repositories unter dem Benutzer anthfu wurden gefunden, die den gleichen Loader und C2-URL wiederverwenden.
Abschwächung
Blockieren Sie die aufgeführten bösartigen Domains und URLs am Netzwerkperimeter und deaktivieren Sie die Ausführung von unsignierten PowerShell-Skripten auf Endpunkten. Entfernen Sie alle Dateien, die aus den kompromittierten Repositories heruntergeladen wurden, und ziehen Sie alle Anmeldedaten zurück, die möglicherweise erfasst wurden. Implementieren Sie strikte Überwachung für die Erstellung verdächtiger geplanter Tasks und für anormale PowerShell-Befehlszeilen.
Reaktion
Isolieren Sie alle Hosts, die den Loader oder start.bat ausgeführt haben, behandeln Sie sie als vollständig kompromittiert und bauen Sie das System neu auf. Rotieren Sie alle gespeicherten Passwörter, Sitzungscookies, OAuth-Tokens und Kryptowährung-Wallet-Anmeldedaten. Suchen Sie nach historischen Verbindungen zu den bösartigen Domains und nach dem Vorhandensein der angegebenen Dateipfade und geplanter Task-Namen.
"graph TB %% Klassen-Definitionen classDef action fill:#99ccff classDef tool fill:#cccccc classDef file fill:#ffcc99 classDef process fill:#ff9966 classDef malware fill:#ff6666 classDef credential fill:#ccffcc classDef exfil fill:#c0c0c0 classDef operator fill:#ff9900 %% Knoten-Definitionen malicious_repo["<b>Ressource</b> – <b>Hugging Face Repository</b><br/>Enthält bösartige start.bat und loader.py"] class malicious_repo file action_user_execution_link["<b>Aktion</b> – <b>T1204.001 Benutzer-Ausführung: Bösartiger Link</b><br/>Opfer klickt auf einen Link zum bösartigen Repository"] class action_user_execution_link action file_start_bat["<b>Datei</b> – start.bat<br/>Batch-Skript, das vom Opfer aufgerufen wurde"] class file_start_bat file file_loader_py["<b>Datei</b> – loader.py<br/>Python-Loader, der Prüfsumme überprüft und SSL-Verifizierung deaktiviert"] class file_loader_py file action_user_execution_file["<b>Aktion</b> – <b>T1204.002 Benutzer-Ausführung: Bösartige Datei</b><br/>Opfer führt loader.py aus"] class action_user_execution_file action action_proxy_execution["<b>Aktion</b> – <b>T1127 Ausführung vertrauenswürdiger Entwickler-Utilities-Proxy</b><br/>loader.py startet PowerShell mit Umgehung und verstecktem Fenster"] class action_proxy_execution action process_powershell["<b>Prozess</b> – PowerShell<br/>Führt Remote-Befehlszeile aus"] class process_powershell process action_taint_shared_content["<b>Aktion</b> – <b>T1080 Geteilten Inhalt beeinträchtigen</b><br/>PowerShell Einszeilen-Code lädt update.bat von api.ethu2011fastscan.org herunter"] class action_taint_shared_content action file_update_bat["<b>Datei</b> – update.bat<br/>Batch-Skript, das Defender-Ausschlüsse hinzufügt und geplante Aufgabe erstellt"] class file_update_bat file action_hide_artifacts["<b>Aktion</b> – <b>T1564.012 Artefakte verbergen: Datei/Pfad-Ausschlüsse</b><br/>Fügt Microsoft Defender-Ausnahmen für Nutzlast-Dateien hinzu"] class action_hide_artifacts action action_hijack_execution["<b>Aktion</b> – <b>T1574 Ausführungsfluss entführen</b><br/>Erstellt einmalige geplante Aufgabe MicrosoftEdgeUpdateTaskCore, um Nutzlast als SYSTEM auszuführen"] class action_hijack_execution action process_scheduled_task["<b>Prozess</b> – Geplante Aufgabe<br/>Führt Rust-Nutzlast mit SYSTEM-Rechten aus"] class process_scheduled_task process malware_rust_payload["<b>Malware</b> – Rust-Nutzlast<br/>Führt Anti-Analyse-Prüfungen durch und deaktiviert AMSI/ETW"] class malware_rust_payload malware action_credential_collection["<b>Aktion</b> – <b>T1555 Anmeldedaten aus Passwortspeichern</b><br/>Infostealer extrahiert Chromium-, Firefox-, Discord- und Wallet-Anmeldedaten"] class action_credential_collection credential action_credential_files["<b>Aktion</b> – <b>T1552.001 Ungesicherte Anmeldedaten: Anmeldedaten in Dateien</b><br/>Sammelt SSH-, FTP-, VPN- und Wallet-Seed-Dateien"] class action_credential_files credential action_os_credential_dump["<b>Aktion</b> – <b>T1003 Betriebssystem-Anmeldedaten-Dumping</b><br/>Ruft verschlüsselte Browser-Schlüssel ab"] class action_os_credential_dump credential action_screen_capture["<b>Aktion</b> – <b>T1113 Bildschirmaufnahme</b><br/>Erfasst Screenshots von mehreren Monitoren"] class action_screen_capture malware action_data_encoding["<b>Aktion</b> – <b>T1132 Datenkodierung</b><br/>Paketiert Daten in gzip-komprimiertem JSON"] class action_data_encoding malware action_exfiltration["<b>Aktion</b> – <b>T1567.002 Exfiltration über Webdienst</b><br/>Sendet kodierte Daten via HTTPS an recargapopular.com"] class action_exfiltration exfil %% Verbindungen malicious_repo –>|enthält| file_start_bat malicious_repo –>|enthält| file_loader_py action_user_execution_link –>|führt zu| file_start_bat action_user_execution_link –>|führt zu| file_loader_py file_start_bat –>|wird ausgeführt von| action_user_execution_file file_loader_py –>|wird ausgeführt von| action_user_execution_file action_user_execution_file –>|löst aus| action_proxy_execution action_proxy_execution –>|startet| process_powershell process_powershell –>|lädt herunter| file_update_bat file_update_bat –>|führt aus| action_hide_artifacts action_hide_artifacts –>|erstellt| action_hijack_execution action_hijack_execution –>|erzeugt| process_scheduled_task process_scheduled_task –>|führt aus| malware_rust_payload malware_rust_payload –>|führt durch| action_credential_collection malware_rust_payload –>|führt durch| action_credential_files malware_rust_payload –>|führt durch| action_os_credential_dump malware_rust_payload –>|führt durch| action_screen_capture malware_rust_payload –>|kodiert| action_data_encoding action_data_encoding –>|exfiltriert| action_exfiltration "
Angriffsfluss
Erkennungen
Rufen Sie verdächtige .NET-Methoden aus PowerShell auf (über powershell)
Ansehen
IOCs (HashSha256) zur Erkennung: Malware im beliebten Hugging Face Repository „Open-OSS/privacy-filter“ gefunden
Ansehen
IOCs (SourceIP) zur Erkennung: Malware im beliebten Hugging Face Repository „Open-OSS/privacy-filter“ gefunden
Ansehen
IOCs (DestinationIP) zur Erkennung: Malware im beliebten Hugging Face Repository „Open-OSS/privacy-filter“ gefunden
Ansehen
Erkennung bösartiger C2-Kommunikation im Hugging Face Repository [Windows Netzwerkverbindung]
Ansehen
Versteckte PowerShell und CMD-Aktivität für bösartige Ausführung [Windows Prozess-Erstellung]
Ansehen
Simulationsausführung
Voraussetzung: Der Telemetrie- & Baseline-Vorabflug-Check muss bestanden sein.
Begründung: Dieser Abschnitt beschreibt die genaue Ausführung der gegnerischen Technik (TTP), die darauf abzielt, die Erkennungsregel auszulösen. Die Befehle und der Ablauf MÜSSEN direkt die identifizierten TTPs widerspiegeln und zielen darauf ab, die genaue Telemetrie zu erzeugen, die von der Erkennungslogik erwartet wird. Abstrakte oder nicht zusammenhängende Beispiele führen zu Fehldiagnosen.
-
Angriffserzählung & Befehle:
Der Angreifer hat sich Zugang zu einem Windows-Arbeitsplatz verschafft und möchte eine bösartige Nutzlast mit erhöhten Rechten ausführen, während er für den Benutzer unsichtbar bleibt. Sie:- Erstellen eine PowerShell-Einszeile, die eine versteckte CMD-Shell startet (
/k) und sie sofort eskaliert mitStart-Process -Verb RunAs. - Führen Sie diese Einszeile aus einer bestehenden PowerShell-Sitzung aus und stellen Sie sicher, dass der Prozessbaum sowohl eine versteckte PowerShell-Instanz enthält and eine CMD-Instanz, die mit
/k. - Die erweiterte CMD kann dann verwendet werden, um die endgültige Nutzlast herunterzuladen und auszuführen.
- Erstellen eine PowerShell-Einszeile, die eine versteckte CMD-Shell startet (
-
Regressionstest-Skript:
# --------------------------------------------------------- # Simuliertes Angreifer-Skript – Versteckte PowerShell + RunAs CMD # --------------------------------------------------------- $maliciousCmd = "cmd.exe /k echo Angreifer hat eskaliert && ping -n 5 127.0.0.1" $psCommand = "-ExecutionPolicy Bypass -WindowStyle Hidden -Command `"Start-Process -FilePath 'powershell.exe' -ArgumentList `"$maliciousCmd`" -Verb RunAs`"" # Starte versteckte PowerShell, die wiederum die erweiterte CMD startet Start-Process -FilePath "powershell.exe" -ArgumentList $psCommand -WindowStyle Hidden -
Bereinigungskommandos:
# Beenden aller verbleibenden erhöhten CMD-Prozesse, die durch den Test erzeugt wurden Get-Process -Name "cmd" -ErrorAction SilentlyContinue | Where-Object { $_.StartInfo.Arguments -match "/k echo Angreifer hat eskaliert" } | Stop-Process -Force # Optional: Entferne alle temporären Dateien, falls erstellt (keine in diesem einfachen Demo)