DeviceDoor npm paketea Microsoft 365 gailu-kode phishing esparru bat bidaltzen

DeviceDoor: Microsoft 365 gailu-kode phishing eta posta masiboen esparru bat bidaltzen duen npm pakete publiko bat

TL; DR

nolimit-agent npm pakete bat da, zeinaren argitaratutako bertsioak — 1.0.299tik 1.0.307era, 2026-06-26tik 2026-06-29ra lau egunetan argitaratuak — bakoitzak darama phishing eta posta masiboen esparru osoa direktorio ezkutu eta guztiz nahasi baten barruan. Bertsio guztietan sarrera nagusia honela ebazten da .ad/x0.js, dotfile izeneko karpeta bateko ~86 fitxategietako bat, gutxi gorabehera 4,200 javascript-obfuscator string-array blob dituena; instalazio-kakoa eta sarreraren diseinua berdinak dira lerro osoan.

Nahasmenduaren atzean dago Microsoft 365 OAuth gailu-kodearen fluxua (login[.]microsoftonline[.]com/common/oauth2/v2.0/devicecode) kode bat onartu ondoren, biktimaren Outlook sarrera-ontzia eta bidalitako elementuak Microsoft Graph APIaren bidez irakurtzen dituena; operadoreak emandako hartzaile-zerrendek bultzatutako SMTP eta SMS masiboak bidaltzeko motor bat; marka-impertsio mezuen txantiloiak; birbideratze irekiko estekak eraikitzea; eta DNS-over-HTTPS, WHOIS eta GitHub kode bilaketaren bidezko aitorpena. Exekuzio-denbora trafiko-balizak operadorearen azpiegiturara api[.]nolimitent[.]xyz:4100.

Kaltetua: paketearen edozein bertsio instalatzen duen edonor, eta edozein Microsoft 365 postontzia zeinaren jabeak onartzen duen haren bidez aurkeztutako gailu-kode bat. Azken bertsioa, 1.0.307, uneko azken etiketa da eta gailu-kodearen postontziaren gaitasun bera dauka — kode gaiztoa ez dago aurreko bertsio bakarrera mugatuta.

Larritasun: kritikoaKaltetutako ekosistema: NPMLehenengo bilatu beharreko adierazle bakarra: ostalaria api[.]nolimitent[.]xyz.

Erasoa: nola funtzionatzen duen

Karga ezkutu baten gaineko oskola onbera

Paketeak gainazal arrunta aurkezten du. paketea.json deklaratzen du instalazio osteko kakoa – 

text postinstall: node scripts/postinstall.js 

— eta ikuskapenean scripts/postinstall.js kaltegabea da: Windows komando-shim bat instalatzen du eta ixten da. Portaera ez dago kakoan. nagusia bin eremu biek seinalatzen dute .ad/, puntu nagusiak kasualitatetik kanpo mantentzen duen direktorio bat ls irteera, eta zeinen edukia makinak uniformeki nahasten duen. Eskaner estatikoak ~4,293 kodetutako karga-tarte zenbatu zituen .ad/ modulu multzoa; javascript-ofuskatzailea deklaratutako garapen-mendekotasun bat da, multzokatutako fitxategien string-array-rotation formarekin bat datorrena.

Zatiketa da izendatu beharreko lehenengo seinalea: berrikusle batek aztertuko lukeen instalazio-hokoa garbia da, eta funtzionamendu-kodea, berriz, direktorio batera dago, ezkutatuta eta nahasita, paketearen esportatutako sarrera-puntua exekutatzen denean bakarrik iristen da.

Microsoft 365 gailu-kodeko postontzirako sarbidea

Modulua .ad/x12.js Esparruaren gaitasun garrantzitsuena dauka. Microsoft 365 OAuth 2.0 gailuen baimen-emailea bultzatzen du:

text POST login[.]microsoftonline[.]com/common/oauth2/v2.0/devicecode 

