Слање пакета DeviceDoor npm помоћу Microsoft 365 Device-Code Phishing Framework-а

DeviceDoor: јавни npm пакет који испоручује Microsoft 365 оквир за фишинг и масовно слање поште са кодом уређаја

ТЛ; ДР

nolimit-agent је npm пакет чије објављене верзије — КСНУМКС кроз КСНУМКС, објављене током четири дана од 26.06.2026. до 29.06.2026. — свака носи комплетан оквир за фишинг и масовну пошту унутар скривеног, потпуно замаскираног директоријума. У свакој верзији главни унос се решава на .ad/x0.js, једна од ~86 датотека у фасцикли са називом dotfile која садржи отприлике 4,200 javascript-obfuscator string-array блобова; распоред инсталационе куке и уноса су идентични у целој линији.

Иза замагљивања се крије Ток кода уређаја за Microsoft 365 OAuth (login[.]microsoftonline[.]com/common/oauth2/v2.0/devicecode) који, након што је код одобрен, чита пријемно сандуче жртве у програму Outlook и послате ставке путем Microsoft Graph API-ја; механизам за слање масовних SMTP и SMS порука који покрећу листе прималаца које доставља оператер; шаблони порука које представљају бренд; изградња линкова за отварање и преусмеравање; и извиђање путем DNS-а преко HTTPS-а, WHOIS-а и претраге кода GitHub-а. Светионици саобраћаја током извршавања ка инфраструктури оператера на api[.]nolimitent[.]xyz:4100.

Погођено: свако ко инсталира било коју верзију пакета и било који Поштанско сандуче у систему Microsoft 365 чији власник одобрава код уређаја представљен преко њега. Најновија верзија, 1.0.307, је тренутна најновија ознака и носи исту могућност поштанског сандучета са кодом уређаја — злонамерни код није ограничен на једну претходну верзију.

Озбиљност: критичанПогођени екосистем: нпмЈедан индикатор који прво треба потражити: домаћин api[.]nolimitent[.]xyz.

Напад: како функционише

Бенигна љуска преко скривеног корисног терета

Паковање представља обичну површину. пацкаге.јсон изјављује након инсталације кука - 

text postinstall: node scripts/postinstall.js 

— и на инспекцији скрипте/postinstall.js је безопасан: инсталира Windows командну шиму и излази. Кука није тамо где се понашање налази. главни bin оба поља указују на .ad/, директоријум чија водећа тачка га спречава да буде повремено ls излаз, а чији је садржај једнообразно машински замагљен. Статички скенер је избројао ~4,293 распона кодираног корисног терета преко .ad/ сет модула; јавасцрипт-обфусцатор је декларисана развојна зависност, која се поклапа са обликом ротације низова низова у пакету датотека.

Подела је први сигнал који вреди поменути: инсталациони хоок који би рецензент пажљиво испитао је чист, док се оперативни код налази један директоријум даље, скривен и замагљен, до ког се стиже само када се покрене извезена улазна тачка пакета.

Приступ поштанском сандучету за 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 

$селецт Пројекције извлаче адресе пошиљалаца из пријемног сандучета и адресе прималаца из послатих порука — сиров материјал за мапирање дописника жртве. Ово је приступ противника у средини (AiTM) путем сагласности, а не путем снимања лозинке: не постоји акредитив за фишинг у класичном смислу, већ само код за добијање одобрења.

Механизам за масовну пошту и СМС поруке са шаблонима за персонификацију

Око приступа поштанском сандучету налази се поштански програм. Пакет шаље датотеке са подацима које оператер може да уређује — листе пошиљалаца (senders.txt, smtps.txt) и датотеку шаблона (functions.txt) — чије се адресе резервисаних места читају као лист за кастинг за лажно представљање: security@apple.com, login-верификација, OAuth услуга, наплата и пошиљаоци обавештења о налогу у односу на иоурдомаин.цом Заменик оператера замењује. СМС страна носи телефон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-а преко HTTPS-а (днс[.]гугл/решење), .ad/xa.js упити WHOIS (апи[.]whois[.]vu), И .ad/x9.js покреће претрагу кода на ГитХабу (апи[.]гитхаб[.]цом/сеарцх/цоде?к=) — образац који је у складу са откривањем откривене конфигурације поштанског сервера и SMTP акредитива за додавање релеј листи. .ad/xs.js упитује CDX индекс Wayback Machine-а.

Команда и контрола

Преко замагљеног сета, .ad/x4.js референцира крајњу тачку оператора:

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

Домаћин дели своје неограничено бренд са сопственим именом издавача и : КСНУМКС Порт је канал фрејмворка за позив кући. Ово је најтрајнији индикатор за браниоце: пакет, радна станица програмера или агент за изградњу који допире до апи[.]без ограничења[.]xyz је покренуо овај код.

Индикатори компромиса

Доле наведени индикатори су они на које бранилац може да реагује — греповање закључане датотеке, блокирање хоста или претрага проксија и DNS логова. Мајкрософтове крајње тачке се појављују зато што их фрејмворк злоупотребљава; саме по себи нису злонамерне и не би требало да буду блокиране.

