đ Contexte
PubliĂ© le 7 aoĂ»t 2026 par l’Ă©quipe OpenSourceMalware (opensourcemalware.com), cet article prĂ©sente une analyse technique approfondie d’une campagne de supply chain ciblant l’Ă©cosystĂšme npm. En 48 heures, un acteur a publiĂ© plus de 700 paquets malveillants (788 confirmĂ©s) en utilisant des noms gĂ©nĂ©rĂ©s par IA ou par typosquatting.
đŻ Vecteur d’infection
Le paquet analysĂ©, checkout-mobile-bnpl@35.6.9, se prĂ©sente comme un SDK mobile BNPL. Il ne nĂ©cessite aucun script d’installation (preinstall/postinstall) : le simple appel require() suffit Ă dĂ©clencher la chaĂźne d’infection via le fichier _helpers.js.
đŠ Architecture du malware (NUL1DROPPER)
Le downloader, nommé NUL1DROPPER, supporte Windows, Linux et macOS :
- Livraison primaire : requĂȘtes HTTPS GET vers trois hĂŽtes Cloudflare Workers (
oob-worker.cf103-070.workers.dev,oob-worker.cf102-baf.workers.dev,oob-worker.cf99-9b3.workers.dev) - Canal de repli DNS : reconstruction du payload depuis des enregistrements TXT DNS hébergés sous
wel1.ru(domaines spécifiques par plateforme :sdk.dl.wel1.ru,ext.dl.wel1.ru,pkg.dl.wel1.ru,net.dl.wel1.ru) - Les chunks Base64 sont assemblés et décodés en binaire exécutable
- Aucune vĂ©rification d’intĂ©gritĂ© du payload reçu
đ„ïž ExĂ©cution et persistance
- Linux/macOS : payload écrit dans
/var/tmp/.cache_<8 hex>, lancé via/bin/sh -c - Windows : payload écrit dans
%TEMP%\dotnet_diag_<8 hex>.exe, lancé viacmd.exe /c start /b - Fichier marqueur anti-réexécution :
/tmp/.analytics_state(TTL ~6h) - macOS : persistance via LaunchAgent
com.apple.windowserver.helper.plist, exécutable stocké sous~/.local/share/runtime/com.apple.runtime
đŹ Payloads natifs
- Linux x86-64 : ELF statiquement lié, UPX 3.96, table de sections supprimée
- macOS : Mach-O universel (x86-64 + ARM64), télécharge un beacon supplémentaire (
/pkg/beacon_mac.bin) via 5 hÎtes Cloudflare Workers supplémentaires, strings obfusquées par XOR 0x9c - Le payload macOS effectue des contrÎles anti-analyse : détection de lldb, debugserver, dtrace, frida, Wireshark, VMware Fusion, vérification de la mémoire RAM
- Le dernier stage serait un implant Sliver (non confirmé)
đșïž Attribution
L’utilisation du domaine wel1.ru et les rĂ©fĂ©rences Ă des institutions financiĂšres russes (cloudpayments.ru, tcsbank.ru) suggĂšrent une origine russophone. La campagne est potentiellement liĂ©e Ă Moika tech, une campagne antĂ©rieure (avril/mai 2026, 250+ paquets NPM) partageant plusieurs TTPs : usage du prĂ©fixe “oob”, focus sur la finance russe, leurre telemetry, kill switch similaire.
đ Type d’article
Analyse technique dĂ©taillĂ©e publiĂ©e par une plateforme de threat intelligence open source, visant Ă documenter les IOCs, TTPs et la chaĂźne d’infection complĂšte d’une campagne de supply chain npm active.
đ§ TTPs et IOCs dĂ©tectĂ©s
Acteurs de menace
- Moika tech (unknown) â
TTP
- T1195.002 â Supply Chain Compromise: Compromise Software Supply Chain (Initial Access)
- T1204.002 â User Execution: Malicious File (Execution)
- T1059.007 â Command and Scripting Interpreter: JavaScript (Execution)
- T1059.001 â Command and Scripting Interpreter: PowerShell (Execution)
- T1071.004 â Application Layer Protocol: DNS (Command and Control)
- T1071.001 â Application Layer Protocol: Web Protocols (Command and Control)
- T1027 â Obfuscated Files or Information (Defense Evasion)
- T1027.002 â Obfuscated Files or Information: Software Packing (Defense Evasion)
- T1543.001 â Create or Modify System Process: Launch Agent (Persistence)
- T1497.001 â Virtualization/Sandbox Evasion: System Checks (Defense Evasion)
- T1036.005 â Masquerading: Match Legitimate Name or Location (Defense Evasion)
- T1105 â Ingress Tool Transfer (Command and Control)
- T1140 â Deobfuscate/Decode Files or Information (Defense Evasion)
IOC
- IPv4 :
127.0.0.1â AbuseIPDB · VT · ThreatFox - Domaines :
oob-worker.cf103-070.workers.devâ VT · URLhaus · ThreatFox - Domaines :
oob-worker.cf102-baf.workers.devâ VT · URLhaus · ThreatFox - Domaines :
oob-worker.cf99-9b3.workers.devâ VT · URLhaus · ThreatFox - Domaines :
package-proxy.cf5oobworker.workers.devâ VT · URLhaus · ThreatFox - Domaines :
package-proxy.cf6oobworker.workers.devâ VT · URLhaus · ThreatFox - Domaines :
package-proxy.cf7oobworker.workers.devâ VT · URLhaus · ThreatFox - Domaines :
package-proxy.cf8oobworker.workers.devâ VT · URLhaus · ThreatFox - Domaines :
package-proxy.cf11oobworker.workers.devâ VT · URLhaus · ThreatFox - Domaines :
sdk.dl.wel1.ruâ VT · URLhaus · ThreatFox - Domaines :
ext.dl.wel1.ruâ VT · URLhaus · ThreatFox - Domaines :
pkg.dl.wel1.ruâ VT · URLhaus · ThreatFox - Domaines :
net.dl.wel1.ruâ VT · URLhaus · ThreatFox - Domaines :
dl.wel1.ruâ VT · URLhaus · ThreatFox - Domaines :
wel1.ruâ VT · URLhaus · ThreatFox - URLs :
https://oob-worker.cf103-070.workers.dev/pkg/packageâ URLhaus - URLs :
https://oob-worker.cf103-070.workers.dev/pkg/package-arm64â URLhaus - URLs :
https://oob-worker.cf103-070.workers.dev/pkg/loader_macâ URLhaus - URLs :
https://oob-worker.cf103-070.workers.dev/pkg/package.exeâ URLhaus - URLs :
https://oob-worker.cf102-baf.workers.dev/pkg/packageâ URLhaus - URLs :
https://oob-worker.cf102-baf.workers.dev/pkg/package-arm64â URLhaus - URLs :
https://oob-worker.cf102-baf.workers.dev/pkg/loader_macâ URLhaus - URLs :
https://oob-worker.cf102-baf.workers.dev/pkg/package.exeâ URLhaus - URLs :
https://oob-worker.cf99-9b3.workers.dev/pkg/packageâ URLhaus - URLs :
https://oob-worker.cf99-9b3.workers.dev/pkg/package-arm64â URLhaus - URLs :
https://oob-worker.cf99-9b3.workers.dev/pkg/loader_macâ URLhaus - URLs :
https://oob-worker.cf99-9b3.workers.dev/pkg/package.exeâ URLhaus - URLs :
http://127.0.0.1:4444/healthâ URLhaus - SHA256 :
7e486657f30594afda379b97030252a09a19fe8055e25c9e371544f59bd8e9e3â VT · MalwareBazaar - SHA256 :
c214746c74cae8ece8bdaf69aa05da4db6ce013f9e77452d1eed1a002fd9ba00â VT · MalwareBazaar - SHA256 :
0fc30f82e1fa5e51a6c0c43f3ed7f13592ea731cb331e43a4d085df60a4db8b6â VT · MalwareBazaar - SHA256 :
94ef6b1c4a9d31f78f446d053048bcef34fd88f4376a1a46f7f777a9e9c83a29â VT · MalwareBazaar - SHA256 :
b74c5675725911c62091bdf40714df760cc2af7a88360d21065f4e1c878aa8f0â VT · MalwareBazaar - SHA256 :
e2650e9aa2f924433ba422857b22ee7c5996b5ad306f3f903283f6a13e248935â VT · MalwareBazaar - SHA256 :
a3e2ffb440b779d30da3ff282affd649731088e8570df7b1aa72742d995b782câ VT · MalwareBazaar - Fichiers :
checkout-mobile-bnpl - Fichiers :
_helpers.js - Fichiers :
index.js - Fichiers :
lib/telemetry.js - Fichiers :
package.json - Fichiers :
com.apple.windowserver.helper.plist - Chemins :
/tmp/.analytics_state - Chemins :
/var/tmp/.cache_ - Chemins :
%TEMP%\analytics_state - Chemins :
~/.local/share/runtime/.lock - Chemins :
~/.local/share/runtime/com.apple.runtime - Chemins :
~/Library/LaunchAgents/com.apple.windowserver.helper.plist
â ïž Ă propos de ces IOC â ils sont extraits automatiquement de l’article original le 8 aoĂ»t 2026 et n’ont pas fait l’objet d’une vĂ©rification externe. Un indicateur peut avoir Ă©tĂ© rĂ©attribuĂ© depuis : une IP de C2 peut redevenir un service lĂ©gitime, un domaine sinkholĂ© peut changer de propriĂ©taire. Aucune garantie d’exactitude ni d’actualitĂ© â contrĂŽlez leur validitĂ© avant tout usage opĂ©rationnel, en particulier avant de les injecter dans une blocklist ou un SIEM.
Malware / Outils
- NUL1DROPPER (loader)
- Sliver (framework)
đą Indice de vĂ©rification factuelle : 95/100 (haute)
- â opensourcemalware.com â source reconnue (liste interne) (20pts)
- â 20059 chars â texte complet (fulltext extrait) (15pts)
- â 47 IOCs dont des hashes (15pts)
- â 4/10 IOCs confirmĂ©s (AbuseIPDB, MalwareBazaar, ThreatFox, URLhaus, VirusTotal) (15pts)
- â 13 TTPs MITRE identifiĂ©es (15pts)
- â date extraite du HTML source (10pts)
- â acteur(s) identifiĂ©(s) : Moika tech (5pts)
- ⏠pas de CVE à vérifier (0pts)
IOCs confirmés externellement :
7e486657f30594afâŠ(sha256) â VT (8/76 dĂ©tections)oob-worker.cf103-070.workers.dev(domain) â VT (5/91 dĂ©tections)oob-worker.cf102-baf.workers.dev(domain) â VT (4/91 dĂ©tections)oob-worker.cf99-9b3.workers.dev(domain) â VT (3/91 dĂ©tections)
đ Source originale : https://opensourcemalware.com/blog/russian-ai-slopsquatting-npm-campaign