DeviceDoor npm багцыг Microsoft 365 төхөөрөмжийн кодын фишинг хүрээгээр тээвэрлэж байна

DeviceDoor: Microsoft 365 төхөөрөмжийн кодын фишинг болон бөөнөөр илгээх имэйлийн хүрээг илгээдэг олон нийтийн npm багц

TL, DR

nolimit-agent нь нийтлэгдсэн хувилбарууд нь npm багц юм — 1.0.299 1.0.307-ээр дамждаг, 2026-06-26-аас 2026-06-29 хүртэл дөрвөн өдрийн турш гарсан — тус бүр нь бүрэн фишинг болон бөөнөөр илгээх имэйлийн хүрээ далд, бүрэн бүрхэг сан дотор. Хувилбар бүрт гол оруулга нь дараах байдлаар шийдэгддэг .ad/x0.js, ойролцоогоор 4,200 javascript-obfuscator string-array blobs агуулсан dotfile нэртэй хавтас дахь ~86 файлын нэг; install hook болон оролтын байршил нь мөр бүрт ижил байна.

Бүдгэрэлтийн ард нэг зүйл байдаг Microsoft 365 OAuth төхөөрөмжийн кодын урсгал (login[.]microsoftonline[.]com/common/oauth2/v2.0/devicecode) кодыг баталгаажуулсны дараа хохирогчийн Outlook ирсэн имэйлийг уншиж, Microsoft Graph API-аар дамжуулан зүйлс илгээх; операторын нийлүүлсэн хүлээн авагчийн жагсаалтаар удирддаг их хэмжээний SMTP болон SMS илгээх хөдөлгүүр; брэндийн дуураймал мессежийн загварууд; нээлттэй чиглүүлэх холбоос бүтээх; мөн HTTPS, WHOIS болон GitHub код хайлтаар дамжуулан тагнуул хийх. Ажиллах үеийн замын хөдөлгөөний дохиог операторын дэд бүтэц рүү илгээх api[.]nolimitent[.]xyz:4100.

Нөлөөлөлд өртсөн: багцын аль ч хувилбарыг суулгасан хүн бүр болон аль ч Microsoft 365 шуудангийн хайрцаг эзэмшигч нь түүгээр дамжуулан үзүүлсэн төхөөрөмжийн кодыг баталдаг. Хамгийн сүүлийн хувилбар, 1.0.307, нь одоогийн хамгийн сүүлийн үеийн шошго бөгөөд төхөөрөмжийн кодын шуудангийн хайрцгийн ижил чадварыг агуулдаг - хортой код нь зөвхөн нэг өмнөх хувилбараар хязгаарлагдахгүй.

Хүнд байдал: шүүмжлэлтэйНөлөөлөлд өртсөн экосистем: npmЭхлээд хайх нэг үзүүлэлт: хост api[.]nolimitent[.]xyz.

Довтолгоо: энэ нь хэрхэн ажилладаг вэ

Нууцлагдсан ачааны дээгүүрх хоргүй бүрхүүл

Багц нь ердийн гадаргууг харуулдаг. багц.json зарлаж байна суулгасны дараах дэгээ – 

text postinstall: node scripts/postinstall.js 

- мөн үзлэгийн үеэр скриптүүд/postinstall.js хор хөнөөлгүй: энэ нь Windows командын шимийг суулгаад гарна. Дэгээ нь зан төлөвийн байршил биш юм. үндсэн болон байна талбарууд хоёулаа зааж байна .ad/, тэргүүлэх цэг нь энгийн зүйлээс хол байлгадаг лавлах ls гаралт, мөн түүний агуулгыг машин жигд будлиулсан. Статик сканнер нь нийтдээ ~4,293 кодлогдсон ачааллын хүрээг тоолсон. .ad/ модулийн багц; javascript-obfuscator нь багцалсан файлуудын мөр-массив-эргэлтийн хэлбэртэй тохирч буй хөгжүүлэлтийн хамаарлын зарласан хэлбэр юм.

Хуваалт нь нэрлэх ёстой эхний дохио юм: хянагчийн шалгах суулгах дэгээ цэвэрхэн байхад үйлдлийн код нь нэг лавлахын цаана нуугдаж, бүдгэрсэн бөгөөд зөвхөн багцын экспортлогдсон оролтын цэг ажиллаж байх үед л хүрдэг.

Microsoft 365 төхөөрөмжийн кодын шуудангийн хайрцагт хандах

Модуль .ad/x12.js Энэ нь уг фрэймворкийн хамгийн чухал чадварыг агуулдаг. Энэ нь Microsoft 365 OAuth 2.0 төхөөрөмжийн эрх олгох боломжийг олгодог:

