🔍 Contexte

Analyse publiée le 30 mars 2026 par StepSecurity, portant sur une attaque de supply chain découverte sur le VS Code Marketplace. Trois extensions publiées par le compte IoliteLabssolidity-macos, solidity-windows et solidity-linux — ont été simultanément mises à jour en version 0.1.8 le 25 mars 2026, après être restées dormantes depuis 2018. Ces extensions totalisaient environ 27 500 installations combinées.

🎯 Vecteur d’attaque

L’attaquant a compromis le compte éditeur IoliteLabs sur le VS Code Marketplace (hijack de compte dormant), sans modifier le dépôt GitHub source. La version 0.1.8 a été publiée directement sur la marketplace sans commit correspondant. Le code malveillant n’est pas dans le point d’entrée de l’extension (extension.js) mais injecté dans une copie altérée de la dépendance npm légitime pako (node_modules/pako/index.js), dont le SHA-256 diffère de la version officielle.

🛠️ Mécanisme d’infection

Cinq techniques d’obfuscation sont utilisées :

  • Unicode escaping de toutes les chaînes sensibles
  • Bracket notation pour les accès aux propriétés
  • Variables XOR inutiles pour brouiller l’analyse
  • Inversion de chaîne ("niwrad".reverse() = "darwin")
  • Injection dans une dépendance plutôt que dans le point d’entrée

L’activation onStartupFinished déclenche le backdoor à chaque démarrage de VSCode, quel que soit le projet ouvert.

💻 Chaîne d’attaque Windows

  1. Stage 1 : Téléchargement de calc.bat depuis rraghh.com via curl, exécuté silencieusement
  2. calc.bat reconstruit les URLs par concaténation de variables d’environnement et télécharge 7WhiteSmoke.msi depuis oortt.com
  3. Stage 2 : Le MSI se présente comme un updater Chrome (Subject: ChromeUpdate, Author: Chrome), installe le DLL ntuser dans %APPDATA%\Chrome\ChromeUpdate\ via regsvr32 /s /i (LOLbin)
  4. Le DLL expose les exports SetDesktopMonitorHook / ClearDesktopMonitorHook, cohérents avec un keylogger/hook d’entrée clavier
  5. Persistance via HKLM\Software\Chrome\ChromeUpdate

🍎 Chaîne d’attaque macOS

  1. Stage 1 : Script doc.sh téléchargé depuis cdn.rraghh.com et exécuté via pipe bash
  2. Installation d’un script caché ~/.local/bin/.system_updater (préfixe point)
  3. Enregistrement d’un LaunchAgent com.apple.system.updater.plist (usurpation du naming Apple) pour persistance au login
  4. Bypass Gatekeeper via xattr -d com.apple.quarantine et xattr -c
  5. Stage 2 : Deux binaires distincts selon l’architecture — doc (x86_64 Intel, 57,8 Mo) et doc1 (arm64 Apple Silicon, 7,9 Mo) — packagés avec Vercel pkg (Node.js embarqué)
  6. Les modules embarqués (archiver, form-data, graceful-fs) indiquent un outil d’exfiltration de fichiers par upload HTTP multipart

🌐 Infrastructure C2

Domaine Rôle
rraghh.com Stage-1 Windows (calc.bat)
cdn.rraghh.com Stage-1 macOS (doc.sh) + binaires stage-2
oortt.com Stage-2 Windows (7WhiteSmoke.msi)

🎯 Cibles et objectifs

Les développeurs Solidity/Ethereum sont ciblés pour leur accès à des clés privées de wallets, seed phrases, credentials de déploiement, clés API (Infura, Alchemy) et tokens CI/CD, représentant une valeur financière directe potentiellement très élevée.

📋 Type d’article

Analyse technique approfondie publiée par StepSecurity, visant à documenter la chaîne d’attaque complète, fournir les IoCs et permettre la détection et remédiation pour les développeurs et équipes de sécurité impactés.

🧠 TTPs et IOCs détectés

