TL; DR
nolimit-agent ir npm pakotne, kuras publicētās versijas — 1.0.299 caur 1.0.307, izlaisti četru dienu laikā no 2026. gada 26. jūnija līdz 2026. gada 29. jūnijam — katrs nes pilnīga pikšķerēšanas un masveida e-pasta sūtīšanas sistēma slēptā, pilnībā apmulsinātā direktorijā. Katrā versijā galvenā ieraksta rezultāts ir .ad/x0.js, viens no aptuveni 86 failiem mapē ar nosaukumu dotfile, kurā ir aptuveni 4,200 javascript-obfuscator virkņu masīvu blobi; instalēšanas āķis un ieraksta izkārtojums visā rindā ir identisks.
Aiz apmulsuma slēpjas Microsoft 365 OAuth ierīces koda plūsma (login[.]microsoftonline[.]com/common/oauth2/v2.0/devicecode), kas pēc koda apstiprināšanas nolasa upura Outlook iesūtni un nosūtītos vienumus, izmantojot Microsoft Graph API; masveida SMTP un īsziņu sūtīšanas dzinēju, ko darbina operatora sniegtie adresātu saraksti; zīmola personifikācijas ziņojumu veidnes; atvērtas pāradresācijas saišu izveidi; un izlūkošanu, izmantojot DNS-over-HTTPS, WHOIS un GitHub koda meklēšanu. Izpildes laika datplūsmas bāksignāli uz operatora infrastruktūru vietnē api[.]nolimitent[.]xyz:4100.
Ietekmētie: ikviens, kurš instalē jebkuru pakotnes versiju, un jebkurš Microsoft 365 pastkaste kura īpašnieks apstiprina caur to parādīto ierīces kodu. Jaunākā versija, 1.0.307, ir pašreizējā jaunākā birka un tai ir tādas pašas ierīces koda pastkastes iespējas — ļaunprātīgais kods nav ierobežots ar vienu iepriekšējo versiju.
Smagums: kritisksIetekmētā ekosistēma: npmViens rādītājs, kas jāmeklē vispirms: resursdators. api[.]nolimitent[.]xyz.
Uzbrukums: kā tas darbojas
Labdabīgs apvalks virs slēptas kravas
Iepakojumam ir parasta virsma. pack.json paziņo par pēc instalēšanas āķis –
text postinstall: node scripts/postinstall.js — un pārbaudes laikā skripti/postinstall.js ir nekaitīgs: tas instalē Windows komandu starpliku un iziet. Āķis neatrodas tur, kur notiek šī darbība. galvenais un tīne lauki abi norāda uz .reklāma/, direktorijs, kura ievadpunkts neļauj tam būt nejaušam ls izvadi, un kuras saturs ir vienmērīgi mašīnmasināts. Statiskais skeneris saskaitīja ~4,293 kodētas lietderīgās slodzes posmus visā .reklāma/ moduļu komplekts; javascript-obfuscator ir deklarēta izstrādes atkarība, kas atbilst komplektēto failu virknes-masīva-rotācijas formai.
Šis sadalījums ir pirmais signāls, ko ir vērts nosaukt: instalēšanas āķis, ko pārbaudītu recenzents, ir tīrs, savukārt darbības kods atrodas vienu direktoriju tālāk, paslēpts un apmulsināts, un tas tiek sasniegts tikai tad, kad darbojas pakotnes eksportētais ieejas punkts.
Microsoft 365 ierīces koda pastkastes piekļuve
Modulis .ad/x12.js nodrošina ietvara svarīgākās iespējas. Tas nodrošina Microsoft 365 OAuth 2.0 ierīces autorizācijas piešķiršanu:
text POST login[.]microsoftonline[.]com/common/oauth2/v2.0/devicecode Ierīces koda piešķiršana ir likumīga Microsoft plūsma, kas paredzēta ierīcēm ar ievades ierobežojumiem: pakalpojums pieprasa kodu, lietotājs ieraksta šo kodu. microsoft.com/devicelogin`otrā ierīcē un apstiprina, un pieprasošais pakalpojums saņem žetonus. Ja pieprasošais pakalpojums pieder kādam citam, nevis pastkastes īpašniekam, apstiprinājums piešķir šai trešajai personai žetonu. Kad žetons ir iegūts, .ad/x12.js` nolasa pastkastīti tieši, izmantojot 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 The $atlasīt Projekcijas iegūst sūtītāju adreses no iesūtnes un saņēmēju adreses no nosūtītajām ziņām — izejvielu upura korespondentu kartēšanai. Šī ir starpnieka (AiTM) piekļuve ar piekrišanu, nevis ar paroles iegūšanas palīdzību: klasiskajā izpratnē nav akreditācijas datu pikšķerēšanai, ir tikai kods apstiprinājuma saņemšanai.
Masveida pasta un īsziņu sūtīšanas programma ar personifikācijas veidnēm
Ap pastkastes piekļuves punktu atrodas sūtījuma sūtītājs. Pakete nosūta operatora rediģējamus datu failus — sūtītāju sarakstus (sūtītāji.txt, smtps.txt) un veidnes fails (funkcijas.txt) — kuru aizvietotāja adreses tiek lasītas kā personības atveidošanas liešanas lapa: security@apple.com, login-verifikācija, OAuth pakalpojums, norēķini un konta paziņojumu sūtītāji pret yourdomain.com operatora vietā. SMS pusē ir tālrunisebook un vārtejas konfigurāciju. Pastkaste atkārto operatora sniegtos adresātu sarakstus un nosūta, izmantojot konfigurētus SMTP relejus.
Lai saites nosēstos, .ad/xu.js un .ad/xq.js veidot URL, kas izmanto URL parsēšanas neskaidrības un klikšķu izsekošanu. Viltošanas modeļi iegulda uzticama izskata autoritāti pirms @ tātad redzamais prefikss atšķiras no reālā resursdatora:
text https://trusted[.]com@ https://trusted[.]com%40 https://trusted[.]com:80@ https://redirect[.]example[.]com/ https://track[.]example[.]com/click? Sistēma arī piesaista favorītus no lielākajiem patērētājiem un enterprise pasta pakalpojumu sniedzēji — ierasta metode pārliecinošas pakalpojumu sniedzēja zīmola uzvednes vai galvenās lapas atveidošanai.
Mērķa un infrastruktūras izlūkošana
Vairāki moduļi pirms nosūtīšanas apkopo kontekstu. .ad/x0.js atrisina nosaukumus, izmantojot DNS-over-HTTPS (dns[.]google/risinājums), .ad/xa.js vaicājumi WHOIS (api[.]whois[.]vu), Un .ad/x9.js palaiž GitHub koda meklēšanu (api[.]github[.]com/search/code?q=) — modelis, kas atbilst atklātas pasta servera konfigurācijas un SMTP akreditācijas datu atklāšanai, lai barotu releju sarakstu. .ad/xs.js vaicā Wayback Machine CDX indeksu.
Vadība un kontrole
Visā apmulsinātajā komplektā, .ad/x4.js atsaucas uz operatora galapunktu:
text http://api[.]nolimitent[.]xyz:4100 Saimnieks dalās savā neierobežots zīmols ar paša izdevēja nosaukumu un : 4100 ports ir ietvara izsaukuma kanāls. Šis ir visnoturīgākais indikators aizstāvjiem: pakotne, izstrādātāja darbstacija vai būvēšanas aģents sasniedz api[.]nolimitents[.]xyz ir palaidis šo kodu.
Kompromisa rādītāji
Tālāk norādītās norādes ir tās, uz kurām aizstāvis var reaģēt — izmantot bloķēšanas failu ar grep, bloķēt resursdatoru vai meklēt starpniekservera un DNS žurnālos. Microsoft galapunkti parādās tāpēc, ka ietvars tos ļaunprātīgi izmanto; tie paši nav ļaunprātīgi un tos nevajadzētu bloķēt.
| Indikators | Veids | Reģions | Aizstāvja darbība |
|---|---|---|---|
nolimit-agent (visas versijas 1.0.299–1.0.307) | Pakete | npm | Grep bloķēšanas faili / instalēšanas žurnāli |
api[.]nolimitent[.]xyz (:4100) | C2 saimnieks | .ad/x4.js | Bloķēt; meklēt DNS un starpniekservera žurnālos |
.ad/ slēptā mape kā galvenā/bin mērķa | struktūra | package.json | Statiskais signāls reģistra pārskatā |
trusted[.]com@ / %40 / :80@ saišu formas | URL viltojums | .ad/xu.js, .ad/xq.js | Pasta/starpniekservera URL pārbaude |
Ierīces koda piešķiršana + Graph inbox/sentitems lasīt | Uzvedība | .ad/x12.js | M365 pieteikšanās + Graph audita pārskats |
Triāžas laikā uztvertie failu heši:
- pakotne/.ad/x0.js — sha256 e4153bb614ee03ec456e6b5b41926385db6aae0e4f3e771d18e581571ad7ca2a
- pakotne/pakotne.json — sha256 8618064f1f6146b4a8f0459aff9154dca1847e3936aa44f4d4cd37e127075644
Neatkarīgi no šīs pakotnes ir vērts meklēt Microsoft 365 nomnieka signālu: veiksmīgas ierīces koda pierakstīšanās, kam nekavējoties seko Graph nolasījumi pasta mapes/iesūtne un pasta mapes/sūtījumi, it īpaši no sesijas, kuru lietotājs neatpazīst.
Atribūcija un novērotā uzvedība
Tas, kas ir novērojams, paliek atdalīts no tā, kas aiz tā stāv.
Novērojami fakti: pakotne ir publicēta ar identifikatoru nolimit aģents ar nepārbaudītu Gmail adresi un bez saistīta avota krātuves; tā pack.json raksturo to kā “uzlabotu e-pasta sūtītāju” un atzīmē to ar sarkanā komanda atslēgvārds; izpildlaika kods ir koncentrēts slēptā, apmulsinātā vietā .reklāma/ direktoriju, kuras rīku ķēde (javascript-obfuscator) ir deklarēta atkarība; un izsaukuma sākuma resursdators api[.]nolimitents[.]xyz atkārtoti izmanto neierobežots zīmols. Šī ir viena pakotne ar vienu operatora kontrolētu infrastruktūras orientieri, nevis vairāku pakotņu klasteris, un netika konstatēta pārklāšanās ar iepriekš nosauktu kampaņu.
The sarkanā komanda atslēgvārds nemaina klasifikāciju. Likumīgi ofensīvas drošības rīki, kas nodrošina divējāda lietojuma iespējas, to dara caurspīdīgi: lasāms avots, operatora norādīti mērķi un nav slēpta izsaukuma. Šī pakotne apgriež katru no šīm īpašībām — tās darbības kods ir apmulsināts un slēpts, un tā novirza uz fiksētu operatora infrastruktūru, nevis uz lietotāja norādīto mērķi. Spriedumu, kas ir ļaunprātīgs, nosaka uzvedība, nevis etiķete.
Šeit nav norādīts nolūks. Ierakstā ir aprakstīts koda darbības princips — pieprasīt ierīces kodu, nolasīt pastkastīti, izmantojot Graph, sūtīt masveida pastu, izmantojot konfigurētus relejus, raidīt signālu uz fiksētu resursdatoru —, bet motīvs nav norādīts.
Ietekme, tendences un aizstāvju norādījumi
Divi svarīgi instalēšanas laika efekti. Pirmkārt, jebkurš izstrādātājs vai CI aģents, kas instalē nolimit aģents ienes ietvaru šajā resursdatorā un izveido izsaukuma sākumpunktu api[.]nolimitents[.]xyzOtrkārt, ierīces koda iespējas paplašina sasniedzamību ārpus instalēšanas resursdatora: Microsoft 365 pastkaste, kuras īpašniekam tiek lūgts apstiprināt parādīto kodu, tiek nolasīta tieši caur Graph, bez paroles šķērsošanas caur vadu.
Plašāka tendence ir internalizācija. Ierīces koda (AiTM) pikšķerēšana ir pārtapusi no atsevišķas pikšķerēšanas infrastruktūras par paketi publiskā reģistrā — izplatīšanu veic npm instalēt nevis ar e-pasta saiti. Šādā veidā iepakojot komplektu, pikšķerēšanas operatora mitināšanas un saišu piegādes problēma tiek aizstāta ar reģistra piekļuvi, un darbības kods tiek paslēpts aiz tīras instalēšanas āķa un ar dotfile nosaukumu apzīmētas apmulsinātas direktorijas, kas novērš ātru manuālu pārskatīšanu.
Aizstāvjiem:
- Reģistra un atkarību pārskatīšana. Apstrādājiet paku, kuras galvenais/tīne pārveidojas par slēptu (ar punktu prefiksu) direktoriju ar vienmērīgi obfusētu pirmās puses kodu kā augsta riska direktoriju tikai struktūras dēļ, neatkarīgi no tā, vai instalēšanas āķis izskatās tīrs. Minifikācija nav obfuskācija — vārti tiek izmantoti virkņu masīvu dekodētāja parakstā, nevis rindas garumā.
- Microsoft 365 aizsardzības pastiprināšana. Ierobežojiet ierīces koda autorizācijas plūsmu ar nosacīto piekļuvi, ja tā nav operatīvi nepieciešama; ierīces koda piešķiršana ir zināms AiTM vektors, un interaktīviem lietotājiem tā reti ir nepieciešama. Veiciet ierīces koda pieteikšanās auditu, kam seko tūlītēja Graph pastkastes uzskaitīšana.
- Tīkla noteikšana. Bloķēt un brīdināt ieslēgts api[.]nolimitents[.]xyzMeklējiet izejošos DNS un starpniekservera žurnālus visā izstrādātāju un būvnieku infrastruktūrā.
- Pasta ceļa noteikšana. The lietotājs@resursdators URL viltojumu formas (uzticams[.]com@…) ir nosakāmi pasta vārtejā un starpniekservera tīklā; atzīmē saites, kuru autoritātes komponents ir pirms @.
Analīzes laikā pakotne bija pieejama npm. Tā kā slēptais ietvars aptver visu publicēto versiju rindu un pašreizējo jaunākais Tā kā tags (1.0.307) nodrošina ierīces koda iespējas, reģistra noņemšanai jāattiecas uz visām versijām, ne tikai vienu iepriekšējo versiju.