text POST login[.]microsoftonline[.]com/common/oauth2/v2.0/devicecode 

Төхөөрөмжийн код олгох нь оролт хязгаарлагдмал төхөөрөмжүүдэд зориулагдсан Microsoft-ын хууль ёсны урсгал юм: үйлчилгээ нь код хүсэхэд хэрэглэгч уг кодыг оруулна. microsoft.com/devicelogin` хоёр дахь төхөөрөмж дээр баталгаажуулж, хүсэлт гаргасан үйлчилгээ нь жетон хүлээн авна. Хүсэлт гаргасан үйлчилгээ нь шуудангийн хайрцаг эзэмшигчээс өөр хүнд хамаарах тохиолдолд зөвшөөрөл нь тухайн гуравдагч этгээдэд жетон олгоно. Токеныг авсны дараа, .ad/x12.js` нь 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 $сонголт Төсөөлөл нь илгээгчийн хаягийг ирсэн имэйлээс, хүлээн авагчийн хаягийг илгээсэн зүйлсээс татаж авдаг бөгөөд энэ нь хохирогчийн захидал харилцааг зураглах түүхий эд юм. Энэ нь нууц үгээр бус харин зөвшөөрөлтэйгээр дайсан дундуур (AiTM) нэвтрэх явдал юм: сонгодог утгаараа фишинг хийх эрх мэдэл байхгүй, зөвхөн батлагдах код байдаг.

Дуураймал загвар бүхий бөөнөөр нь шуудан болон SMS хөдөлгүүр

Шуудангийн хайрцгийн хандалтын эргэн тойронд шуудан илгээгч байрладаг. Багц нь операторын засварлах боломжтой өгөгдлийн файлуудыг илгээдэг - илгээгчийн жагсаалт (илгээгч.txt, smtps.txt) болон загвар файл (функцууд.txt) — түүний орлуулагч хаягийг дуурайлган бичих хуудас гэж уншина уу: security@apple.com, login-баталгаажуулах, OAuth үйлчилгээ, төлбөр тооцоо болон дансны мэдэгдэл илгээгчдэд эсрэг таныdomain.com Оператор зогсолтоор солино. SMS тал нь утастайebook болон гарцын тохиргоо. Шуудангийн илгээгч нь операторын өгсөн хүлээн авагчийн жагсаалтыг давтаж, тохируулсан SMTP релеээр дамжуулан илгээдэг.

Холбоосуудыг газардуулахын тулд, .ad/xu.js болон .ad/xq.js URL задлан шинжлэх хоёрдмол утга болон товшилтын хяналтыг ашигладаг URL-үүдийг бүтээдэг. Хуурамч загварууд нь итгэмжлэгдсэн харагдах эрх бүхий этгээдийг өмнө нь суулгадаг @ тиймээс харагдах угтвар нь жинхэнэ хостоос өөр байна:

text https://trusted[.]com@      https://trusted[.]com%40      https://trusted[.]com:80@ https://redirect[.]example[.]com/      https://track[.]example[.]com/click? 

Энэ хүрээ нь мөн томоохон хэрэглэгчдээс фавиконуудыг авдаг. enterprise мэйл үйлчилгээ үзүүлэгчид — үйлчилгээ үзүүлэгчийн брэндийн сурталчилгаа эсвэл буух хуудсыг итгүүлэх ердийн арга.

Бай болон дэд бүтцийн тагнуул

Хэд хэдэн модулиуд илгээхээсээ өмнө контекст цуглуулдаг. .ad/x0.js DNS-over-HTTPS дээрх нэрсийг шийдвэрлэдэг (dns[.]google/resolve), .ad/xa.js WHOIS-ийн асуулга (api[.]whois[.]vu), Болон .ad/x9.js GitHub кодын хайлтыг ажиллуулдаг (api[.]github[.]com/search/code?q=) — релей жагсаалтыг тэжээхийн тулд ил гарсан шуудангийн серверийн тохиргоо болон SMTP итгэмжлэлүүдийг илрүүлэхтэй нийцсэн загвар. .ad/xs.js Wayback Machine-ийн CDX индексийг асуудаг.

Тушаал ба хяналт

Бүдэг бадаг багцын дундуур, .ad/x4.js операторын төгсгөлийн цэгийг заана:

text http://api[.]nolimitent[.]xyz:4100 

Хөтлөгч үүнийг хуваалцдаг хязгааргүй хэвлэн нийтлэгчийн өөрийн нэршилтэй брэнд, мөн : 4100 порт нь фрэймворкийн дуудлагын гэрийн суваг юм. Энэ нь хамгаалагчдын хувьд хамгийн бат бөх үзүүлэлт юм: багц, хөгжүүлэгчийн ажлын станц эсвэл бүтээх агент api[.]nolimitent[.]xyz энэ кодыг ажиллуулсан.

