Dostava paketov DeviceDoor npm v okviru lažnega predstavljanja kode naprav Microsoft 365

DeviceDoor: javni paket npm, ki pošilja ogrodje za lažno predstavljanje in množično pošiljanje e-pošte v kodi naprav Microsoft 365

TL; DR

nolimit-agent je npm paket, katerega objavljene različice — 1.0.299 do 1.0.307, izdani v štirih dneh od 26. 06. 2026 do 29. 06. 2026 – vsak nosi celoten okvir za lažno predstavljanje in množično pošiljanje e-pošte znotraj skritega, popolnoma zakritega imenika. V vsaki različici se glavni vnos razreši na .ad/x0.js, ena od ~86 datotek v mapi z imenom dotfile, ki vsebuje približno 4,200 blobov nizov in nizov javascript-obfuscator; postavitev namestitvenega kljukica in vnosa sta enaka po vsej vrstici.

Za zamegljevanjem se skriva Potek kode naprave za Microsoft 365 OAuth (login[.]microsoftonline[.]com/common/oauth2/v2.0/devicecode), ki po odobritvi kode prebere mapo »Prejeto« in poslane elemente žrtve v Outlooku prek Microsoft Graph API-ja; mehanizem za množično pošiljanje SMTP in SMS-ov, ki ga poganjajo seznami prejemnikov, ki jih zagotovi operater; predloge sporočil, ki predstavljajo lažno predstavljanje blagovne znamke; gradnja povezav za odpiranje in preusmerjanje; in izvidovanje prek iskanja kode DNS prek HTTPS, WHOIS in GitHub. Svetilniki prometa med izvajanjem do operaterjeve infrastrukture na api[.]nolimitent[.]xyz:4100.

Prizadeti: vsi, ki namestijo katero koli različico paketa, in vsi Nabiralnik v storitvi Microsoft 365 katerega lastnik odobri kodo naprave, predstavljeno prek njega. Najnovejša različica, 1.0.307, je trenutna najnovejša oznaka in ima enako zmogljivost poštnega nabiralnika kode naprave – zlonamerna koda ni omejena na eno prejšnjo različico.

Resnost: kritičnoPrizadeti ekosistem: npmNajprej je treba poiskati en kazalnik: gostitelj api[.]nolimitent[.]xyz.

Napad: kako deluje

Nežna lupina nad skritim tovorom

Embalaža ima običajno površino. paket.json izjavlja po namestitvi kavelj – 

text postinstall: node scripts/postinstall.js 

— in ob pregledu skripti/postinstall.js je neškodljiv: namesti podlogo ukaza sistema Windows in se zapre. Kavelj ni tam, kjer se vedenje nahaja. Glavni in bin polji kažeta v .oglas/, imenik, katerega pika na začetku preprečuje, da bi bil naključni ls izhod, katerega vsebina je enakomerno strojno zakrita. Statični skener je preštel ~4,293 razponov kodirane koristne obremenitve po celotnem .oglas/ komplet modulov; javascript-obfuscator je deklarirana razvojna odvisnost, ki se ujema z obliko vrtenja nizov in nizov v paketnih datotekah.

Razdelitev je prvi signal, ki ga je vredno omeniti: namestitveni kavelj, ki bi ga pregledovalec natančno pregledal, je čist, medtem ko operativna koda leži en imenik stran, skrita in zakrita, dosežena le, ko se zažene izvožena vstopna točka paketa.

Dostop do nabiralnika za kodo naprave v storitvi Microsoft 365

Modul .ad/x12.js nosi najpomembnejšo zmogljivost ogrodja. Poganja podelitev avtorizacije naprav Microsoft 365 OAuth 2.0:

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

Dodelitev kode naprave je legitimen Microsoftov tok, zasnovan za naprave z omejenim vnosom: storitev zahteva kodo, uporabnik pa to kodo vnese v microsoft.com/devicelogin` na drugi napravi in ​​odobri, storitev, ki zahteva, pa prejme žetone. Ko storitev, ki zahteva, pripada nekomu drugemu kot lastniku poštnega predala, odobritev tej tretji osebi izroči žeton. Ko je žeton pridobljen, .ad/x12.js` bere poštni nabiralnik neposredno prek programa Microsoft Graph:

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 

Naš $select Projekcije potegnejo naslove pošiljateljev iz mape »Prejeto« in naslove prejemnikov iz poslanih elementov – surov material za kartiranje dopisnikov žrtve. To je dostop nasprotnika v sredini (AiTM) s soglasjem in ne z zajemom gesla: za lažno predstavljanje v klasičnem smislu ni poverilnic, ampak le koda za odobritev.

