Dostava paketa DeviceDoor npm putem okvira za phishing koda uređaja Microsoft 365

DeviceDoor: javni npm paket koji isporučuje okvir za phishing i masovnu poštu s kodom uređaja u sustavu Microsoft 365

TL; DR

nolimit-agent je npm paket čije objavljene verzije — 1.0.299 kroz 1.0.307, objavljeni tijekom četiri dana od 26.06.2026. do 29.06.2026. — svaki nosi kompletan okvir za phishing i masovnu poštu unutar skrivenog, potpuno zamaskiranog direktorija. U svakoj verziji glavni unos se rješava na .ad/x0.js, jedna od ~86 datoteka u mapi pod nazivom dotfile koja sadrži otprilike 4,200 javascript-obfuscator string-array blobova; instalacijska udica i raspored unosa su identični u cijeloj liniji.

Iza zamagljivanja stoji Tijek koda uređaja za Microsoft 365 OAuth (login[.]microsoftonline[.]com/common/oauth2/v2.0/devicecode) koji, nakon što je kod odobren, čita pristiglu poštu i poslane stavke žrtve u Outlooku putem Microsoft Graph API-ja; mehanizam za masovno slanje SMTP-a i SMS-ova pokretan popisima primatelja koje daje operater; predlošci poruka s lažnim predstavljanjem robne marke; izgradnja poveznica za otvaranje i preusmjeravanje; i izviđanje putem DNS-a preko HTTPS-a, WHOIS-a i pretraživanja koda GitHub-a. Runtime prometni signali do infrastrukture operatera na api[.]nolimitent[.]xyz:4100.

Pogođeno: svatko tko instalira bilo koju verziju paketa i bilo koji Poštanski sandučić sustava Microsoft 365 čiji vlasnik odobrava kod uređaja predstavljen putem njega. Najnovija verzija, 1.0.307, je trenutna najnovija oznaka i nosi istu mogućnost poštanskog sandučića s kodom uređaja - zlonamjerni kod nije ograničen na jednu stariju verziju.

Ozbiljnost: kritičanPogođeni ekosustav: NPMJedan pokazatelj koji prvo treba tražiti: domaćin api[.]nolimitent[.]xyz.

Napad: kako funkcionira

Benigna ljuska preko skrivenog korisnog tereta

Paket predstavlja običnu površinu. paket.json izjavljuje nakon instalacije kuka – 

text postinstall: node scripts/postinstall.js 

- i na pregledu skripte/postinstall.js je bezopasan: instalira Windows naredbeni shim i izlazi. Udica nije mjesto gdje se ponašanje nalazi. glavni i kanta oba polja pokazuju na .oglas/, imenik čija vodeća točka ga sprječava da bude neobavezan ls izlaz, a čiji je sadržaj jednoliko strojno maskiran. Statički skener je izbrojao ~4,293 raspona kodiranog korisnog tereta preko .oglas/ skup modula; javascript-obfuscator je deklarirana razvojna ovisnost koja odgovara obliku rotacije niza stringova uključenih datoteka.

Podjela je prvi signal vrijedan spomena: instalacijska udica koju bi recenzent pomno proučio je čista, dok se operativni kod nalazi jedan direktorij dalje, skriven i zamaskiran, do kojeg se dolazi samo kada se pokrene izvezena ulazna točka paketa.

Pristup poštanskom sandučiću za Microsoft 365 uređaj s kodom

Modul .ad/x12.js nosi najznačajniju mogućnost okvira. Pokreće dodjelu autorizacije uređaja Microsoft 365 OAuth 2.0:

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

Dodjela koda uređaja je legitimni Microsoftov tok dizajniran za uređaje s ograničenim unosom: usluga zahtijeva kod, korisnik upisuje taj kod u microsoft.com/devicelogin` na drugom uređaju i odobrava, a usluga koja podnosi zahtjev prima tokene. Kada usluga koja podnosi zahtjev pripada nekome tko nije vlasnik poštanskog sandučića, odobrenje toj trećoj strani daje token. Nakon što se token dobije, .ad/x12.js` čita poštanski sandučić izravno putem Microsoft Grapha:

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 $select Projekcije izvlače adrese pošiljatelja iz pristigle pošte i adrese primatelja iz poslanih poruka - sirovinu za mapiranje dopisnika žrtve. Ovo je pristup protivnika u sredini (AiTM) putem pristanka, a ne putem snimanja lozinke: ne postoje vjerodajnice za phishing u klasičnom smislu, samo kod za odobrenje.