Буулт хийх үзүүлэлтүүд

Доорх үзүүлэлтүүд нь хамгаалагчийн үйлдэл хийж болох үзүүлэлтүүд юм - цоожны файлыг grep хийх, хостыг хаах, эсвэл прокси болон DNS бүртгэлийг хайх. Microsoft-ын төгсгөлийн цэгүүд нь фрэймворк тэдгээрийг буруугаар ашигласнаас болж гарч ирдэг; тэдгээр нь өөрсдөө хортой биш бөгөөд хаах ёсгүй.

Үзүүлэлт Төрөл: хаана Хамгаалагчийн үйлдэл
nolimit-agent (бүх хувилбарууд 1.0.299–1.0.307) Багц npm Grep lockfiles / суулгалтын бүртгэлүүд
api[.]nolimitent[.]xyz (:4100) C2 хост .ad/x4.js Блоклох; DNS + прокси бүртгэл хайх
.ad/ үндсэн/хогийн савны зорилтот хэсэг болгон нуугдсан dir бүтэц, зохион байгуулалт package.json Бүртгэлийн хяналт дахь статик дохио
trusted[.]com@ / %40 / :80@ холбоос маягтууд URL хуурамч .ad/xu.js, .ad/xq.js Мэйл/прокси URL шалгалт
Төхөөрөмжийн код олгох + График inbox/sentitems унш Зан төлөв байдал .ad/x12.js M365 нэвтрэх + График аудитын хяналт

Ангилал дээр хадгалагдсан файлын хэшүүд:

  • багц/.ad/x0.js — ша256 e4153bb614ee03ec456e6b5b41926385db6aae0e4f3e771d18e581571ad7ca2a

  • багц/package.json — ша256 8618064f1f6146b4a8f0459aff9154dca1847e3936aa44f4d4cd37e127075644

Энэ багцаас үл хамааран Microsoft 365 түрээслэгчийн дохиог хайж олох нь зүйтэй: төхөөрөмжийн кодоор амжилттай нэвтэрсний дараа График уншдаг. имэйл хавтас/ирсэн имэйл болон имэйл хавтас/илгээсэн зүйлс, ялангуяа хэрэглэгчийн танихгүй сессээс.

Атрибут ба ажиглагдсан зан төлөв

Ажиглагдаж буй зүйл нь түүний ард хэн байгаагаас тусдаа хэвээр байна.

Ажиглагдаж буй баримтууд: багцыг бариулын дор нийтэлсэн болно нолимит-агент баталгаажаагүй Gmail хаягтай бөгөөд холбогдсон эх сурвалжийн сан байхгүй; түүний багц.json үүнийг "дэвшилтэт имэйл илгээгч" гэж тодорхойлж, дараах байдлаар тэмдэглэдэг улаан баг түлхүүр үг; ажиллах үеийн код нь далд, ойлгомжгүй байдалд төвлөрсөн байна .ad/ хэрэгслийн гинжин хэлхээний сан (javascript-obfuscator) нь зарласан хамаарал юм; мөн дуудлагын гэрийн хост api[.]nolimitent[.]xyz дахин ашигладаг хязгааргүй брэнд. Энэ нь нэг операторын хяналттай дэд бүтцийн тэмдэглэгээтэй нэг багц бөгөөд олон багцын кластер биш бөгөөд өмнө нь нэрлэгдсэн кампанит ажилтай давхцаж байгааг илрүүлээгүй.

The улаан баг түлхүүр үг нь ангиллыг өөрчлөхгүй. Давхар хэрэглээний чадавхийг дамжуулдаг хууль ёсны довтолгооны аюулгүй байдлын хэрэгсэл нь үүнийг ил тод байдлаар хийдэг: уншигдахуйц эх сурвалж, операторын нийлүүлсэн бай, далд дуудлагын гэр байхгүй. Энэ багц нь эдгээр шинж чанаруудыг тус бүрийг нь эргүүлдэг - түүний үйлдлийн код нь бүдгэрч, нуугдсан бөгөөд хэрэглэгчийн нийлүүлсэн бай биш харин тогтмол операторын дэд бүтэц рүү чиглүүлдэг. Хортой гэсэн шийдвэрийг шошго биш харин зан төлөв нь удирддаг.

