TL, DR
nolimit-agent je npm balíček, jehož publikované verze — 1.0.299 přes 1.0.307, vydávané během čtyř dnů od 26. 06. 2026 do 29. 06. 2026 – každý nese kompletní rámec pro phishing a hromadnou poštu uvnitř skrytého, plně zahaleného adresáře. V každé verzi se hlavní položka definuje jako .ad/x0.js, jeden z ~86 souborů ve složce s názvem dotfile, která obsahuje zhruba 4 200 objektů blob typu javascript-obfuscator typu string-array; rozvržení instalačního hooku a položky je identické napříč celým řádkem.
Za zamlžováním se skrývá Tok kódu zařízení Microsoft 365 OAuth (login[.]microsoftonline[.]com/common/oauth2/v2.0/devicecode), která po schválení kódu čte doručenou poštu a odeslané položky v Outlooku oběti prostřednictvím rozhraní Microsoft Graph API; modul pro hromadné odesílání SMTP a SMS poháněný seznamy příjemců dodanými operátorem; šablony zpráv s vydáváním se za značku; konstrukci odkazů s otevřením a přesměrováním; a průzkum pomocí vyhledávání kódu DNS přes HTTPS, WHOIS a GitHub. Majáky provozu za běhu do infrastruktury operátora na adrese api[.]nolimitent[.]xyz:4100.
Dotčeno: kdokoli, kdo nainstaluje jakoukoli verzi balíčku, a kdokoli Poštovní schránka Microsoftu 365 jehož vlastník schválí kód zařízení prezentovaný prostřednictvím něj. Nejnovější verze, 1.0.307, je aktuálně nejnovější tag a nese stejnou schopnost e-mailové schránky s kódem zařízení – škodlivý kód není omezen na jednu starší verzi.
Vážnost: kritickýDotčený ekosystém: NpmJeden indikátor, který je třeba hledat jako první: hostitel api[.]nolimitent[.]xyz.
Útok: jak to funguje
Neškodná skořápka nad skrytým užitečným zatížením
Balení má běžný povrch. balíček.json prohlašuje po instalaci háček –
text postinstall: node scripts/postinstall.js — a při inspekci skripty/postinstall.js je neškodný: nainstaluje se shim příkazu systému Windows a ukončí se. Háček není tam, kde se dané chování nachází. hlavní a popelnice obě pole směřují do .inzerát/, adresář, jehož úvodní tečka ho chrání před neformálním ls výstup a jehož obsah je jednotně strojově obfuskován. Statický skener napočítal ~4 293 rozsahů kódovaného užitečného obsahu napříč .inzerát/ sada modulů; javascript-obfuscator je deklarovaná vývojová závislost, která odpovídá tvaru rotace řetězcového pole v přiložených souborech.
Toto rozdělení je prvním signálem, který stojí za to jmenovat: instalační hook, který by recenzent důkladně prozkoumal, je čistý, zatímco operační kód se nachází o jeden adresář dál, skrytý a zahalený, a je dosažitelný pouze při spuštění exportovaného vstupního bodu balíčku.
Přístup k poštovní schránce Microsoft 365 s kódem zařízení
Modul .ad/x12.js nese nejdůležitější funkci frameworku. Řídí udělení autorizace zařízení Microsoft 365 OAuth 2.0:
text POST login[.]microsoftonline[.]com/common/oauth2/v2.0/devicecode Udělení kódu zařízení je legitimní tok společnosti Microsoft určený pro zařízení s omezeným vstupem: služba si vyžádá kód, uživatel tento kód zadá do microsoft.com/devicelogin` na druhém zařízení a schválí a žádající služba obdrží tokeny. Pokud žádající služba patří někomu jinému než vlastníkovi poštovní schránky, schválení předá této třetí straně token. Jakmile je token získán, Soubor .ad/x12.js` čte poštovní schránku přímo prostřednictvím Microsoft Graphu:
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 Jedno $select Projekce získávají adresy odesílatelů z doručené pošty a adresy příjemců z odeslaných položek – což je surový materiál pro mapování korespondentů oběti. Jedná se o přístup typu „protivník uprostřed“ (AiTM) na základě souhlasu, nikoli na základě zachycení hesla: pro phishing v klasickém smyslu neexistují žádné přihlašovací údaje, pouze kód pro schválení.
Modul pro hromadnou poštu a SMS s šablonami pro zosobnění
Kolem přístupu k poštovní schránce se nachází odesílatel. Balíček odesílá datové soubory, které může operátor upravovat – seznamy odesílatelů (senders.txt, smtps.txt) a soubor šablony (functions.txt) — jejichž zástupné adresy se čtou jako arch pro vydávání se za jinou osobu: security@apple.com, login-ověřování, služba OAuth, fakturace a odesílatelé oznámení o účtu proti yourdomain.com zástupce operátora nahrazuje. SMS strana nese telefonebook a konfigurace brány. Poštovní modul iteruje seznamy příjemců dodané operátorem a odesílá prostřednictvím nakonfigurovaných relé SMTP.
Aby se zobrazovaly odkazy, .ad/xu.js a .ad/xq.js vytvářejí URL adresy, které zneužívají nejednoznačnost při analýze URL a sledování prokliků. Padělané vzory vkládají důvěryhodnou autoritu před @ takže viditelná předpona se liší od skutečného hostitele:
text https://trusted[.]com@ https://trusted[.]com%40 https://trusted[.]com:80@ https://redirect[.]example[.]com/ https://track[.]example[.]com/click? Rámec také získává favicony od hlavních spotřebitelů a enterprise poskytovatelé e-mailů – běžná technika pro vykreslení přesvědčivé výzvy nebo vstupní stránky se značkou poskytovatele.
Průzkum cílů a infrastruktury
Několik modulů shromažďuje kontext před odesláním. .ad/x0.js rozpoznává jména přes DNS přes HTTPS (dns[.]google/resolve), .ad/xa.js dotazy WHOIS (api[.]whois[.]vu), A .ad/x9.js spustí vyhledávání kódu na GitHubu (api[.]github[.]com/search/code?q=) – vzorec konzistentní s odhalováním konfigurace odhaleného poštovního serveru a přihlašovacích údajů SMTP pro odesílání do seznamu relay. .ad/xs.js dotazuje se na index CDX Wayback Machine.
Velení a řízení
Přes zatemněnou scénu, .ad/x4.js odkazuje na koncový bod operátoru:
text http://api[.]nolimitent[.]xyz:4100 Hostitel sdílí své neomezený značka s vlastním názvem vydavatele a : 4100 port je kanál frameworku pro volání domů. Pro obránce je to nejodolnější indikátor: balíček, vývojářská pracovní stanice nebo agent sestavení se k němu přiblíží. api[.]nolimitent[.]xyz spustil tento kód.
Ukazatele kompromisu
Níže uvedené indikátory jsou ty, na které může obránce reagovat – grepnout lockfile, zablokovat hostitele nebo prohledat protokoly proxy a DNS. Koncové body Microsoftu se zobrazují, protože je framework zneužívá; samy o sobě nejsou škodlivé a neměly by být blokovány.
| Indikátor | Typ | Kde | Akce obránce |
|---|---|---|---|
nolimit-agent (všechny verze 1.0.299–1.0.307) | Balíček | Npm | Grep lockfiles / instalační protokoly |
api[.]nolimitent[.]xyz (:4100) | Hostitel C2 | .ad/x4.js | Blokovat; prohledávat protokoly DNS a proxy |
.ad/ skrytý adresář jako hlavní/bin cíl | Struktura | package.json | Statický signál v revizi registru |
trusted[.]com@ / %40 / :80@ odkazy na formuláře | Parodie URL adresy | .ad/xu.js, .ad/xq.js | Kontrola URL adres pošty/proxy |
Udělení kódu zařízení + graf inbox/sentitems číst | Chování | .ad/x12.js | Přihlášení do M365 + kontrola auditu Graph |
Haše souborů zachycené při triáži:
- balíček/.ad/x0.js — sha256 e4153bb614ee03ec456e6b5b41926385db6aae0e4f3e771d18e581571ad7ca2a
- balíček/balíček.json — sha256 8618064f1f6146b4a8f0459aff9154dca1847e3936aa44f4d4cd37e127075644
Signál klienta Microsoft 365, který stojí za to sledovat nezávisle na tomto balíčku: úspěšné přihlášení pomocí kódu zařízení, po kterém následují okamžitá přečtení grafu složky/doručená pošta a Složky/odeslané položky pošty, zejména z relace, kterou uživatel nepoznává.
Atribuce a pozorované chování
To, co je pozorovatelné, zůstává oddělené od toho, kdo za tím stojí.
Pozorovatelná fakta: balíček je publikován pod účtem nolimit-agent s neověřenou adresou Gmail a bez odkazovaného úložiště zdrojového kódu; balíček.json popisuje jej jako „pokročilý odesílatel e-mailů“ a označuje ho štítkem červený tým klíčové slovo; běhový kód je soustředěn ve skrytém, zahaleném .inzerát/ adresář, jehož nástrojová řada (javascript-obfuscator) je deklarovaná závislost; a hostitel call-home api[.]nolimitent[.]xyz znovu používá neomezený značka. Jedná se o jeden balíček s jedním orientačním bodem infrastruktury ovládaným operátorem – nikoli o cluster s více balíčky a nebyl zjištěn žádný překryv s dříve pojmenovanou kampaní.
Jedno červený tým Klíčové slovo nemění klasifikaci. Legitimní nástroje pro útočnou bezpečnost, které nabízejí dvojí využití, tak činí transparentně: čitelný zdroj, cíle dodané operátorem a žádné skryté útočiště. Tento balíček invertuje každou z těchto vlastností – jeho operační kód je zmatený a skrytý a odkazuje na pevnou infrastrukturu operátora, nikoli na cíl dodaný uživatelem. Verdikt, který je škodlivý, určuje chování, nikoli označení.
Záměr zde není uveden. Příspěvek popisuje, co kód dělá – vyžádá si kód zařízení, načte poštovní schránku přes Graph, odešle hromadnou poštu přes nakonfigurované relé, vyšle maják na pevného hostitele – a motiv neuvádí.
Dopad, trendy a rady pro obránce
Důležité jsou dva faktory ovlivňující dobu instalace. Zaprvé, každý vývojář nebo agent CI, který instaluje nolimit-agent přenese framework na daného hostitele a naváže spojení s api[.]nolimitent[.]xyzZa druhé, funkce kódu zařízení rozšiřuje dosah i za hranice instalačního hostitele: poštovní schránka Microsoft 365, jejíž vlastník je vyzván ke schválení prezentovaného kódu, je přečtena přímo přes Graph, aniž by se přes něj kdykoli přeneslo heslo.
Širším trendem je internalizace. Phishing s využitím kódu zařízení (AiTM) se přesunul ze samostatné phishingové infrastruktury do balíčku ve veřejném registru – distribuce probíhá… npm install spíše než prostřednictvím odkazu zaslaného e-mailem. Takto zabalená sada vyměňuje problém phishingového operátora s hostingem a doručováním odkazů za dosah registru a skrývá operační kód za hookem pro čistou instalaci a zakrytým adresářem s názvem tečka, který brání rychlému ručnímu procházení.
Pro obránce:
- Kontrola registru a závislostí. Zacházejte s balíkem, jehož hlavní/popelnice se převede do skrytého adresáře (s prefixem tečky) s uniformně obfuskovaným kódem první strany jako vysoce rizikový pouze na základě struktury, nezávisle na tom, zda instalační hook vypadá čistě. Minifikace není obfuskace – brána se vztahuje na signaturu dekodéru řetězcového pole, nikoli na délku řádku.
- Zpevnění Microsoftu 365. Omezte tok autorizace kódu zařízení pomocí podmíněného přístupu tam, kde to není provozně nutné; udělení kódu zařízení je známým vektorem AiTM a interaktivní uživatelé jej zřídka potřebují. Audit přihlášení pomocí kódu zařízení následovaný okamžitým výčtem poštovních schránek Graph.
- Detekce sítě. Blokování a upozornění zapnuto api[.]nolimitent[.]xyzVyhledejte protokoly odchozích DNS a proxy v rámci infrastruktury pro vývojáře a sestavení.
- Detekce poštovní cesty. Jedno uživatel@hostitel Formy pro falešné URL adresy (důvěryhodný[.]com@…) jsou detekovatelné na poštovní bráně a proxy; označte odkazy, jejichž komponenta autority předchází @.
Balíček byl v době analýzy aktivní na npm. Protože skrytý framework zahrnuje celou publikovanou verzi a aktuální poslední Pokud značka (1.0.307) obsahuje funkci kódu zařízení, mělo by odstranění z registru zahrnovat všechny verze, nikoli pouze jednu starší verzi.