Индикатор тип Где Акција одбрамбеног играча
nolimit-agent (све верзије 1.0.299–1.0.307) пакет нпм Grep lockfiles / logovi instalacije
api[.]nolimitent[.]xyz (:4100) C2 домаћин .ad/x4.js Блокирај; претражи ДНС + прокси логове
.ad/ скривени директоријум као главни/bin циљ структура package.json Статички сигнал у прегледу регистра
trusted[.]com@ / %40 / :80@ линк формулари Пародија URL-ова .ad/xu.js, .ad/xq.js Инспекција URL-ова поште/проксија
Додела кода уређаја + График inbox/sentitems читати Понашање .ad/x12.js Пријављивање на M365 + преглед Graph ревизије

Хешови датотека снимљени током тријаже:

  • пакет/.ad/x0.js — ша256 e4153bb614ee03ec456e6b5b41926385db6aae0e4f3e771d18e581571ad7ca2a

  • пакет/пакет.json — ша256 8618064f1f6146b4a8f0459aff9154dca1847e3936aa44f4d4cd37e127075644

Сигнал закупца Microsoft 365 услуге који вреди тражити независно од овог пакета: успешне пријаве помоћу кода уређаја, праћене очитавањем графикона поштаФолдери/пријемно сандуче поштаФаксације/поруке, посебно из сесије коју корисник не препознаје.

Атрибуција и посматрано понашање

Оно што је видљиво остаје одвојено од онога ко стоји иза тога.

Приметне чињенице: пакет је објављен под именом nolimit-agent са непровереном Gmail адресом и без повезаног репозиторијума изворног кода; његов пацкаге.јсон описује га као „напредног пошиљаоца имејлова“ и означава га са црвени тим кључна реч; код за извршавање је концентрисан у скривеном, замагљеном .ad/ директоријум чији алат (јавасцрипт-обфусцатор) је декларисана зависност; и хост за позив кући апи[.]без ограничења[.]xyz поново користи неограничено бренд. Ово је један пакет са једном инфраструктурном оријентирном тачком коју контролише оператер — није кластер са више пакета, и није идентификовано преклапање са претходно именованом кампањом.

црвени тим Кључна реч не мења класификацију. Легитимни алати за офанзивну безбедност који пружају могућност двоструке намене то чине транспарентно: читљив извор, циљеве које обезбеђује оператер и нема скривених позива кући. Овај пакет инвертује свако од тих својстава — његов оперативни код је замагљен и скривен, и он усмерава ка фиксној инфраструктури оператера, а не ка циљу који корисник обезбеђује. Понашање, а не ознака, одређује пресуду, која је злонамерна.

Овде се не наводи намера. Објава описује шта код ради — захтева код уређаја, чита поштанско сандуче преко Graph-а, шаље масовну пошту преко конфигурисаних релеја, усмерава сигнал ка фиксном хосту — и оставља мотив ненаведеним.

Утицај, трендови и смернице за одбрамбене играче

Два ефекта у времену инсталације су важна. Прво, сваки програмер или CI агент који инсталира nolimit-agent доноси оквир на тог хоста и успоставља позив кући ка апи[.]без ограничења[.]xyzДруго, могућност кода уређаја проширује домет изван хоста који инсталира: поштанско сандуче Microsoft 365 чији је власник подстакнут да одобри представљени код се директно чита кроз Graph, без икакве лозинке која прелази жицу.

Шири тренд је онај који се интернализује. Фишинг помоћу кода уређаја (AiTM) се преместио из самосталне фишинг инфраструктуре у пакет у јавном регистру — дистрибуција од стране нпм инсталл уместо путем линка послатог имејлом. Паковање комплета на овај начин замењује проблем хостинга и испоруке линкова оператера фишинга зарад домета регистра и скрива оперативни код иза чисте инсталационе закачке и замагљеног директоријума са називом „dotfile“ који онемогућава брзи ручни преглед.

За браниоце:

  • Преглед регистра и зависности. Третирајте пакет чији главни/bin разрешава се у скривени (са префиксом тачке) директоријум равномерно замаскираног кода прве стране као високоризичан само по структури, независно од тога да ли инсталациона закачка изгледа чисто. Минификација није замаскирање — капија се односи на потпис декодера низа стрингова, а не на дужину линије.
  • Ојачање система Microsoft 365. Ограничите проток ауторизације кода уређаја помоћу условног приступа тамо где то није оперативно потребно; доделе кода уређаја су познати AiTM вектор и ретко су потребне интерактивним корисницима. Ревизија за пријаве кода уређаја праћена тренутним набрајањем поштанских сандучића у Graph-у.
  • Детекција мреже. Блокирај и упозори апи[.]без ограничења[.]xyzПотражите логове одлазних DNS и проксија у инфраструктури за програмере и изградњу.
  • Детекција путање поште. корисник@домаћин URL-споуф обрасци (поуздано[.]com@…) се могу открити на поштанском мрежном пролазу и проксију; означити везе чија компонента ауторитета претходи @.

Пакет је био активан на npm-у у време анализе. Пошто скривени оквир обухвата целу објављену верзију и тренутну најновији Ознака (1.0.307) носи могућност кода уређаја, уклањање из регистра треба да обухвати сваку верзију, а не само једну претходну верзију. 

sca-tools-software-composition-analysis-tools
Приоритизујте, отклоните и обезбедите ризике везане за ваш софтвер
Набавите свој бесплатни налог.
Није потребна кредитна картица.

Обезбедите свој развој и испоруку софтвера

са Xygeni пакетом производа