TP; DR
nolimit-agent nashr etilgan versiyalari bo'lgan npm paketidir — 1.0.299 dan 1.0.307 gacha, 2026-yil 26-iyundan 2026-yil 29-iyungacha to'rt kun davomida chiqarilgan — har birida to'liq fishing va ommaviy pochta tizimi yashirin, to'liq chalkashtirilgan katalog ichida. Har bir versiyada asosiy yozuv quyidagicha hal qilinadi .ad/x0.js, taxminan 4,200 ta javascript-obfuscator string-array bloklarini saqlaydigan dotfile nomli papkadagi ~86 ta fayldan biri; o'rnatish kancasi va yozuv sxemasi barcha qatorlarda bir xil.
Obfuskatsiya ortida a joylashgan Microsoft 365 OAuth qurilma kodi oqimi (login[.]microsoftonline[.]com/common/oauth2/v2.0/devicecode) kod tasdiqlangandan so'ng, jabrlanuvchining Outlook pochta qutisini o'qiydi va Microsoft Graph API orqali elementlarni yuboradi; operator tomonidan taqdim etilgan qabul qiluvchilar ro'yxati tomonidan boshqariladigan ommaviy SMTP va SMS yuborish mexanizmi; brendni taqlid qilish xabarlari shablonlari; ochiq yo'naltirish havolasini yaratish; va HTTPS, WHOIS va GitHub kod qidiruvi orqali DNS orqali razvedka. Operator infratuzilmasiga ish vaqti trafik mayoqlari api[.]nolimitent[.]xyz:4100.
Ta'sirlangan: paketning istalgan versiyasini o'rnatgan har qanday kishi va har qanday Microsoft 365 pochta qutisi egasi u orqali taqdim etilgan qurilma kodini tasdiqlaydi. Eng so'nggi versiyasi, 1.0.307, hozirgi eng so'nggi yorliq bo'lib, xuddi shu qurilma kodi pochta qutisi imkoniyatiga ega — zararli kod bitta oldingi versiya bilan cheklanmagan.
Jiddiyligi: Juda muhimTa'sirlangan ekotizim: npmAvval qidirish kerak bo'lgan yagona ko'rsatkich: xost api[.]nolimitent[.]xyz.
Hujum: u qanday ishlaydi
Yashirin yuk ustidagi benign qobiq
Paket oddiy sirtni taqdim etadi. paket.json e'lon qiladi postinstall ilgak –
text postinstall: node scripts/postinstall.js — va tekshiruv vaqtida skriptlar/postinstall.js zararsiz: u Windows buyruq shimini o'rnatadi va chiqadi. Ilgak xatti-harakatlar yashaydigan joy emas. asosiy va bin ikkala maydon ham ishora qiladi .reklama/, yetakchi nuqta uni tasodifiy narsalardan uzoqlashtiradigan katalog ls chiqishi va uning tarkibi mashina tomonidan bir tekisda chalkashtirib yuborilgan. Statik skaner butun bo'ylab ~4,293 kodlangan foydali yuklanish oralig'ini hisobladi. .reklama/ modul to'plami; javascript-obfuscator - bu e'lon qilingan ishlab chiqishga bog'liqlik bo'lib, u paketlangan fayllarning satr-massiv-aylanish shakliga mos keladi.
Bo'linish nomlashga arziydigan birinchi signaldir: sharhlovchi tekshiradigan o'rnatish kancasi toza, operatsion kod esa bitta katalogdan uzoqda, yashirin va chalkash holda joylashgan bo'lib, faqat paketning eksport qilingan kirish nuqtasi ishga tushganda unga erishiladi.
Microsoft 365 qurilma kodi pochta qutisiga kirish
Modul .ad/x12.js Ushbu tizim freymvorkning eng muhim imkoniyatlariga ega. U Microsoft 365 OAuth 2.0 qurilma avtorizatsiyasini ta'minlaydi:
text POST login[.]microsoftonline[.]com/common/oauth2/v2.0/devicecode Qurilma kodini berish - bu kirish cheklangan qurilmalar uchun mo'ljallangan qonuniy Microsoft oqimi: xizmat kod so'raydi, foydalanuvchi ushbu kodni kiritadi microsoft.com/deviceloginikkinchi qurilmada tasdiqlaydi va soʻrovchi xizmat tokenlarni oladi. Soʻrovchi xizmat pochta qutisi egasidan boshqa birovga tegishli boʻlganda, tasdiqlash uchinchi tomonga tokenni beradi. Token olingandan soʻng, .ad/x12.js` pochta qutisini to'g'ridan-to'g'ri Microsoft Graph orqali o'qiydi:
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 Proyeksiyalar jo'natuvchi manzillarini kiruvchi qutidan va qabul qiluvchi manzillarini jo'natilgan narsalardan oladi — jabrlanuvchining muxbirlarini xaritalash uchun xom ashyo. Bu parolni olish orqali emas, balki rozilik orqali o'rtadagi raqib (AiTM) kirishdir: klassik ma'noda fishing uchun hech qanday ma'lumot yo'q, faqat tasdiqlash uchun kod mavjud.
Taqlid shablonlari bilan ommaviy pochta va SMS mexanizmi
Pochta qutisiga kirish joyi atrofida pochta jo'natuvchisi joylashgan. Paket operator tomonidan tahrirlanadigan ma'lumotlar fayllarini — jo'natuvchilar ro'yxatini (jo'natuvchilar.txt, smtps.txt) va shablon fayli (funktsiyalar.txt) — uning oʻrinbosar manzillari taqlid qilish uchun varaq sifatida oʻqiladi: security@apple.com, login-tekshirish, OAuth-xizmati, billing va hisob bildirishnomalarini jo'natuvchilarga qarshi yourdomain.com Operator almashtirishni kutmoqda. SMS tomonida telefon borebook va shlyuz konfiguratsiyasi. Pochta jo'natuvchisi operator tomonidan taqdim etilgan qabul qiluvchilar ro'yxatini takrorlaydi va sozlangan SMTP relaylari orqali yuboradi.
Havolalarni qurish uchun, .ad/xu.js va .ad/xq.js URL tahlil qilish noaniqligi va bosish kuzatuvidan foydalanadigan URLlarni yarating. Parodiya naqshlari ishonchli ko'rinadigan avtoritetni birovdan oldin joylashtiradi @ shuning uchun ko'rinadigan prefiks haqiqiy xostdan farq qiladi:
text https://trusted[.]com@ https://trusted[.]com%40 https://trusted[.]com:80@ https://redirect[.]example[.]com/ https://track[.]example[.]com/click? Ushbu tizim shuningdek, yirik iste'molchilardan favikonlarni oladi va enterprise pochta provayderlari — ishonchli provayder brendi ostidagi so'rov yoki qo'nish sahifasini ko'rsatishning odatiy usuli.
Nishon va infratuzilmani razvedka qilish
Bir nechta modullar yuborishdan oldin kontekstni to'playdi. .ad/x0.js DNS-over-HTTPS orqali nomlarni hal qiladi (dns[.]google/resolve), .ad/xa.js WHOIS so'rovlari (api[.]whois[.]vu), Va .ad/x9.js GitHub kod qidiruvini ishga tushiradi (api[.]github[.]com/search/code?q=) — o'tkazma ro'yxatini uzatish uchun fosh qilingan pochta serveri konfiguratsiyasi va SMTP hisob ma'lumotlarini aniqlashga mos keladigan naqsh. .ad/xs.js Wayback Machine ning CDX indeksini so'raydi.
Buyruq va nazorat
Chalkash to'plam bo'ylab, .ad/x4.js operatorning so'nggi nuqtasiga havola qiladi:
text http://api[.]nolimitent[.]xyz:4100 Uy egasi buni baham ko'radi cheksiz nashriyotchining o'z nomi bilan brend va : 4100 port - bu freymvorkning qo'ng'iroq-uy kanali. Bu himoyachilar uchun eng bardoshli ko'rsatkich: paket, ishlab chiquvchi ish stantsiyasi yoki yetib boruvchi quruvchi agent. api[.]nolimitent[.]xyz ushbu kodni ishga tushirdi.
Murosaga kelish ko'rsatkichlari
Quyidagi indikatorlar himoyachi harakat qilishi mumkin bo'lgan indikatorlardir — lockfile ni ochish, xostni bloklash yoki proksi va DNS jurnallarini qidirish. Microsoft so'nggi nuqtalari freymvork ularni suiiste'mol qilgani uchun paydo bo'ladi; ularning o'zlari zararli emas va bloklanmasligi kerak.
| Ko'rsatkichlar | Shrift | qayerda | Himoyachining harakati |
|---|---|---|---|
nolimit-agent (barcha versiyalar 1.0.299–1.0.307) | To'plam | npm | Grep lockfiles / o'rnatish jurnallari |
api[.]nolimitent[.]xyz (:4100) | C2 xosti | .ad/x4.js | Bloklash; DNS + proksi jurnallarini qidirish |
.ad/ asosiy/bin nishoni sifatida yashirin katalog | tuzilma | package.json | Registrni ko'rib chiqishda statik signal |
trusted[.]com@ / %40 / :80@ havola shakllari | URL soxtalashtirish | .ad/xu.js, .ad/xq.js | Pochta/proksi URL tekshiruvi |
Qurilma kodi granti + Grafik inbox/sentitems o'qib | Xatti-harakatlar | .ad/x12.js | M365 tizimiga kirish + Grafik auditini ko'rib chiqish |
Triage paytida olingan fayl xeshlari:
- package/.ad/x0.js — sha256 e4153bb614ee03ec456e6b5b41926385db6aae0e4f3e771d18e581571ad7ca2a
- paket/package.json — sha256 8618064f1f6146b4a8f0459aff9154dca1847e3936aa44f4d4cd37e127075644
Ushbu paketdan mustaqil ravishda qidirishga arziydigan Microsoft 365 ijarachisi signali: muvaffaqiyatli qurilma kodi orqali tizimga kirish, so'ngra darhol Graph o'qiydi pochta papkalari/kirish qutisi va pochta papkalari/jo'natilgan elementlar, ayniqsa foydalanuvchi tanimaydigan sessiyadan.
Atribut va kuzatilgan xatti-harakatlar
Kuzatiladigan narsa uning ortida kim turganidan alohida turadi.
Kuzatiladigan faktlar: paket tutqich ostida chop etilgan nolimit-agent tasdiqlanmagan Gmail manzili va bog'langan manba ombori yo'q; uning paket.json uni "rivojlangan elektron pochta jo'natuvchisi" deb ta'riflaydi va uni quyidagi bilan belgilaydi qizil jamoa kalit so'z; ish vaqti kodi yashirin, chalkash joyda jamlangan .reklama/ asboblar zanjiri katalogi (javascript-obfuscator) e'lon qilingan qaramlikdir; va chaqiruv-uy xosti api[.]nolimitent[.]xyz qayta ishlatadi cheksiz brend. Bu bitta operator tomonidan boshqariladigan infratuzilma yo'nalishiga ega bo'lgan bitta paket — ko'p paketli klaster emas va ilgari nomlangan kampaniya bilan hech qanday o'xshashlik aniqlanmagan.
The qizil jamoa kalit so'z tasnifni o'zgartirmaydi. Ikki tomonlama foydalanish imkoniyatini taqdim etadigan qonuniy hujumkor xavfsizlik vositalari buni shaffof tarzda amalga oshiradi: o'qiladigan manba, operator tomonidan taqdim etilgan nishonlar va yashirin qo'ng'iroq uyi yo'q. Ushbu paket ushbu xususiyatlarning har birini o'zgartiradi - uning operatsion kodi chalkashtirilgan va yashiringan va u foydalanuvchi taqdim etgan nishon o'rniga belgilangan operator infratuzilmasiga mayoqlarni yo'naltiradi. Zararli bo'lgan hukmni yorliq emas, balki xatti-harakatlar boshqaradi.
Bu yerda niyat tasdiqlanmagan. Xabarda kodning nima qilishi tasvirlangan — qurilma kodini so'rash, Graph orqali pochta qutisini o'qish, sozlangan relelar orqali ommaviy pochta jo'natish, mayoqni sobit xostga yuborish — va sabab ko'rsatilmagan.
Ta'sir, tendentsiyalar va himoyachilarga ko'rsatma
O'rnatish vaqtiga ikkita ta'sir muhim. Birinchidan, o'rnatadigan har qanday ishlab chiquvchi yoki CI agenti nolimit-agent freymvorkni o'sha xostga olib keladi va qo'ng'iroq uyini o'rnatadi api[.]nolimitent[.]xyzIkkinchidan, qurilma kodi imkoniyati o'rnatuvchi xostdan tashqariga ham chiqadi: egasi taqdim etilgan kodni tasdiqlashga majbur bo'lgan Microsoft 365 pochta qutisi to'g'ridan-to'g'ri Graph orqali o'qiladi, parol hech qachon simdan o'tmaydi.
Kengroq tendentsiya - bu ichkilashtirish tendentsiyasi. Qurilma kodi (AiTM) fishingi mustaqil fishing infratuzilmasidan ommaviy registrdagi paketga o'tdi - tarqatish orqali npm o'rnatish elektron pochta orqali yuborilgan havola orqali emas. To'plamni shu tarzda qadoqlash fishing operatorining xosting va havola yetkazib berish muammosini registrning qo'lidan keladi va operatsion kodni toza o'rnatish kancasi va tezkor qo'lda skimni bekor qiluvchi nuqta fayli nomli obfuskated katalog orqasida yashiradi.
Himoyachilar uchun:
- Registry va qaramlikni ko'rib chiqish. Paketni davolang asosiy/bin o'rnatish kancasi toza ko'rinishidan qat'i nazar, faqat strukturada yuqori xavfli deb hisoblangan bir xil darajada chalkashtirilgan birinchi tomon kodining yashirin (nuqta prefikslangan) katalogiga o'rnatiladi. Minififikatsiya chalkashlik emas - satr uzunligida emas, balki satr-massiv dekoder imzosida darvoza.
- Microsoft 365 qattiqlashuvi. Qurilma kodi avtorizatsiyasi oqimini operatsion jihatdan talab qilinmaydigan hollarda shartli kirish bilan cheklang; qurilma kodi grantlari ma'lum AiTM vektori bo'lib, interaktiv foydalanuvchilar tomonidan kamdan-kam hollarda talab qilinadi. Qurilma kodi orqali kirishlarni tekshirish, so'ngra darhol Grafik pochta qutisini ro'yxatga olish.
- Tarmoqni aniqlash. Bloklash va ogohlantirish yoqilgan api[.]nolimitent[.]xyzDasturchi va qurilish infratuzilmasi bo'ylab chiquvchi DNS va proksi jurnallarini qidiring.
- Pochta yo'lini aniqlash. The foydalanuvchi@host URL-spoof shakllari (ishonchli[.]com@…) pochta shlyuzi va proksi-serverda aniqlanishi mumkin; vakolat komponenti dan oldin joylashgan bayroq havolalari @.
Tahlil paytida paket npm da ishlayotgan edi. Chunki yashirin freymvork butun nashr etilgan versiya qatorini va joriyni qamrab oladi. eng kech (1.0.307) tegi qurilma kodi imkoniyatiga ega, registrni olib tashlash faqat bitta oldingi versiyani emas, balki har bir versiyani qamrab olishi kerak.