Mehanizem za množično pošto in SMS-e s predlogami za poosebljanje

Okoli dostopa do poštnega nabiralnika se nahaja program za pošiljanje. Paket pošilja podatkovne datoteke, ki jih lahko upravljavec ureja – sezname pošiljateljev (pošiljatelji.txt, smtps.txt) in datoteko predloge (funkcije.txt) — katerih nadomestni naslovi se berejo kot seznam za poosebljanje: varnost@apple.com, login- preverjanje, storitev OAuth, obračunavanje in pošiljatelji obvestil o računu v primerjavi z yourdomain.com Nadomestni operater nadomešča. Stran SMS ima telefonebook in konfiguracijo prehoda. Poštni program iterira sezname prejemnikov, ki jih zagotovi operater, in pošilja prek konfiguriranih relejev SMTP.

Da bi povezave pristale, .ad/xu.js in .ad/xq.js gradijo URL-je, ki izkoriščajo dvoumnost pri razčlenjevanju URL-jev in sledenje klikom. Vzorci lažnih namer vdelajo zaupanja vredno avtoriteto pred @ torej se vidna predpona razlikuje od dejanskega gostitelja:

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

Okvir zbira tudi ikone priljubljenih od večjih potrošnikov in enterprise ponudniki pošte – rutinska tehnika za upodabljanje prepričljivega poziva ali ciljne strani z blagovno znamko ponudnika.

Izvidovanje ciljev in infrastrukture

Pred pošiljanjem več modulov zbere kontekst. .ad/x0.js razrešuje imena prek DNS-over-HTTPS (dns[.]google/resolve), .ad/xa.js poizvedbe WHOIS (api[.]whois[.]vu), In .ad/x9.js izvaja iskanje kode GitHub (api[.]github[.]com/search/code?q=) – vzorec, ki je skladen z odkrivanjem konfiguracije izpostavljenega poštnega strežnika in poverilnic SMTP za posredovanje seznama relejev. .ad/xs.js poizveduje po indeksu CDX Wayback Machine.

Poveljstvo in nadzor

Čez zastrt nabor, .ad/x4.js sklicuje se na končno točko operatorja:

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

Gostitelj deli svoje neomejeno blagovna znamka z lastnim poimenovanjem založnika in : 4100 Vrata so kanal za klice domov ogrodja. To je najtrdnejši indikator za branilce: paket, delovna postaja razvijalca ali agent za gradnjo, ki doseže api[.]brez omejitve[.]xyz je zagnal to kodo.

Kazalniki kompromisa

Spodnji kazalniki so tisti, na katere lahko branilec ukrepa – z uporabo ukaza grep pridobi zaklenjeno datoteko, blokira gostitelja ali išče po dnevnikih proxyja in DNS. Microsoftove končne točke se pojavijo, ker jih ogrodje zlorablja; same po sebi niso zlonamerne in jih ne bi smeli blokirati.

Kazalec tip Kje Dejanje branilca
nolimit-agent (vse različice 1.0.299–1.0.307) paket npm Grep zaklepne datoteke / dnevniki namestitve
api[.]nolimitent[.]xyz (:4100) Gostitelj C2 .ad/x4.js Blokiraj; išči dnevnike DNS + proxy
.ad/ skrita mapa kot glavni/bin cilj struktura package.json Statični signal v pregledu registra
trusted[.]com@ / %40 / :80@ obrazci za povezave URL-parodija .ad/xu.js, .ad/xq.js Pregled URL-jev pošte/proxyja
Dodelitev kode naprave + graf inbox/sentitems preberite Vedenje .ad/x12.js Prijava v M365 + pregled revizije Graph

Zgoščene vrednosti datotek, zajete pri triaži:

  • paket/.ad/x0.js — ša256 e4153bb614ee03ec456e6b5b41926385db6aae0e4f3e771d18e581571ad7ca2a

  • paket/paket.json — ša256 8618064f1f6146b4a8f0459aff9154dca1847e3936aa44f4d4cd37e127075644

Signal najemnika storitve Microsoft 365, ki ga je vredno iskati neodvisno od tega paketa: uspešne prijave s kodo naprave, ki jim takoj sledijo branja grafov poštaMape/Prejeto in poštne mape/poslane elemente, še posebej iz seje, ki je uporabnik ne prepozna.

Pripisovanje in opazovano vedenje

Kar je opazno, ostane ločeno od tega, kdo stoji za tem.

