TL; DR
nolimit-agent nyaéta pakét npm anu vérsi anu diterbitkeun — 1.0.299 ngaliwatan 1.0.307, dirilis salami opat dinten ti 2026-06-26 dugi ka 2026-06-29 — masing-masing mawa kerangka phishing sareng email massal anu lengkep di jero diréktori anu disumputkeun sareng disamarkan sapinuhna. Dina unggal vérsi, éntri utama ditetepkeun janten .ad/x0.js, salah sahiji tina ~86 file dina folder anu dingaranan dotfile anu ngandung sakitar 4,200 javascript-obfuscator string-array blobs; tata letak install hook sareng éntri sami di sakuliah baris.
Di tukangeun kabingungan aya hiji Aliran kode alat Microsoft 365 OAuth (login[.]microsoftonline[.]com/common/oauth2/v2.0/devicecode) yén, sakali kode disatujuan, bakal maca kotak surat Outlook korban sareng ngirim barang ngalangkungan Microsoft Graph API; mesin pangirim SMTP sareng SMS massal anu didorong ku daptar panampi anu disayogikeun ku operator; témplat pesen impersonasi merek; konstruksi tautan alihan-buka; sareng pangintipan ngalangkungan DNS-over-HTTPS, WHOIS, sareng pamilarian kode GitHub. Suar lalu lintas runtime ka infrastruktur operator di api[.]nolimitent[.]xyz:4100.
Anu kapangaruhan: saha waé anu masang vérsi pakét naon waé, sareng naon waé Kotak surat Microsoft 365 anu nu bogana satuju kana kode alat anu dipidangkeun ngaliwatan éta. Versi panganyarna, 1.0.307, nyaéta tag panganyarna ayeuna sareng ngagaduhan kamampuan kotak surat kode alat anu sami — kode jahat henteu diwatesan ku hiji vérsi anu langkung lami.
Severity: gentingÉkosistem anu kapangaruhan: npmHiji indikator anu kedah dipilarian heula: hostna api[.]nolimitent[.]xyz.
Serangan éta: kumaha jalanna
Cangkang anu jinak di luhur muatan anu disumputkeun
Bungkusan éta nampilkeun permukaan biasa. rangkep.json nyatakeun hiji saatos dipasang pancing –
text postinstall: node scripts/postinstall.js — sareng dina pamariksaan skrip/postinstall.js teu bahaya: éta masang paréntah Windows shim teras kaluar. Hookna sanés tempat paripolahna cicing. utama jeung gentong widang duanana nunjuk kana .iklan/, diréktori anu titik utama na ngajagana tina hal anu teu biasa ls kaluaran, sareng eusina dikaburkan sacara seragam ku mesin. Pamindai statis ngitung ~4,293 muatan anu dikodekeun ngawengku sakuliah .iklan/ sét modul; javascript-obfuscator nyaéta katergantungan pamekaran anu dideklarasikeun, anu cocog sareng bentuk rotasi string-array tina file anu dibundel.
Pamisahan éta mangrupikeun sinyal munggaran anu pantes dingaranan: hook pamasangan anu bakal dipariksa ku reviewer bersih, sedengkeun kode operasionalna aya di hiji diréktori jauhna, disumputkeun sareng dikaburkan, ngan ukur kahontal nalika titik éntri ékspor pakét dijalankeun.
Aksés kotak surat kode alat Microsoft 365
Modulna .ad/x12.js ngabawa kamampuan kerangka anu paling penting. Éta ngadorong hibah otorisasina alat Microsoft 365 OAuth 2.0:
text POST login[.]microsoftonline[.]com/common/oauth2/v2.0/devicecode Hibah kodeu alat mangrupikeun aliran Microsoft anu sah anu dirancang pikeun alat anu diwatesan input: layanan nyuhunkeun kode, pangguna ngetikkeun kode éta kana microsoft.com/alatlogin` dina alat kadua sareng satuju, sareng layanan anu nyuhunkeun nampi token. Nalika layanan anu nyuhunkeun milik batur salian ti nu boga kotak surat, persetujuan masihan token ka pihak katilu éta. Sakali token didapet, .ad/x12.js` maca kotak surat langsung ngaliwatan 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 nu $pilih proyéksi narik alamat pangirim tina kotak surat sareng alamat panampi tina barang anu dikirim — bahan baku pikeun memetakan koresponden korban. Ieu aksés musuh-di-tengah (AiTM) ku idin tinimbang ku cara nangkep kecap akses: teu aya kredensial pikeun phish dina harti klasik, ngan ukur kode pikeun disatujuan.
Mesin surat sareng SMS massal kalayan témplat impersonasi
Di sakuriling aksés kotak surat aya hiji mailer. Pakét éta ngirimkeun file data anu tiasa diédit ku operator — daptar pangirim (senders.txt, smtps.txt) sareng file témplat (fungsi.txt) — anu alamat tempatna dibaca salaku lambar casting pikeun nirukeun: security@apple.com, login-verifikasi, layanan OAuth, tagihan, sareng pangirim bewara akun ngalawan a yourdomain.com operator ngagantikeun. Sisi SMS mawa teleponebook sareng konfigurasi gateway. Mailer ngulang daptar panampi anu disayogikeun ku operator sareng ngirim ngalangkungan relay SMTP anu dikonfigurasi.
Pikeun ngaitkeun tautan, .ad/xu.js jeung .ad/xq.js ngawangun URL anu ngamangpaatkeun ambiguitas parsing URL sareng pelacakan klik. Pola spoof ngalebetkeun otoritas anu katingalina dipercaya sateuacan @ janten awalan anu katingali béda ti host anu saleresna:
text https://trusted[.]com@ https://trusted[.]com%40 https://trusted[.]com:80@ https://redirect[.]example[.]com/ https://track[.]example[.]com/click? Kerangka ieu ogé ngarebut favicon ti konsumen utama sareng enterprise panyadia surélék — téknik rutin pikeun ngahasilkeun prompt atanapi kaca badarat mérek panyadia anu meyakinkan.
Pangintaian target sareng infrastruktur
Sababaraha modul ngumpulkeun kontéks sateuacan dikirim. .ad/x0.js ngaréngsékeun ngaran ngaliwatan DNS-over-HTTPS (dns[.]google/resolve), .ad/xa.js patarosan WHOIS (api[.]whois[.]vu), Sarta .ad/x9.js ngajalankeun pamilarian kode GitHub (api[.]github[.]com/search/code?q=) — pola anu saluyu sareng mendakan konfigurasi server surélék sareng kredensial SMTP anu kakeunaan pikeun ngeusian daptar relay. .ad/xs.js nalungtik indéks CDX Wayback Machine.
Komando sareng kontrol
Di sakuliah set anu dikaburkan, .ad/x4.js ngarujuk kana titik tungtung operator:
text http://api[.]nolimitent[.]xyz:4100 Nu boga imah ngabagikeun teu aya watesna merek kalawan ngaran penerbit sorangan, sareng : 4100 port nyaéta saluran call-home framework. Ieu mangrupikeun indikator anu paling awét pikeun para pembela: pakét, workstation pamekar, atanapi agén build anu ngahontal api[.]nolimitent[.]xyz parantos ngajalankeun kode ieu.
Indikator kompromi
Indikator di handap ieu nyaéta anu tiasa dianggo ku pembela — nyandak file konci, meungpeuk host, atanapi milarian log proxy sareng DNS. Titik tungtung Microsoft muncul kusabab kerangka kerja ngalanggarna; éta sorangan sanés jahat sareng henteu kedah diblokir.
| indikator | ngetik | di mana | Aksi pembela |
|---|---|---|---|
nolimit-agent (sadaya vérsi 1.0.299–1.0.307) | paket | npm | Grep lockfiles / log pamasangan |
api[.]nolimitent[.]xyz (:4100) | Host C2 | .ad/x4.js | Blokir; milarian DNS + log proxy |
.ad/ dir disumputkeun salaku target utama/bin | struktur | package.json | Sinyal statik dina ulasan pendaptaran |
trusted[.]com@ / %40 / :80@ formulir tautan | Palsu URL | .ad/xu.js, .ad/xq.js | Pamariksaan URL surat/proksi |
Hibah kodeu alat + Grafik inbox/sentitems maca | tingkah laku | .ad/x12.js | Asup M365 + Tinjauan audit grafik |
Hash file anu dicandak dina triage:
- pakét/.ad/x0.js — sha256 e4153bb614ee03ec456e6b5b41926385db6aae0e4f3e771d18e581571ad7ca2a
- pakét/pakét.json — sha256 8618064f1f6146b4a8f0459aff9154dca1847e3936aa44f4d4cd37e127075644
Sinyal panyewa Microsoft 365 anu pantes dipilarian sacara mandiri tina pakét ieu: asup-kode alat anu suksés dituturkeun langsung ku bacaan Grafik tina Folder/kotak surat jeung Folder/item surat, utamana ti sési anu teu dikenal ku pangguna.
Atribusi & paripolah anu dititénan
Naon anu tiasa dititénan tetep misah ti saha anu aya di tukangeunana.
Fakta anu tiasa dititénan: pakét diterbitkeun dina handapeun gagang agén-nolimit kalawan alamat Gmail anu teu acan diverifikasi sareng teu aya gudang sumber anu ditautan; éta rangkep.json ngagambarkeun éta salaku "pangirim email canggih" sareng nandaan éta ku tim beureum kecap konci; kode runtime dipusatkeun dina tempat anu disumputkeun sareng dikaburkan .iklan/ diréktori anu toolchain-na (javascript-obfuscator) nyaéta dependensi anu dideklarasikeun; sareng host call-home api[.]nolimitent[.]xyz ngagunakeun deui teu aya watesna mérek. Ieu mangrupikeun pakét tunggal kalayan hiji landmark infrastruktur anu dikontrol ku operator — sanés klaster multi-pakét, sareng teu aya tumpang tindih sareng kampanye anu dingaranan sateuacanna anu diidentifikasi.
nu tim beureum kecap konci henteu ngarobih klasifikasi. Pakakas kaamanan ofensif anu sah anu ngirimkeun kamampuan panggunaan ganda ngalakukeunana sacara transparan: sumber anu tiasa dibaca, target anu disayogikeun ku operator, sareng teu aya telepon-imah anu disumputkeun. Paket ieu malikkeun unggal sipat éta — kode operasionalna dikaburkan sareng disumputkeun, sareng éta nunjukkeun ka infrastruktur operator anu tetep tinimbang target anu disayogikeun ku pangguna. Paripolahna, sanés labélna, anu ngatur putusan, anu jahat.
Maksadna teu dijelaskeun di dieu. Tulisan ieu ngajelaskeun naon anu dilakukeun ku kode éta — nyuhunkeun kode alat, maca kotak surat ngalangkungan Graph, ngirim surat massal ngalangkungan relay anu dikonfigurasi, beacon ka host anu tetep — sareng henteu nyatakeun motifna.
Dampak, tren & pituduh bek
Dua pangaruh waktos pamasangan penting. Mimitina, pamekar atanapi agén CI anu masang agén-nolimit mawa kerangka kana host éta sareng ngadegkeun call-home ka api[.]nolimitent[.]xyzKadua, kamampuan kodeu alat ngalegaan jangkauan saluareun host pamasangan: kotak surat Microsoft 365 anu pamilikna dibujuk pikeun satuju kana kode anu dipidangkeun dibaca langsung ngalangkungan Graph, tanpa kecap akses anu ngalangkungan kabel.
Tren anu langkung lega nyaéta anu diinternalisasi. Phishing kode alat (AiTM) parantos pindah tina infrastruktur phishing mandiri kana pakét dina pendaptaran umum — distribusi ku npm install tinimbang ku tautan anu dikirim via email. Ngepak kit sapertos kieu ngaganti masalah hosting sareng pangiriman tautan operator phishing pikeun jangkauan pendaptaran, sareng nyumputkeun kode operasional di tukangeun hook pamasangan anu bersih sareng diréktori anu dikaburkan anu dingaranan dotfile anu ngéléhkeun skim manual gancang.
Pikeun para pembela:
- Tinjauan pendaptaran sareng katergantungan. Perlakukeun hiji pakét anu utama/gentong ngaréngsékeun kana diréktori anu disumputkeun (diawalan titik) tina kode pihak kahiji anu dikaburkan sacara seragam salaku résiko tinggi dina strukturna nyalira, henteu paduli naha hook pamasangan katingalina bersih atanapi henteu. Minifikasi sanés kabingungan — gerbang dina tanda tangan dekoder string-array, sanés dina panjang baris.
- Pangerasan Microsoft 365. Watesan aliran otorisasina kodeu alat nganggo Aksés Bersyarat upami henteu diperyogikeun sacara operasional; hibah kodeu alat mangrupikeun véktor AiTM anu dipikanyaho sareng jarang diperyogikeun ku pangguna interaktif. Audit pikeun asupna kodeu alat dituturkeun ku énumérasi kotak surat Graph langsung.
- Deteksi jaringan. Blokir sareng waspada hurung api[.]nolimitent[.]xyzPilari log DNS sareng proxy anu kaluar pikeun éta di sakumna infrastruktur pamekar sareng wangunan.
- Deteksi jalur surat. nu pangguna@host Bentuk parodi URL (dipercaya[.]com@…) tiasa dideteksi di gerbang surat sareng proxy; tautan bendera anu komponén otoritasna sateuacan @.
Paketna masih aya dina npm nalika analisis. Kusabab kerangka anu disumputkeun ngawengku sakabéh garis vérsi anu diterbitkeun sareng anu ayeuna pangtungtungna tag (1.0.307) mibanda kamampuh kodeu alat, takedown pendaptaran kedah ngawengku unggal vérsi, teu ngan ukur hiji vérsi anu sateuacanna.