Mehanizam za masovnu poštu i SMS s predlošcima za lažno predstavljanje

Oko pristupa poštanskom sandučiću nalazi se program za slanje pošte. Paket šalje datoteke koje operater može uređivati ​​- popise pošiljatelja (pošiljatelji.txt, smtps.txt) i datoteku predloška (functions.txt) — čije se adrese rezerviranih mjesta čitaju kao popis za odabir lažnog predstavljanja: sigurnost@apple.com, login-pošiljatelji provjere, OAuth usluge, naplate i obavijesti o računu u odnosu na yourdomain.com zamjenjuje operatera. SMS strana nosi telefonebook i konfiguraciju pristupnika. Program za slanje pošte ponavlja popise primatelja koje je dostavio operater i šalje putem konfiguriranih SMTP releja.

Da bi poveznice stigle, .ad/xu.js i .ad/xq.js izrađuju URL-ove koji iskorištavaju dvosmislenost parsiranja URL-ova i praćenje klikova. Obrasci lažiranja ugrađuju autoritet koji izgleda pouzdano prije @ pa se vidljivi prefiks razlikuje od stvarnog hosta:

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

Okvir također prikuplja favicone od glavnih potrošača i enterprise pružatelji usluga pošte — rutinska tehnika za prikaz uvjerljivog upita ili odredišne ​​stranice s robnom markom pružatelja usluga.

Izviđanje ciljeva i infrastrukture

Nekoliko modula prikuplja kontekst prije slanja. .ad/x0.js razrješava imena putem DNS-a preko HTTPS-a (dns[.]google/resolve), .ad/xa.js upiti WHOIS (api[.]whois[.]vu), A .ad/x9.js pokreće pretragu koda na GitHubu (api[.]github[.]com/search/code?q=) — obrazac koji je u skladu s otkrivanjem izložene konfiguracije poslužitelja pošte i SMTP vjerodajnica za slanje podataka na popis releja. .ad/xs.js upituje CDX indeks Wayback Machinea.

Zapovijedanje i kontrola

Preko zamagljenog seta, .ad/x4.js referencira krajnju točku operatora:

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

Domaćin dijeli svoje neograničeno robna marka s vlastitim nazivom izdavača i : 4100 port je kanal za poziv kući okvira. Ovo je najtrajniji pokazatelj za branitelje: paket, radna stanica razvojnog programera ili agent za izgradnju koji doseže api[.]nolimitent[.]xyz je pokrenuo ovaj kod.

Pokazatelji kompromisa

Donji pokazatelji su oni na koje branitelj može reagirati - grepirati lockfile, blokirati host ili pretraživati ​​proxy i DNS zapise. Microsoftove krajnje točke pojavljuju se jer ih okvir zloupotrebljava; same po sebi nisu zlonamjerne i ne bi ih trebalo blokirati.

Pokazatelj Tip Gdje Akcija braniča
nolimit-agent (sve verzije 1.0.299–1.0.307) Paket NPM Grep lockfiles / instalacijski zapisnici
api[.]nolimitent[.]xyz (:4100) C2 domaćin .ad/x4.js Blokiraj; pretraži DNS + proxy zapise
.ad/ skriveni direktorij kao glavni/bin cilj Struktura package.json Statički signal u pregledu registra
trusted[.]com@ / %40 / :80@ obrasci za povezivanje URL lažiranje .ad/xu.js, .ad/xq.js Pregled URL-a pošte/proxyja
Potpora za kod uređaja + Grafikon inbox/sentitems čitati Ponašanje .ad/x12.js Prijava u M365 + pregled Graph revizije

Hašeovi datoteka snimljeni prilikom trijaže:

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

  • paket/package.json — sha256 8618064f1f6146b4a8f0459aff9154dca1847e3936aa44f4d4cd37e127075644

Signal za klijente Microsoft 365 vrijedan praćenja neovisno o ovom paketu: uspješne prijave koda uređaja nakon kojih slijede očitavanja grafikona mape/pristigla pošta i mailFolders/sentimes, posebno iz sesije koju korisnik ne prepoznaje.

Atribucija i opaženo ponašanje

Ono što je vidljivo ostaje odvojeno od onoga tko stoji iza toga.