Gailu-kodearen baimena sarrera mugatuko gailuetarako diseinatutako Microsoft-en fluxu legitimo bat da: zerbitzu batek kode bat eskatzen du, erabiltzaileak kode hori idazten du. microsoft.com/devicelogin` bigarren gailu batean eta onartzen du, eta eskaera egiten duen zerbitzuak tokenak jasotzen ditu. Eskaera egiten duen zerbitzua postontziaren jabea ez den norbaitena denean, onespenak hirugarren horri token bat ematen dio. Token bat lortu ondoren, .ad/x12.js`-k postontzia zuzenean irakurtzen du Microsoft Graph bidez:

text GET graph[.]microsoft[.]com/v1.0/me/mailFolders/inbox/messages?$top=250&$select=from GET graph[.]microsoft[.]com/v1.0/me/mailFolders/sentitems/messages?$top=250&$select=toRecipients 

The $haut Proiekzioek bidaltzaileen helbideak sarrerako ontzitik eta hartzaileen helbideak bidalitako elementuetatik ateratzen dituzte — biktimaren korrespontsalak mapatzeko lehengaia. Hau aurkari-tartekoaren (AiTM) sarbidea da, baimenaren bidez, pasahitza harrapatzearen bidez baino: ez dago phishing-erako kredentzialik zentzu klasikoan, onarpena lortzeko kode bat besterik ez.

Inpertsonazio txantiloiak dituen posta eta SMS masiboen motorra

Postontziaren inguruan posta-biltzaile bat dago. Paketeak operadoreak edita ditzakeen datu-fitxategiak bidaltzen ditu — bidaltzaileen zerrendak (bidaltzaileak.txt, smts.txt) eta txantiloi fitxategi bat (funtzioak.txt) — zeinen ordezko helbideak imitaziorako bertsio-orri gisa irakurtzen diren: segurtasuna@apple.com, login-egiaztapena, OAuth zerbitzua, fakturazioa eta kontu-jakinarazpenen bidaltzaileak baten aurka yourdomain.com operadoreak ordezkatzen du. SMS aldeak telefono bat daramaebook eta pasabidearen konfigurazioa. Posta-bidaltzaileak operadoreak emandako hartzaileen zerrendak errepikatzen ditu eta konfiguratutako SMTP erreleen bidez bidaltzen du.

Estekak lurreratzeko, .ad/xu.js .ad/xq.js URLen analisi anbiguotasuna eta klikak jarraitzea ustiatzen dituzten URLak eraiki. Faltsutze-ereduek itxura fidagarria duen autoritate bat txertatzen dute aurretik. @ beraz, ikusgai dagoen aurrizkia benetako ostalariaren desberdina da:

text https://trusted[.]com@      https://trusted[.]com%40      https://trusted[.]com:80@ https://redirect[.]example[.]com/      https://track[.]example[.]com/click? 

Esparruak kontsumitzaile nagusien faviconak ere hartzen ditu eta enterprise posta hornitzaileak — hornitzailearen markako gonbidapen edo lurreratze orrialde sinesgarri bat emateko ohiko teknika.

Helburu eta azpiegituren azterketa

Hainbat moduluk testuingurua biltzen dute bidali aurretik. .ad/x0.js izenak DNS-over-HTTPS bidez ebazten ditu (dns[.]google/ebaztu), .ad/xa.js WHOIS kontsultak (api[.]whois[.]vu), Eta .ad/x9.js GitHub kode bilaketa exekutatzen du (api[.]github[.]com/bilaketa/kodea?q=) — errelebo-zerrenda elikatzeko posta-zerbitzariaren konfigurazio eta SMTP kredentzialak agerian uztearekin koherentea den eredua. .ad/xs.js Wayback Machine-ren CDX indizea kontsultatzen du.

Agintea eta kontrola

Multzo nahasiaren zehar, .ad/x4.js operadorearen amaiera-puntua erreferentziatzen du:

