TL; DR
Yon sèl piblikatè npm, deadcode09284814, te mennen yon kanpay typosquat kont lejitim axios ta dwe apwouve bèso tibebe w la epi chalk-template pakè depi mitan mwa me 2026.
Kanpay la te kòmanse kòm yon vòlè kalifikasyon ak bous konvansyonèl, kote yo te retire done nan yon Tinèl Serveo HTTPS.
On 2026-05-17, Ak axois-utils:1.0.9, operatè a te chanje chaj la nèt: menm trip echafodaj enstalasyon-hook la, menm piblikatè a, menm non pake a.
Men, script enstalasyon an kounye a se yon rekritman botnet DDoS kwa-platfòm.
Chaj la pale ak yon localhost.run tinèl epi li aksepte kòmandman inondasyon, sa ki transfòme anviwònman enfekte yo an yon pati nan yon botnet ki kapab DDoS.
Operatè a menm te voye a Binè sèvè C2 anndan tarball la, ki montre yon ogmantasyon klè soti nan vòl kalifikasyon rive nan enfrastrikti botnet aktif.
De pakè, kat vèsyon toujou aktif nan rejis la, epi yon operatè k ap kouri tou de modil yo an paralèl kounye a.
Gravite: wo.
Atak la: Kijan li fonksyone
Kanpay la bati sou yon echafodaj livrezon ki fèt espre raz: de non pakè typosquat, yon lèt diferan de pakè ki gen plizyè santèn milyon telechajman chak semèn (axios, modèl lakre), ak twa enstalasyon hooks ki garanti ekzekisyon. Sa ki enteresan se sa echafodaj la pote — ak lefèt ke operatè a te chanje kago a san li pa chanje anyen lòt.
Echafodaj pataje a
Chak vèsyon pibliye nan tou de pakè yo deklare menm twa sik lavi yo hooks in package.json:
Lis chaj la anba tout twa yo hooks se twòp - apre enstalasyon pou kont li ta kouri nan yon default npm enstaleChwa a enpòtan: enstalasyon npm –ignore-scripts sote script yo, men plizyè workflows komen (restorasyon kach CI ki re-egzekite sik lavi a hooks selektivman, oubyen devlopè ki sèlman fè odit apre enstalasyon) fè yon deklarasyon trip redondan se pi bon chwa pou atakè a.
lakre-tanp ajoute yon dezyèm mekanis: li deklare axois-utils:^1.0.7 kòm yon ekzekisyon depandansEnstale typosquatted la modèl lakre Se poutèt sa, li rale typosquat frè a tou, epi tou de payload yo fonksyone. De pakè yo se yon pè kowòdone, se pa lis endepandan.
Faz A — vòlè kalifikasyon / bous (2026-05-15 → prezan)
Faz A se chaj orijinal la. Loader a se yon ti postinstall.js ki montre yon tinèl Serveo HTTPS ranvèse:
Sou-domèn Serveo a kode IP destinasyon an (80.200.28.28) dirèkteman nan non òdinatè a — yon konvansyon rekonèt pou sèvis sa a. Operatè a chanje prefiks soudomèn o aza a ant vèsyon yo pou evite lis blokaj domèn nayif yo, men IP ki kache a pa janm deplase. (lakre-tanporèl:1.0.14 itilize 8a3e818ea8f11186-80-200-28-28…; 1.0.16 / 1.0.19 / 1.0.20 itilizasyon f04a273bd84c0622-….)
postinstall.js men bay phantom.js, yon modil "kolektè" ki gen 7,667 liy ladan l. phantom.js mache ak lame a pou:
Kle prive SSH (~/.ssh/*) |
.npmrc kontni ak nenpòt npm_* jeton anviwònman |
| Fichye kalifikasyon AWS, GCP, ak Azure yo |
GitHub pèsonèl-access-token regex (ghp_*, gho_*, ghu_*, ghs_*) |
| Atifak bous kriptografik pou Bitcoin, Exodus, Electrum, Monero, Litecoin, Dogecoin, Zcash, Dash |
Yon rekizif .env* mache nan ~/projects, ~/dev, ~/code, ~/workspace, ak enstalasyon cwd la |
Istwa Shell ak tout la process.env |
Pake a voye nan tinèl Serveo a nan / kolektePa gen okenn obfuskasyon, pa gen lojik anti-VM, pa gen okenn etap an sèn — parye operatè a se sou volim ak vitès.
Faz B — Rekritman PhantomBot DDoS (2026-05-17, axois-utils:1.0.9 sèlman)
Faz B ranplase phantom.js + postinstall.js ak yon sèl fichye ki rele distrube.js (erè tipografik la se operatè a ki fè sa). Echafodaj trip-hook la nan package.json pa chanje; pake a kenbe menm non an, menm dimansyon an, ak menm modèl vèsyon-bump la. Sou deyò, axois-utils:1.0.9 sanble yon ti siksesyon 1.0.6 la. Anndan, li se yon lòt fanmi malveyan.
distrube.js ouvè ak yon blòk konfigirasyon ki nonmen pwòp mak operatè a:
// axois-utils-1.0.9/distrube.js:11-15 |
// Use your localhost.run HTTPS URL (the tunnel handles HTTP internally) |
const C2_HOST = 'b94b6bcfa27554.lhr.life'; // Your localhost.run tunnel |
const C2_PORT = 443; // HTTPS port - tunnel handles SSL |
const BOT_ID = `${os.hostname()}_${Date.now()}_${crypto.randomBytes(4).toString('hex')}`; |
Kòmantè yo adrese a yon operatè nan lavni k ap itilize twous la ("Sèvi ak URL HTTPS localhost.run ou an"). Sa, plis sa ki vini ak kliyan bot la, se yon endikasyon ke sa a se pa sèlman yon chaj viktim - se twous la.
Koule a:
- Perseverans kouri an premye. Skript la enstale tèt li nan twa fason diferan pou chak sistèm operasyon (rejis kouri + Dosye demaraj + schtasks sou Windows; crontab + sèvis bot fantom inite systemd + .bashrc/.zshrc ajoute + /etc/rc.local sou Linux; LaunchAgent com.phantom.bot.plist sou macOS). Non sèvis pèsistans lan ak etikèt LaunchAgent la toulede robo fantom / com.phantom.bot, ki se tou kote non kanpay la soti.
- Eksfil enfòmasyon sistèm Li fonksyone yon sèl fwa — yon sèl POST anprent dijital voye sou b94b6bcfa27554.lhr.life:443/collect ki pote non òdinatè a, platfòm nan, arch la, non itilizatè a, CPU/RAM nan, interfaces rezo yo, process.env, cwd, homedir la, vèsyon nœud la, ak IP piblik la. Sa a pi mwens agresif pase Faz A: pa gen SSH, pa gen bous elektwonik, pa gen rekirsyon .env. Travay bot la se pou enskri, pa pou vòlè.
- Bouk batman kè ouvri yon HTTPS POST chak 30 segonn pou b94b6bcfa27554.lhr.life:443/. Ajan Itilizatè a se PhantomBot/1.0. Verifikasyon TLS la enfim eksplisitman (rejectUnauthorized: false). Repons C2 a analize kòm JSON nan fòm {type, target, port, duration, threads, method} epi li voye.
- Asenal inondasyon li konekte ak sis kòmandman:
| Kalite lòd | Modil | nòt |
|---|---|---|
| Ping | Repons Liveness | Bot idantifye tèt li |
| http | HTTP inondasyon | Inondasyon demann kouch 7 |
| https | Inondasyon HTTPS | Menm jan ak http, vlope nan TLS |
| tcp | Inondasyon TCP | 65 KB spam chaj o aza |
| udp | Inondasyon UDP | Pakè UDP 65,507-okte |
| rapid | HTTP/2 rapid-reset DoS | Teknik CVE-2023-44487 2023 la |
Tout senk modil inondasyon yo pran yon sib, pò, dire, epi fil agiman — bot la se yon inondasyon jenerik pou anplwaye, ki pa vize okenn viktim an patikilye. Lis viktim operatè a ap viv sou C2 a, pa nan pake a.
Nouvo bagay ki genyen isit la — binè C2 ki te soti a
Faz A se yon fòm familye: vòl kalifikasyon, enstalasyon zen, C2 anba yon tinèl vandè. Faz B se Tou yon fòm familye — botnet DDoS yo te yon eleman fiks nan pakè npm move pandan plizyè ane. Sa ki dwòl se ke operatè a te voye a bò sèvè nan twous ki andedan tarball npm lan:
- c2 — yon binè Go ELF konpile 4 megabyte
- c2.go — sous Go 426 liy pou binè sa a
Ni youn ni lòt fichye pa envoke pa okenn hook enstalasyon. Yo pa fè pati chaj viktim nan. Yo chita nan anyè pake a menm jan yon fichye dokimantasyon ta fè. Lekti ki pi kredib la se ke operatè a te pouse pyebwa travay devlopman yo a nan npm san li pa òganize lis fichye yo — yon vrè glisman OpSec — epi sa ki te vini ak twous konplè a se twous doub bò a: kliyan yon viktim ap egzekite, ak sèvè operatè a ap egzekite a.
Sa a se pati nan istwa a ki jistifye kad "kit botnet kle an men" an. Nenpòt moun ki te telechaje axois-utils:1.0.9 anvan takedown nan pa sèlman gen yon echantiyon viktim — yo gen yon sèvè C2 k ap fonksyone.
Pivot la, nan yon sèl fraz
Menm editè, menm non pakè, menm echafodaj trip-kwòk, menm mak "fantom" - men Chaj la chanje modèl monetizasyon lannwit lansoti nan "rekòlte sekrè mwen ka revann" rive nan "lwe kapasite inondasyon mwen ka bay an lokasyon". TTP tan enstalasyon ke defansè yo ta dwe siveye yo prèske idantik nan tou de faz yo; defans ki baze sou siyati ki lye ak chèn chemen bous Faz A a oswa ak phantom.jsKolektè 7,667 liy lan pa t ap rate Faz B nèt.
| Dat (UTC) | evènman |
|---|---|
| 2026-05-15 | Premye piblikasyon: axois-utils:1.0.4 (Konstriksyon tès LAN, platfòm devlopman nan 192.168.129.19) |
| 2026-05-15 | axois-utils:1.0.6 pibliye — Faz A C2 chanje pou 80.200.28.28 atravè tinèl Serveo a; kòmantè sous la // Change to '80.200.28.28' for public konfime echanj devlopman an → pwodiksyon an |
| 2026-05-16 | chalk-tempalte:1.0.14 ta dwe apwouve bèso tibebe w la epi 1.0.16 pibliye — loader nan chenn deklare axois-utils:^1.0.7 kòm yon depandans nan moman ekzekisyon an; sou-domèn Serveo a te chanje |
| 2026-05-16 | Kanpay Faz A dekouvri pandan eskanè npm routin; vèdik konfime-move aplike. |
| 2026-05-17 | axois-utils:1.0.9 pibliye — pivot chaj: PhantomBot DDoS rekrite atravè tinèl localhost.run; bò operatè a c2 binè ak c2.go sous la te anbake nan tarball la |
| 2026-05-17 | chalk-tempalte:1.0.19 ta dwe apwouve bèso tibebe w la epi 1.0.20 pibliye — toujou Faz A (vòlè); operatè a kounye a ap kouri tou de modil yo an paralèl |
| 2026-05-17 | Dekouvèt Faz B pandan eskanè routin; vèdik yo aplike nan tout 2026-05-17 vèsyon |
| (kontinyèl) | Rapò pou retire yo annatant; tout kat pakè pibliye yo toujou disponib nan rejis la nan moman sa a. |
Endikatè Konpwomi
Kontribisyon
| Ekosistèm | Pake | vèsyon |
|---|---|---|
| npm | axois-utils (typosquat nan aksios) | 1.0.4, 1.0.6, 1.0.9 |
| npm | chalk-tempalte (typosquat nan modèl lakre) | 1.0.14, 1.0.16, 1.0.19, 1.0.20 |
Idantite otè a
| Jaden | Valè |
|---|---|
| piblikatè npm | deadcode09284814 |
| Imèl piblikatè a | phantomdeadcode@tutamail.com |
| SCM verifikasyon | Pa gen okenn |
Kòmand-ak-kontwòl
| Faz | Finalman | transpò |
|---|---|---|
| A | f04a273bd84c0622-80-200-28-28.serveousercontent.com:443/collect | Tinèl Serveo HTTPS |
| A | 8a3e818ea8f11186-80-200-28-28.serveousercontent.com:443/collect | Tinèl Serveo HTTPS (vèsyon anvan) |
| A | 80.200.28.28:443/collect | Pwen final VPS ki kache a |
| B | b94b6bcfa27554.lhr.life:443/ | tinèl ranvèse HTTPS localhost.run |
Rezime fichye (SHA-256)
| File | SHA-256 | nòt |
|---|---|---|
c2 (Ale nan ELF, 4 MB) | 165fa92d237fd017c227d00da06ab788212a62be94bf61e95df2d22d00377ef2 | Sèvè C2 bò operatè a, anbake anndan axois-utils:1.0.9 |
c2.go (426 liy) | 7d0ae79fdb1e9968f3323a3712b624643a782ba3efb2cf3a2cb9c4c5513cea30 | Ale nan sous pou binè C2 a |
distrube.js | 308b15c023088a7188dea4ef609010ac2493eb4c365b103053d7621a9ca5b935 | Kliyan bot Faz B |
phantom.js (chalk-tempalte:1.0.19) | 9e380ec88d3ccf3929e1a104e3b868d4d7b59ca189a8a431a54e9f3357dfdd81 | Kolektè kalifikasyon / bous Faz A |
phantom.js (chalk-tempalte:1.0.20) | d1c9e3f296ee9f7d5032f73f9c504cede50334bc14c394055fd5cb9c3a6e08b3 | Kolektè Faz A (varyant 1.0.20) |
postinstall.js (chalk-tempalte:1.0.19 = 1.0.20) | ffba9bdd6793edd5b38e12900252c1813a693f59c25af51c3b658cf3f27b6162 | Loader Faz A, idantik an kantite okte atravè tou de vèsyon yo |
Atribisyon ak Motivasyon
Nou swiv kanpay sa a kòm PhantomBot, pran pwòp mak operatè a nan men Ajan Itilizatè: PhantomBot/1.0 antèt batman kè a, la sèvis bot fantom inite sistèm lan, la com.phantom.bot Etikèt LaunchAgent la, ak la kòd fantomdead@ adrès imel. Operatè a konsistan sou non sa a atravè omwen kat atifak.
Katalòg siyal yo
- Editè - kòd mouri09284814 sou npm. Kont yon sèl moun, imèl jetab Tutamail, non SCM verifikasyon. Pa gen okenn istwa piblikasyon anvan kanpay sa a.
- Reitilizasyon mak — “fantom” parèt nan imèl editè a, nan non fichye koleksyonè Faz A a (phantom.js), nan non sèvis pèsistans Faz B a (sèvis bot fantom), nan etikèt LaunchAgent la (com.phantom.bot), epi nan bot Ajan-Itilizatè a (FantomBot/1.0).
- Enfrastrikti — Yon sèl VPS nan 80.200.28.28 devan Faz A atravè wotasyon soudomèn Serveo; Faz B deplase nan yon lokalhost.kouri tinèl ranvèse (b94b6bcfa27554.lhr.lifeToulede sèvis founisè yo gratis epi yo sèlman mande SSH sortan sou bò operatè a, sa ki konsistan avèk konfigirasyon ki gen ti bidjè ak ti OpSec.
- Style kòd — JavaScript senp toupatou; pa gen okenn obfuskasyon, pa gen kodaj chèn, pa gen verifikasyon anti-VM. Non varyab yo deskriptif (vòlèEnfòmasyonSistèm, egzekiteKòmand, httpFloodKòmantè nan distrube.js adrese dirèkteman yon operatè nan lavni ("Sèvi ak URL HTTPS localhost.run ou an"), ki sijere ke fichye a te gen entansyon pou redistribiye kòm yon twous, pa pou itilize pa yon sèl atakè.
- Fich OpSec — Tarball Faz B a gen ladan l tou de kliyan bot la ak sèvè C2 bò operatè a (c2 ELF + c2.go sous). Sa konsistan avèk yon operatè ki te pouse pyebwa travay li a nan npm san li pa kontwole lis dosye yo. Swa operatè a pa gen eksperyans, oswa twous la pa... vle di pou yo distribye piblikman epi binè C2 a fè pati pwodwi a.
- Oto-konfimasyon - axois-utils:1.0.4 gen kòmantè sous la // Chanje pou '80.200.28.28' pou piblik la sou liy 12, konfime pwogresyon devlopman / etap pa etap / pwodiksyon an ke operatè yo tipikman refize.
Motivasyon
Chaj Faz A a se yon vòl finansye dirèk: kalifikasyon, kle nwaj, jeton GitHub, ak bous kriptografik tout gen mache revann likid. Faz B a se finansye tou, men endirèk: sèvis DDoS-pou-anboche ("booter") lwe kapasite inondasyon pa minit, epi robo tankou sa ki anbake isit la se envantè sèvis sa yo fonksyone sou li. Batman kè 30 segonn nan, jenerik la sib/pò/dire schèma kòmand, ak asenal inondasyon senk pwotokòl la se standard pwodwi yon operatè bòtè.
Kouri tou de modil yo an paralèl — lakre-tanporèl:1.0.19 ta dwe apwouve bèso tibebe w la epi 1.0.20 kontinye anbake vòlè a pandan axois-utils:1.0.9 voye bot la — sijere operatè a ap pwoteje sous revni yo olye pou l abandone Faz A. Pivot la se yon adisyon, pa yon ranplasman.
Sa nou pa reklame
Nou pa t kapab konfime yon idantite reyèl dèyè sa a. kòd mouri09284814 manch, epi nou pa atribiye kanpay sa a bay okenn aktè menas, gwoup, oswa peyi ki nonmen. Mak "fantom" nan ase konsistan atravè tout atifak yo pou sijere yon sèl operatè, men livrezon binè C2 a tankou yon twous kite posiblite pou pakè nan lavni ki soti nan manch ki pa gen rapò yo reitilize menm kòd la.
Enpak, Tandans ak Sa Defansè yo Ta Dwe Fè
Enpak
Sib lejitim yo pou akoupi axios ta dwe apwouve bèso tibebe w la epi modèl lakre yo lajman depann sou yo nan ekosistèm JavaScript la; axios poukont li chita pami trant pakè npm ki pi telechaje yo. Non typosquat yo se yon sèl klike sou yon bouton lwen non reyèl yo (aksois ↔ axios, tanpèt ↔ modèl), epi tou de se move òtograf lengwistikman ki posib.
Nou pa t kapab jwenn estatistik telechajman serye pou vèsyon move yo anvan yo te retire yo — npm pa konsève kantite telechajman pou chak vèsyon apre yo fin pibliye yon pake, epi npms.ioproksi style yo fè anpil bri nan nivo sa a. Nenpòt òganizasyon ki gen yon dosye lockfile ki rezoud nan yon pake ki rele axois-utils or lakre-tanp soti nan men piblikatè a kòd mouri09284814 ta dwe trete kòm konpwomèt: wotasyon chak kalifikasyon ki prezan nan pwosesis.anviwònman sou lame ki afekte a, verifye vektè pèsistans pou chak sistèm operasyon (gade "Sa defansè yo ta dwe fè" anba a), epi retire depandans lan.
Modèl émergentes yo
Kanpay sa a se yon egzanp sou yon chanjman nou te wè nan plizyè ensidan npm resan: Echafodaj enstalasyon-kwòk la se byen dirab la; chaj la ka ranplaseMenm editè a, menm pake a, menm bagay la preenstale / enstale / apre enstalasyon trip, e menm menm kadans vèsyon-bump la — sèl bagay ki te chanje ant axois-utils:1.0.6 ta dwe apwouve bèso tibebe w la epi axois-utils:1.0.9 se te dosye a hooks kouri. Deteksyon ki baze sou siyati ki kle nan chaj Faz A a (chèn chemen bous, phantom.jsKolektè 7,667 liy lan, lame Serveo C2 a) ta make twa premye vèsyon yo epi rate Faz B nèt.
Menm modèl la vizib nan lòt kanpay 2026 nou te swiv yo: yon sèl operatè ak yon sipò ki estab, k ap chanje ant vòl kalifikasyon, kliyan ki kopye nan egzamen, ekspilsyon bot Telegram, e kounye a rekritman DDoS. Defansè ki konte sou siyati chaj yo ap kontinye pèdi dezyèm tou chak kanpay.
Korolary a se ke TTP yo nan moman enstalasyon an se pi bon siyal laTrip deklarasyon enstalasyon-hook, enstale script ki enpòte https or pitit_pwosesis, enstale script ki ekri nan dosye demaraj itilizatè yo, epi enstale script ki rezoud non òdinatè sou sèvis tinèl envès gratis (Serveo, lokalhost.kouri, ngrok, cloudflared) yo tout ra nan pakè lejitim epi komen nan pakè move yo.
Sa defansè yo ta dwe fè
- Odit dosye kadna. Chèche chak package-lock.json / fil.kadna / pnpm-lock.yaml nan òganizasyon w lan pou kòd egzak yo axois-utils ta dwe apwouve bèso tibebe w la epi lakre-tanpTrete nenpòt match kòm yon konpwomi.
- Wotasyon sekrè yo sou lame ki afekte yo. Faz A rekòlte an mas kalifikasyon SSH, nwaj, GitHub, npm, ak bous. Sipoze tout kalifikasyon ki janm prezan nan pwosesis.anviwònman, ~ / .ssh, ~/.aws, ~/.npmrc, ~ / .config, oswa nenpòt ki .anviwònman* fichye sou lame ki afekte a ekspoze.
- Retire pèsistans (Faz B). Sou Windows, efase HKCU\Software\Microsoft\Windows\Vèsyon Aktyèl\Run\SystemUpdate, retire %APPDATA%\Microsoft\Windows\Menu Kòmanse\Pwogram\Demaraj\system-update.bat, epi schtasks /delete /tn SistèmMizajou /fSou Linux, crontab -e epi retire @nœd rekòmanse …, systemctl –itilizatè enfim –kounye a phantom-bot.service Lè sa a, efase ~/.config/systemd/user/phantom-bot.service, fwote .bashrc / .zshrc / /etc/rc.localSou macOS, launchctl dechaje ~/Bibliyotèk/LaunchAgents/com.phantom.bot.plist apre sa efase plist la.
- Bloke òdinatè C2 yo. Ajoute kat pwen final C2 yo nan tablo IOC a nan lis blokaj sòti ou a. *.serveousercontent.com ta dwe apwouve bèso tibebe w la epi *.lhr.life yo ka bloke an gwo si anviwònman ou an pa gen okenn itilizasyon lejitim pou sèvis tinèl envès.
- Chas pa TTP lè enstalasyon an, pa chay itil. Antre dosye blokaj envantè ki gen package.json deklare preenstale, enstale, epi apre enstalasyon tout ap montre menm script la. Verifye laj pakè a ak estati verifikasyon piblikatè a. Modèl sa a ra nan pakè lejitim epi li se siyal ki pi fyab ke PhantomBot reyitilize.
- Odit pou binè C2 a. Nenpòt moun ki telechaje axois-utils:1.0.9 gen sèvè C2 operatè a (c2 ÈLF, sha256 165fa92d…) sou disk. Eskane kach ak depo atifak CI yo. Binè a pa aktif poukont li, men prezans li sou yon estasyon travay se yon prèv san anbigwite ke pake a te enstale.
Liy fèmen
Menm operatè a, menm pake a, ak menm enstalasyon an ka delivre menas totalman diferan nan 48 èdtan. Gade echafodaj la, pa chaj la.