Uočljive činjenice: paket je objavljen pod handleom nolimit-agent s neprovjerenom Gmail adresom i bez povezanog repozitorija izvornog koda; paket.json opisuje ga kao "naprednog pošiljatelja e-pošte" i označava ga s crveni tim ključna riječ; kod za vrijeme izvođenja koncentriran je u skrivenom, zamaskiranom .oglas/ direktorij čiji alatni niz (javascript-obfuscator) je deklarirana ovisnost; i glavni poslužitelj za poziv kući api[.]nolimitent[.]xyz ponovno koristi neograničeno robna marka. Ovo je jedan paket s jednom infrastrukturnom znamenitošću kojom upravlja operater - ne klaster s više paketa, i nije utvrđeno preklapanje s prethodno imenovanom kampanjom.

The crveni tim Ključna riječ ne mijenja klasifikaciju. Legitimni alati za ofenzivnu sigurnost koji pružaju mogućnost dvojne namjene to čine transparentno: čitljiv izvor, ciljeve koje osigurava operater i bez skrivenih poziva kući. Ovaj paket invertira svako od tih svojstava - njegov operativni kod je maskiran i skriven te usmjerava na fiksnu infrastrukturu operatera, a ne na cilj koji korisnik osigurava. Ponašanje, a ne oznaka, određuje presudu, koja je zlonamjerna.

Ovdje se ne navodi namjera. Objava opisuje što kod radi - zahtijeva kod uređaja, čita poštanski sandučić preko Grapha, šalje masovnu poštu putem konfiguriranih releja, signalizira fiksnom hostu - i ostavlja motiv nenaveden.

Utjecaj, trendovi i smjernice za obrambene igrače

Dva su važna učinka vezana uz vrijeme instalacije. Prvo, svaki programer ili CI agent koji instalira nolimit-agent dovodi okvir na taj host i uspostavlja poziv kući za api[.]nolimitent[.]xyzDrugo, mogućnost koda uređaja proširuje doseg izvan hosta koji instalira: poštanski sandučić sustava Microsoft 365 čiji se vlasnik potiče na odobrenje predstavljenog koda čita se izravno putem Grapha, bez ikakve lozinke koja prelazi žicu.

Širi trend je onaj internalizacije. Phishing putem koda uređaja (AiTM) premjestio se iz samostalne phishing infrastrukture u paket na javnom registru - distribucija putem npm instalirati umjesto putem veze poslane e-poštom. Pakiranje kompleta na ovaj način mijenja problem hostinga i isporuke veze phishing operatera za doseg registra te skriva operativni kod iza čiste instalacijske udice i obfusciranog direktorija pod nazivom dotfile koji onemogućuje brzi ručni pregled.

Za branitelje:

  • Pregled registra i ovisnosti. Tretirajte paket čiji glavni/kanta razrješava se u skriveni (s prefiksom od točke) direktorij uniformno obfusciranog koda prve strane kao visokorizičan samo na strukturi, neovisno o tome izgleda li instalacijska udica čisto. Minifikacija nije obfusacija - vrata se odnose na potpis dekodera niza stringova, a ne na duljinu retka.
  • Ojačavanje sustava Microsoft 365. Ograničite tok autorizacije koda uređaja uvjetnim pristupom tamo gdje to nije operativno potrebno; dodjele koda uređaja poznati su AiTM vektor i rijetko su potrebne interaktivnim korisnicima. Provjera prijava koda uređaja nakon čega slijedi trenutno nabrajanje poštanskih sandučića u Graphu.
  • Detekcija mreže. Blokiraj i upozori uključeno api[.]nolimitent[.]xyzPretražite izlazne DNS i proxy zapise za to u infrastrukturi za razvojne programere i izgradnju.
  • Detekcija putanje pošte. The korisnik@domaćin Obrasci za lažiranje URL-ova (pouzdan[.]com@…) mogu se otkriti na pristupniku pošte i proxyju; označite veze čija komponenta autoriteta prethodi @.

Paket je bio aktivan na npm-u u vrijeme analize. Budući da skriveni okvir obuhvaća cijelu objavljenu verziju i trenutnu zadnji Oznaka (1.0.307) nosi mogućnost koda uređaja, uklanjanje iz registra trebalo bi obuhvatiti svaku verziju, a ne samo jednu prethodnu verziju. 

alati-za-analizu-sastava-softvera-sca-tools
Prioritizirajte, sanirajte i osigurajte softverske rizike
Nabavite svoj besplatni račun.
Nije potrebna kreditna kartica.

Osigurajte svoj razvoj i isporuku softvera

s Xygeni paketom proizvoda