text http://api[.]nolimitent[.]xyz:4100 

Ostatu-emaileak berea partekatzen du mugagabea argitaletxearen izen propioarekin marka, eta : 4100 portua framework-aren etxerako dei-kanala da. Hau da defendatzaileentzako adierazle iraunkorrena: pakete bat, garatzaile-lan-estazio bat edo eraikuntza-agente bat iristen ari da api[.]nolimitent[.]xyz kode hau exekutatu du.

Konpromisoaren adierazleak

Beheko adierazleak defendatzaile batek jardun dezakeenak dira: grep blokeo-fitxategi bat, blokeatu ostalari bat edo bilatu proxy eta DNS erregistroak. Microsoft-en amaiera-puntuak agertzen dira framework-ak gaizki erabiltzen dituelako; ez dira berez gaiztoak eta ez lirateke blokeatu behar.

Adierazlea Mota Non Defendatzailearen ekintza
nolimit-agent (1.0.299–1.0.307 bertsio guztiak) Package NPM Grep blokeo fitxategiak / instalazio erregistroak
api[.]nolimitent[.]xyz (:4100) C2 ostalaria .ad/x4.js Blokeatu; bilatu DNS + proxy erregistroak
.ad/ ezkutuko direktorioa helburu nagusi/bin gisa egitura package.json Seinale estatikoa erregistroaren berrikuspenean
trusted[.]com@ / %40 / :80@ esteka-formularioak URL faltsua .ad/xu.js, .ad/xq.js Posta/proxy URLaren ikuskapena
Gailu-kodearen baimena + Grafikoa inbox/sentitems irakurri Behavior .ad/x12.js M365 saioa hasteko + Grafikoen auditoriaren berrikuspena

Sailkapenean jasotako fitxategien hash-ak:

  • paketea/.ad/x0.js — sha256 e4153bb614ee03ec456e6b5b41926385db6aae0e4f3e771d18e581571ad7ca2a

  • paketea/paketea.json — sha256 8618064f1f6146b4a8f0459aff9154dca1847e3936aa44f4d4cd37e127075644

Pakete honetatik independenteki bilatzeko moduko Microsoft 365 maizterren seinale bat: gailu-kodearen saio-hasiera arrakastatsuak, eta ondoren, berehala, grafikoen irakurketak. posta-karpetak/sarrera-ontzia posta-karpetak/sentimenduak, batez ere erabiltzaileak ezagutzen ez duen saio batetik.

Atribuzioa eta behatutako portaera

Behagarria dena atzean dagoenetik bereizita dago.

Behaketa-datuak: paketea heldulekuaren azpian argitaratu da mugarik gabeko agentea egiaztatu gabeko Gmail helbide batekin eta lotutako iturburu-biltegirik gabe; bere paketea.json "mezu elektroniko bidaltzaile aurreratu" gisa deskribatzen du eta etiketa honekin jartzen dio talde gorria gako-hitza; exekuzio-kodea ezkutuan eta nahasian kontzentratzen da .ad/ direktorioa zeinaren tresna-katea (javascript-ofuskatzailea) deklaratutako menpekotasuna da; eta etxerako dei-ostalaria api[.]nolimitent[.]xyz berrerabiltzen du mugagabea marka. Pakete bakarra da, operadoreak kontrolatutako azpiegitura-mugarri bakarra duena — ez pakete anitzeko multzo bat, eta ez da aurretik izendatutako kanpaina batekin gainjartzerik identifikatu.

The talde gorria gako-hitzak ez du sailkapena aldatzen. Erabilera bikoitzeko gaitasuna dakarren segurtasun-tresna erasokor legitimoek modu garden batean egiten dute hori: iturburu irakurgarria, operadoreak emandako helburuak eta ezkutuko dei-etxerik ez. Pakete honek propietate horietako bakoitza alderantzikatzen du: bere funtzionamendu-kodea nahasita eta ezkutatuta dago, eta operadorearen azpiegitura finko batera bidaltzen du baliza, erabiltzaileak emandako helburu batera baino. Portaerak, ez etiketak, erabakitzen du epaia, eta hori gaiztoa da.