TTP

  • T1195.001 — Supply Chain Compromise: Compromise Software Dependencies and Development Tools (Initial Access)
  • T1059.004 — Command and Scripting Interpreter: Unix Shell (Execution)
  • T1059.003 — Command and Scripting Interpreter: Windows Command Shell (Execution)
  • T1547.011 — Boot or Logon Autostart Execution: Plist Modification (Persistence)
  • T1543.001 — Create or Modify System Process: Launch Agent (Persistence)
  • T1547.001 — Boot or Logon Autostart Execution: Registry Run Keys / Startup Folder (Persistence)
  • T1218.010 — System Binary Proxy Execution: Regsvr32 (Defense Evasion)
  • T1027 — Obfuscated Files or Information (Defense Evasion)
  • T1553.001 — Subvert Trust Controls: Gatekeeper Bypass (Defense Evasion)
  • T1036.005 — Masquerading: Match Legitimate Name or Location (Defense Evasion)
  • T1105 — Ingress Tool Transfer (Command and Control)
  • T1056.001 — Input Capture: Keylogging (Collection)
  • T1560 — Archive Collected Data (Collection)
  • T1041 — Exfiltration Over C2 Channel (Exfiltration)
  • T1078 — Valid Accounts (Initial Access)

IOC

  • Domaines : rraghh.com
  • Domaines : cdn.rraghh.com
  • Domaines : oortt.com
  • URLs : https://rraghh.com/gt/calc.bat
  • URLs : https://cdn.rraghh.com/gt/doc.sh
  • URLs : https://cdn.rraghh.com/gt/doc
  • URLs : https://cdn.rraghh.com/gt/doc1
  • URLs : https://oortt.com/gt/7WhiteSmoke.msi
  • SHA256 : e0f206aac2c3fa733b0c466d2ebb86ba038cf1fe2edeee21e94a4d943a27f63b
  • SHA256 : fcd398abc51fd16e8bc93ef8d88a23d7dec28081b6dfce4b933020322a610508
  • SHA256 : e7ec4e35d94d01a2e4ee5dca62b8fb08ac7411596edb54b398651f4eb563561d
  • SHA256 : 40a6bbc8260bc17faa583dd3c3954a0e3c4b0abb923baaecd2ad7901311d5d82
  • SHA256 : 5886a9b659c05fb3e3077c80bb6a8be6acb1064683db542fae90e3bf9757f95f
  • SHA256 : e903ae267bf7ed1d02b218c1dc7cf6d87257e87de9fbda411a13f9154716bfa3
  • SHA256 : 5f9c09c2c432a6b94f2200455065bcfd1237f8a01b913a7c9e37f164ff99a84c
  • SHA256 : 38cb0e1209a721a565e71f9dc0593437723dc32c4d2fe2d23de141f4d306ccea
  • SHA256 : 8e7213940a2f590af145226d22a96d416bcca4bc6cba3400a8a96fd3e7018080
  • Fichiers : calc.bat
  • Fichiers : doc.sh
  • Fichiers : 7WhiteSmoke.msi
  • Fichiers : ntuser
  • Fichiers : doc
  • Fichiers : doc1
  • Fichiers : .system_updater
  • Fichiers : updater
  • Fichiers : apple
  • Fichiers : com.apple.system.updater.plist
  • Fichiers : pako/index.js
  • Chemins : %TEMP%\1.bat
  • Chemins : %USERPROFILE%\Documents\7WhiteSmoke.msi
  • Chemins : %APPDATA%\Chrome\ChromeUpdate\ntuser
  • Chemins : ~/.local/bin/.system_updater
  • Chemins : ~/.local/bin/updater
  • Chemins : ~/.local/bin/apple
  • Chemins : ~/Library/LaunchAgents/com.apple.system.updater.plist
  • Chemins : /tmp/system_updater.log

Malware / Outils

  • 7WhiteSmoke.msi (loader)
  • ntuser (DLL hook) (other)
  • calc.bat (loader)
  • doc.sh (loader)
  • doc (macOS x86_64 binary) (backdoor)
  • doc1 (macOS arm64 binary) (backdoor)
  • .system_updater (backdoor)

🔗 Source originale : https://www.stepsecurity.io/blog/malicious-iolitelabs-vscode-extensions-target-solidity-developers-on-windows-macos-and-linux-with-backdoor