Opazna dejstva: paket je objavljen pod imenom nolimit-agent z nepreverjenim Gmail naslovom in brez povezanega repozitorija izvorne kode; paket.json opisuje ga kot »naprednega pošiljatelja e-pošte« in ga označuje z rdeča ekipa ključna beseda; izvajalna koda je skoncentrirana v skritem, zakritem .oglas/ imenik, katerega orodjarna (javascript-obfuscator) je deklarirana odvisnost; in gostitelj klica domov api[.]brez omejitve[.]xyz ponovno uporabi neomejeno blagovna znamka. Gre za en sam paket z eno infrastrukturno znamenitostjo, ki jo nadzoruje operater – ne za skupino z več paketi, in ni bilo ugotovljeno nobeno prekrivanje s prej imenovano kampanjo.

Naš rdeča ekipa Ključna beseda ne spremeni klasifikacije. Legitimna orodja za ofenzivno varnost, ki ponujajo dvojno rabo, to počnejo transparentno: berljiva izvorna koda, cilji, ki jih zagotovi operater, in brez skritih klicev domov. Ta paket obrne vsako od teh lastnosti – njegova operativna koda je zakrita in prikrita ter usmerja k fiksni infrastrukturi operaterja in ne k cilju, ki ga zagotovi uporabnik. Razsodbo, ki je zlonamerna, določa vedenje, ne oznaka.

Namen tukaj ni naveden. Objava opisuje, kaj koda počne – zahteva kodo naprave, bere poštni predal prek Grapha, pošilja množično pošto prek konfiguriranih relejev, oddaja signal fiksnemu gostitelju – in motiv pušča nenaveden.

Vpliv, trendi in smernice za branilce

Pomembna sta dva učinka namestitve. Prvič, vsak razvijalec ali agent CI, ki namesti nolimit-agent prenese ogrodje na tega gostitelja in vzpostavi klic domov za api[.]brez omejitve[.]xyzDrugič, zmožnost kode naprave razširja doseg onkraj gostitelja, ki namešča: poštni predal Microsoft 365, katerega lastnik mora odobriti predstavljeno kodo, se prebere neposredno prek Grapha, brez prenosa gesla.

Širši trend je trend internalizacije. Lažno predstavljanje s kodo naprave (AiTM) se je iz samostojne infrastrukture za lažno predstavljanje premaknilo v paket v javnem registru – distribucija prek namestite npm namesto prek povezave, poslane po e-pošti. S takim pakiranjem kompleta se težava gostovanja in dostave povezav, ki jo ima operater lažnega predstavljanja, zamenja za doseg registra, operativna koda pa se skrije za čisto namestitveno kodo in zakritim imenikom z imenom dotfile, ki preprečuje hiter ročni pregled.

Za branilce:

  • Pregled registra in odvisnosti. Obravnavajte paket, katerega Glavni/bin se razreši v skriti imenik (s predpono pike) enakomerno zakrite kode prve osebe kot visoko tvegana samo glede strukture, neodvisno od tega, ali je namestitveni kavelj videti čist. Minimizacija ni zakrivanje – vrata se nanašajo na podpis dekoderja nizov in ne na dolžino vrstice.
  • Utrjevanje sistema Microsoft 365. Omejite tok avtorizacije kode naprave s pogojnim dostopom, kjer to ni operativno potrebno; odobritve kode naprave so znan vektor AiTM in jih interaktivni uporabniki redko potrebujejo. Izvedite nadzor za prijave s kodo naprave, ki mu sledi takojšnje naštevanje poštnih predalov Graph.
  • Zaznavanje omrežja. Blokiraj in opozori api[.]brez omejitve[.]xyzPoiščite dnevnike odhodnih DNS in proxy strežnikov v celotni infrastrukturi za razvijalce in graditelje.
  • Zaznavanje poštne poti. Naš uporabnik@gostitelj obrazci za lažne URL-je (zaupanja vreden[.]com@…) so zaznavne na poštnem prehodu in posredniškem strežniku; označite povezave, katerih komponenta avtoritete predhodi @.

Paket je bil v času analize aktiven na npm. Ker skriti okvir zajema celotno objavljeno različico in trenutno Zadnji Oznaka (1.0.307) vsebuje zmožnost kode naprave, zato bi morala odstranitev iz registra zajemati vse različice, ne le ene starejše različice. 

orodja-za-analizo-sestave-programske-programske-orodja-sca
Določite prednostne naloge, odpravite in zavarujte tveganja programske opreme
Pridobite svoj brezplačni račun.
Ni potrebna kreditna kartica.

Zagotovite si razvoj in dostavo programske opreme

z Xygeni Product Suite