Asmoa ez da hemen aldarrikatzen. Mezuak kodeak zer egiten duen deskribatzen du — gailu kode bat eskatzea, postontzi bat Graph bidez irakurtzea, posta masiboa bidaltzea konfiguratutako erreleen bidez, host finko batera balizatzea — eta motiboa adierazi gabe uzten du.

Eragina, joerak eta defendatzaileen gidalerroak

Bi eragin dira instalazio-denboran garrantzitsuak. Lehenik eta behin, instalatzen duen edozein garatzaile edo CI agente mugarik gabeko agentea esparrua ostalari horretara ekartzen du eta etxerako deia ezartzen du api[.]nolimitent[.]xyzBigarrenik, gailu-kodearen gaitasunak instalatzen ari den ostalariaren irismena gainditzen du: aurkeztutako kode bat onartzera behartuta dagoen Microsoft 365 postontzi bat zuzenean irakurtzen da Graph bidez, pasahitzik inoiz haria zeharkatu gabe.

Joera zabalagoa barneratzearena da. Gailu-kodeko (AiTM) phishing-a phishing azpiegitura independente batetik erregistro publiko bateko pakete batera igaro da — banaketa honako hauen arabera: npm instalatu posta elektronikoz bidalitako esteka baten bidez baino. Kit-a modu honetan ontziratzeak phishing operadorearen hosting eta esteka-bidalketa arazoa erregistro baten irismenaren truke aldatzen du, eta funtzionamendu-kodea instalazio garbi baten hook eta dotfile izeneko direktorio nahasi baten atzean ezkutatzen du, eskuzko gainbegiratze azkarra saihesteko.

Defendatzaileentzat:

  • Erregistroaren eta mendekotasunen berrikuspena. Tratatu pakete bat zeinaren nagusia/bin egituragatik bakarrik arrisku handikoa den lehen mailako kode uniformeki nahasitako direktorio ezkutu batean (puntu aurrizkiarekin) ebazten da, instalazio-kakoa garbia den ala ez kontuan hartu gabe. Txikitzea ez da nahastea — kate-matrizearen deskodetzailearen sinaduran atea, ez lerro-luzeran.
  • Microsoft 365 gogortzea. Mugatu gailu-kodearen baimen-fluxua Baldintzapeko Sarbidearekin, funtzionalki beharrezkoa ez den lekuetan; gailu-kodearen baimenak AiTM bektore ezaguna dira eta erabiltzaile interaktiboek gutxitan behar dituzte. Auditatu gailu-kodearen saio-hasierak, eta ondoren, berehala Graph postontzien zenbaketa egin.
  • Sarearen detekzioa. Blokeatu eta alerta aktibatuta api[.]nolimitent[.]xyzBilatu irteerako DNS eta proxy erregistroak garatzaile eta eraiki azpiegituretan.
  • Posta-bidearen detekzioa. The erabiltzailea@ostalaria URL faltsuak (fidagarria[.]com@…) posta-pasabidean eta proxyan detektagarriak dira; aurretik baimena duten estekak markatu @.

Paketea npm-n zegoen martxan analisi unean. Ezkutuko esparruak argitaratutako bertsio lerro osoa eta uneko bertsioa hartzen dituenez azken (1.0.307) etiketak gailu-kodearen gaitasuna badu, erregistroaren kentzeak bertsio guztiak hartu beharko lituzke barne, ez aurreko bertsio bakarra. 

sca-tools-software-konposizio-analisi-tresnak
Lehentasuna eman, konpondu eta babestu zure software arriskuak
Lortu zure doako kontua.
Ez da beharrezkoa kreditu txartelik.

Ziurtatu zure softwarearen garapena eta entrega

Xygeni produktu multzoarekin