TL; DR
nolimit-agent je npm paket čije objavljene verzije — 1.0.299 do 1.0.307, objavljeni tokom četiri dana, od 26.06.2026. do 29.06.2026. — svaki nosi kompletan okvir za phishing i masovnu poštu unutar skrivenog, potpuno obfusiranog 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 krije se Tok 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 i SMS poruka pokretan listama primalaca koje dostavlja operater; predlošci poruka s lažnim predstavljanjem brenda; konstrukcija linkova za otvaranje i preusmjeravanje; i izviđanje putem DNS-a preko HTTPS-a, WHOIS-a i pretrage koda GitHub-a. Runtime saobraćajni signali do infrastrukture operatera na api[.]nolimitent[.]xyz:4100.
Pogođeno: svako ko instalira bilo koju verziju paketa i bilo koji Microsoft 365 poštanski sandučić č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 prethodnu verziju.
Ozbiljnost: kritičanPogođeni ekosistem: npmJedan pokazatelj koji prvo treba tražiti: domaćin api[.]nolimitent[.]xyz.
Napad: kako funkcioniše
Benigna ljuska preko skrivenog korisnog tereta
Pakovanje predstavlja običnu površinu. package.json izjavljuje nakon instalacije kuka –
text postinstall: node scripts/postinstall.js — i prilikom inspekcije skripte/postinstall.js je bezopasan: instalira Windows komandnu podlogu i izlazi. Udica nije mjesto gdje se ponašanje nalazi. glavni i am oba polja pokazuju na .oglas/, direktorij čija vodeća tačka ga sprečava da bude neobaveznog ls izlaz, a čiji je sadržaj jednoliko mašinski obfusiran. Statički skener je izbrojao ~4,293 raspona kodiranog korisnog opterećenja preko .oglas/ set modula; javascript-obfuscator je deklarirana razvojna zavisnost, koja se podudara s oblikom rotacije niza stringova uključenih datoteka.
Podjela je prvi signal vrijedan spomena: instalacijska udica koju bi recenzent pomno pregledao je čista, dok se operativni kod nalazi jedan direktorij dalje, skriven i zamaskiran, do kojeg se dolazi samo kada se pokrene izvezena ulazna tač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 unosi taj kod u microsoft.com/devicelogin` na drugom uređaju i odobrava, a servis koji je poslao zahtjev prima tokene. Kada servis koji je poslao zahtjev pripada nekome osim vlasniku poštanskog sandučića, odobrenje dodjeljuje toj trećoj strani token. Nakon što se token dobije, .ad/x12.js` čita poštanski sandučić direktno putem Microsoft Graph-a:
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 akreditivi za phishing u klasičnom smislu, samo kod za odobrenje.
Mehanizam za masovnu poštu i SMS s predlošcima za impersonaciju
Oko pristupa poštanskom sandučiću nalazi se program za slanje pošte. Paket šalje datoteke koje operater može uređivati - liste pošiljatelja (pošiljatelji.txt, smtps.txt) i datoteku predloška (functions.txt) — čije se adrese čitaju kao lista za audiciju za lažno predstavljanje: sigurnost@apple.com, login-verifikacija, OAuth usluga, naplata i pošiljaoci obavještenja o računu u odnosu na yourdomain.com Zamjenjuje operatera. SMS strana ima telefonebook i konfiguraciju mrežnog prolaza. Program za slanje pošte ponavlja liste primalaca koje je dostavio operater i šalje putem konfiguriranih SMTP releja.
Da bi linkovi stigli, .ad/xu.js i .ad/xq.js kreiraju URL-ove koji iskorištavaju dvosmislenost parsiranja URL-ova i praćenje klikova. Obrasci lažiranja ugrađuju autoritet koji izgleda pouzdano prije @ tako da 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 favikon-e od glavnih potrošača i enterprise pružatelji usluga pošte — rutinska tehnika za prikazivanje uvjerljivog prompt-a ili odredišne stranice s brendom pružatelja usluga.
Izviđanje ciljeva i infrastrukture
Nekoliko modula prikuplja kontekst prije slanja. .ad/x0.js razrješava imena preko DNS-a preko HTTPS-a (dns[.]google/resolve), .ad/xa.js upiti WHOIS (api[.]whois[.]vu), I .ad/x9.js pokreće pretragu koda na GitHub-u (api[.]github[.]com/search/code?q=) — obrazac koji je u skladu s otkrivanjem izložene konfiguracije mail servera i SMTP vjerodajnica za slanje podataka na listu releja. .ad/xs.js upituje CDX indeks Wayback Machine-a.
Komanda i kontrola
Preko zamagljenog seta, .ad/x4.js referencira krajnju tačku operatora:
text http://api[.]nolimitent[.]xyz:4100 Domaćin dijeli svoje neograničeno brend s vlastitim nazivom izdavača i : 4100 Port je kanal za poziv kući (call-home) okvira. Ovo je najtrajniji indikator za branitelje: paket, radna stanica programera ili agent za izgradnju koji doseže api[.]nolimitent[.]xyz je pokrenuo ovaj kod.
Indikatori kompromisa
Indikatori u nastavku su oni na koje branitelj može reagirati - grepirati lockfile, blokirati host ili pretraživati proxy i DNS logove. Microsoftove krajnje tačke se pojavljuju jer ih framework zloupotrebljava; one same po sebi nisu zlonamjerne i ne bi ih trebalo blokirati.
| pokazatelj | tip | Gdje | Akcija odbrambenog igrača |
|---|---|---|---|
nolimit-agent (sve verzije 1.0.299–1.0.307) | paket | npm | Grep lockfiles / instalacijski logovi |
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@ link obrasci | URL parodija | .ad/xu.js, .ad/xq.js | Inspekcija URL-ova pošte/proxyja |
Grant za kod uređaja + Grafik inbox/sentitems čitati | ponašanje | .ad/x12.js | Prijava na M365 + pregled Graph revizije |
Hešovi datoteka snimljeni prilikom trijaže:
- paket/.ad/x0.js — ša256 e4153bb614ee03ec456e6b5b41926385db6aae0e4f3e771d18e581571ad7ca2a
- paket/package.json — ša256 8618064f1f6146b4a8f0459aff9154dca1847e3936aa44f4d4cd37e127075644
Signal zakupca Microsoft 365 vrijedan praćenja neovisno o ovom paketu: uspješne prijave koda uređaja, nakon čega slijede očitavanja grafikona mape/prijemno sanduče pošte i mailFolderi/pošalji, posebno iz sesije koju korisnik ne prepoznaje.
Atribucija i uočeno ponašanje
Ono što je vidljivo ostaje odvojeno od onoga ko stoji iza toga.
Uočljive činjenice: paket je objavljen pod imenom nolimit-agent sa neprovjerenom Gmail adresom i bez povezanog repozitorija izvornog koda; package.json opisuje ga kao "naprednog pošiljatelja e-pošte" i označava ga sa crveni tim ključna riječ; kod za izvršavanje je koncentriran u skrivenom, zamaskiranom .oglas/ direktorij čiji alatni lanac (javascript-obfuscator) je deklarirana zavisnost; i host za poziv kući api[.]nolimitent[.]xyz ponovo koristi neograničeno brend. Ovo je jedan paket s jednom infrastrukturnom znamenitošću kojom upravlja operater - ne klaster s više paketa, i nije identificirano preklapanje s prethodno imenovanom kampanjom.
The crveni tim Ključna riječ ne mijenja klasifikaciju. Legitimni alati za ofanzivnu sigurnost koji pružaju mogućnost dvostruke namjene to čine transparentno: čitljiv izvor, mete koje obezbjeđuje operater i bez skrivenih poziva kući. Ovaj paket invertuje svako od tih svojstava - njegov operativni kod je obfusiran i skriven, te se usmjerava na fiksnu infrastrukturu operatera, a ne na metu koju korisnik obezbjeđuje. Ponašanje, a ne oznaka, određuje presudu, koja je zlonamjerna.
Ovdje se ne navodi namjera. Objava opisuje šta kod radi - zahtijeva kod uređaja, čita poštanski sandučić preko Grapha, šalje masovnu poštu putem konfiguriranih releja, šalje signal fiksnom hostu - i ostavlja motiv nenaveden.
Uticaj, trendovi i smjernice za odbrambene igrače
Dva efekta vezana za vrijeme instalacije su bitna. Prvo, svaki programer ili CI agent koji instalira nolimit-agent dovodi okvir na taj host i uspostavlja poziv kući prema api[.]nolimitent[.]xyzDrugo, mogućnost koda uređaja proširuje doseg izvan hosta koji instalira: Microsoft 365 poštanski sandučić čiji se vlasnik navodi da odobri predstavljeni kod čita se direktno putem Graph-a, bez ikakve lozinke koja prelazi žicu.
Širi trend je onaj koji se internalizuje. Fišing putem koda uređaja (AiTM) prešao je iz samostalne phishing infrastrukture u paket na javnom registru — distribucija putem npm install umjesto putem linka poslanog e-poštom. Pakovanje kompleta na ovaj način mijenja problem hostinga i isporuke linkova phishing operatera za doseg registra, a operativni kod skriva iza čiste instalacijske hook-a i obfusciranog direktorija pod nazivom dotfile koji onemogućava brzi ručni pregled.
Za defanzivce:
- Pregled registra i zavisnosti. Tretirajte paket čiji glavni/am razrješava se u skriveni (s prefiksom tačke) direktorij uniformno obfusiranog koda prve strane kao visokorizičan samo po strukturi, neovisno o tome da li instalacijska zakačka izgleda čisto. Minifikacija nije obfusacija - kapija se zasniva na potpisu dekodera niza stringova, a ne na dužini linije.
- Ojačavanje Microsoft 365. Ograničite tok autorizacije koda uređaja pomoću uslovnog pristupa tamo gdje to nije operativno potrebno; dodjele koda uređaja su poznati AiTM vektor i rijetko su potrebne interaktivnim korisnicima. Provedite reviziju prijava koda uređaja nakon čega slijedi trenutno nabrajanje Graph poštanskih sandučića.
- Detekcija mreže. Blokiraj i upozori uključeno api[.]nolimitent[.]xyzPretražite zapise odlaznih DNS i proxy servera u infrastrukturi za razvojne programere i izgradnju.
- Detekcija putanje pošte. The korisnik@domaćin URL-spoof obrasci (pouzdan[.]com@…) se mogu otkriti na mail gateway-u i proxyju; označite veze čija komponenta autoriteta prethodi @.
Paket je bio aktivan na npm-u u vrijeme analize. Budući da skriveni okvir obuhvata cijelu objavljenu verziju i trenutnu najnoviji Oznaka (1.0.307) nosi mogućnost koda uređaja, uklanjanje iz registra treba da obuhvati svaku verziju, a ne samo jednu prethodnu verziju.