Зорилгыг энд баталгаажуулаагүй болно. Нийтлэлд кодын үйлдлийг тайлбарласан болно - төхөөрөмжийн код хүсэх, Графаар дамжуулан шуудангийн хайрцгийг унших, тохируулсан релеээр дамжуулан их хэмжээний имэйл илгээх, тогтмол хост руу дохио илгээх - мөн сэдлийг нь дурдаагүй үлдээнэ.

Нөлөөлөл, чиг хандлага болон хамгаалагчийн удирдамж

Суулгах хугацааны хоёр нөлөө чухал. Нэгдүгээрт, суулгадаг аливаа хөгжүүлэгч эсвэл CI агент нолимит-агент нь уг хост руу фрэймворкийг авчирч, дуудлагын гэрийг тохируулдаг. api[.]nolimitent[.]xyzХоёрдугаарт, төхөөрөмжийн кодын чадвар нь суулгаж буй хостоос давсан хүрээг хамардаг: эзэмшигч нь танилцуулсан кодыг батлахыг хүссэн Microsoft 365 шуудангийн хайрцгийг Graph-ээр шууд уншдаг бөгөөд нууц үг хэзээ ч утсыг давж гарахгүйгээр уншдаг.

Илүү өргөн хүрээтэй чиг хандлага нь дотоод болгох явдал юм. Төхөөрөмжийн код (AiTM) фишинг нь бие даасан фишинг дэд бүтцээс олон нийтийн бүртгэлийн багц руу шилжсэн - түгээлтийн дагуу npm суулгах имэйл холбоосоор биш. Энэ хэрэгслийг ийм байдлаар савлах нь фишинг операторын хостинг болон холбоос хүргэлтийн асуудлыг бүртгэлийн хүртээмжээр сольж, үйлдлийн кодыг цэвэр суулгах дэгээ болон dotfile нэртэй obfuscated сангийн ард нуудаг бөгөөд энэ нь хурдан гараар гүйлгэхийг үгүйсгэдэг.

Хамгаалагчдын хувьд:

  • Бүртгэл болон хамаарлын хяналт. Багцыг эмчил үндсэн/байна суулгах дэгээ цэвэрхэн харагдаж байгаа эсэхээс үл хамааран зөвхөн бүтцэд өндөр эрсдэлтэй гэж үзэн жигд бүрхэгжүүлсэн эхний талын кодын далд (цэгээр угсарсан) сан руу шилждэг. Минификация нь бүрхэгжүүлэлт биш - мөрийн урт дээр биш, мөрийн массив декодлогчийн гарын үсэг дээрх хаалга.
  • Microsoft 365 хатуужуулалт. Үйл ажиллагааны хувьд шаардлагагүй тохиолдолд төхөөрөмжийн кодын зөвшөөрлийн урсгалыг Нөхцөлт хандалтаар хязгаарлах; төхөөрөмжийн кодын зөвшөөрөл нь мэдэгдэж буй AiTM вектор бөгөөд интерактив хэрэглэгчид ховор шаардлагатай байдаг. Төхөөрөмжийн кодын нэвтрэлтийг аудит хийсний дараа График шуудангийн хайрцгийг шууд тоолно.
  • Сүлжээ илрүүлэх. Блоклох болон сэрэмжлүүлэг асаалттай api[.]nolimitent[.]xyzХөгжүүлэгч болон бүтээх дэд бүтцийн хооронд гадагш чиглэсэн DNS болон прокси бүртгэлүүдийг хайж олоорой.
  • Шуудангийн замыг илрүүлэх. The хэрэглэгчийн хост URL хуурамч маягтууд (итгэмжлэгдсэн[.]com@…) нь шуудангийн гарц болон прокси дээр илрэх боломжтой; эрхийн бүрэлдэхүүн хэсэг нь ...-ийн өмнө байрладаг холбоосуудыг тэмдэглэнэ үү @.

Шинжилгээний үед багц npm дээр ажиллаж байсан. Учир нь далд хүрээ нь нийтлэгдсэн хувилбарын мөрийг бүхэлд нь хамардаг бөгөөд одоогийн хамгийн сүүлийн үеийн (1.0.307) шошго нь төхөөрөмжийн кодын боломжийг агуулдаг бөгөөд бүртгэлийн устгал нь зөвхөн нэг өмнөх хувилбарыг төдийгүй бүх хувилбарыг хамрах ёстой. 

sca-tools-програм хангамжийн-бүтцийн-шинжилгээний-хэрэгсэл
Програм хангамжийн эрсдэлээ эрэмбэлэх, засах, аюулгүй болгох
Үнэгүй бүртгэлээ аваарай.
Зээлийн картын шаардлагагүй.

Програм хангамжийн хөгжүүлэлт болон хүргэлтээ аюулгүй байлгаарай

Xygeni Product Suite-тэй хамт