Paketa npm DeviceDoor që dërgon një Kornizë Phishing të Kodit të Pajisjes Microsoft 365

DeviceDoor: një paketë publike npm që dërgon një kornizë Microsoft 365 për phishing dhe dërgim masiv të postës elektronike me kod pajisjeje.

TL; DR

nolimit-agent është një paketë npm, versionet e publikuara të së cilës — 1.0.299 përmes 1.0.307, të lëshuara gjatë katër ditëve nga 26-06-2026 deri më 29-06-2026 — secila mbart një kornizë e plotë për phishing dhe dërgim masiv të postës elektronike brenda një direktorie të fshehur, plotësisht të turbullt. Në çdo version, hyrja kryesore zgjidhet në .ad/x0.js, një nga ~86 skedarët në një dosje me emrin dotfile që përmban afërsisht 4,200 blob javascript-obfuscator string-array; grepi i instalimit dhe paraqitja e hyrjes janë identike në të gjithë rreshtin.

Pas errësimit qëndron një Rrjedha e kodit të pajisjes Microsoft 365 OAuth (login[.]microsoftonline[.]com/common/oauth2/v2.0/devicecode) që, pasi të miratohet një kod, lexon kutinë hyrëse të Outlook-ut të viktimës dhe dërgon artikuj përmes Microsoft Graph API; një motor dërgimi masiv SMTP dhe SMS i drejtuar nga listat e marrësve të ofruara nga operatori; shabllone mesazhesh të imitimit të markës; ndërtim lidhjesh të ridrejtimit të hapur; dhe zbulim mbi DNS-mbi-HTTPS, WHOIS dhe kërkimin e kodit GitHub. Beacon-e trafiku në kohën e ekzekutimit për infrastrukturën e operatorit në api[.]nolimitent[.]xyz:4100.

I prekur: kushdo që instalon ndonjë version të paketës, dhe çdo Kutia postare e Microsoft 365 pronari i të cilit miraton një kod pajisjeje të paraqitur përmes tij. Versioni më i fundit, 1.0.307, është etiketa më e fundit aktuale dhe mbart të njëjtën aftësi kutie postare me kod pajisjeje — kodi keqdashës nuk kufizohet vetëm në një version të mëparshëm.

ashpërsi: kritikEkosistemi i prekur: NPMTreguesi i vetëm për t'u kërkuar së pari: hosti api[.]nolimitent[.]xyz.

Sulmi: si funksionon

Një guaskë beninje mbi një ngarkesë të fshehur

Paketa paraqet një sipërfaqe të zakonshme. package.json deklaron një post-instalim grep – 

text postinstall: node scripts/postinstall.js 

— dhe në inspektim skripte/postinstall.js është i padëmshëm: instalon një shim komandash të Windows dhe del. Grepi nuk është vendi ku ndodhet sjellja. kryesor bin të dyja fushat tregojnë në .reklamë/, një drejtori pika kryesore e së cilës e mban larg rastësisë ls rezultat, dhe përmbajtja e të cilit është e errët në mënyrë uniforme nga makina. Skaneri statik numëroi ~4,293 hapësira të koduara të ngarkesës në të gjithë .reklamë/ set modulesh; javascript-obfuscator është një varësi e deklaruar zhvillimi, e cila përputhet me formën e rrotullimit të vargut-matricës së skedarëve të paketuar.

Ndarja është sinjali i parë që ia vlen të përmendet: grepi i instalimit që një recensues do të shqyrtonte është i pastër, ndërsa kodi operativ ndodhet një drejtori larg, i fshehur dhe i paqartë, i arritshëm vetëm kur ekzekutohet pika e hyrjes së eksportuar e paketës.

Qasja në kutinë postare me kod pajisjeje të Microsoft 365

Moduli .ad/x12.js mbart aftësinë më të rëndësishme të kornizës. Ai drejton dhënien e autorizimit të pajisjes Microsoft 365 OAuth 2.0:

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

Dhënia e kodit të pajisjes është një rrjedhë legjitime e Microsoft-it e projektuar për pajisje me kufizime të të dhënave hyrëse: një shërbim kërkon një kod, përdoruesi e shkruan atë kod në të. microsoft.com/devicelogin` në një pajisje të dytë dhe miraton, dhe shërbimi kërkues merr token-a. Kur shërbimi kërkues i përket dikujt tjetër përveç pronarit të kutisë postare, miratimi i jep asaj pale të tretë një token. Pasi të merret një token, .ad/x12.js` lexon kutinë postare direkt përmes 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 

La $zgjidh Projeksionet nxjerrin adresat e dërguesve nga kutia postare dhe adresat e marrësve nga artikujt e dërguar — lënda e parë për hartëzimin e korrespondentëve të viktimës. Ky është akses kundërshtar-në-mes (AiTM) me pëlqim dhe jo me kapjen e fjalëkalimit: nuk ka kredenciale për të bërë phishing në kuptimin klasik, vetëm një kod për t'u miratuar.

Një motor postar dhe SMS me shumicë me shabllone imitimi

Rreth kutisë postare ndodhet një dërgues postar. Paketa dërgon skedarë të dhënash të modifikueshëm nga operatori - listat e dërguesve (senders.txt, smtps.txt) dhe një skedar shablloni (funksionet.txt) — adresat e zëvendësuesve të të cilave lexohen si një fletë hedhjeje për imitim: siguri@apple.com, login-verifikimi, shërbimi OAuth, faturimi dhe dërguesit e njoftimeve të llogarisë kundër një yourdomain.com operatori zëvendësues zëvendëson. Ana e SMS-ve përmban një telefonebook dhe konfigurimi i portës hyrëse. Pajisja e postimit përsërit listat e marrësve të ofruara nga operatori dhe i dërgon përmes releve SMTP të konfiguruara.

Për të bërë që lidhjet të shfaqen, .ad/xu.js .ad/xq.js ndërtojnë URL që shfrytëzojnë paqartësinë e analizimit të URL-ve dhe gjurmimin e klikimeve. Modelet e rreme përfshijnë një autoritet që duket i besueshëm përpara një @ pra prefiksi i dukshëm ndryshon nga hosti i vërtetë:

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

Korniza gjithashtu mbledh favicona nga konsumatorët kryesorë dhe enterprise ofruesit e postës — një teknikë rutinë për të paraqitur një kërkesë ose faqe uljeje bindëse të markës së ofruesit.

Zbulimi i objektivave dhe infrastrukturës

Disa module mbledhin kontekstin para dërgimit. .ad/x0.js zgjidh emrat mbi DNS-mbi-HTTPS (dns[.]google/resolve), .ad/xa.js pyetje WHOIS (api[.]whois[.]vu), Dhe .ad/x9.js ekzekuton kërkimin e kodit GitHub (api[.]github[.]com/search/code?q=) — një model në përputhje me zbulimin e konfigurimit të ekspozuar të serverit të postës dhe kredencialeve SMTP për të furnizuar listën e transmetimit. .ad/xs.js pyet indeksin CDX të Wayback Machine.

Komanda dhe kontrolli

Përtej grupit të turbullt, .ad/x4.js referencat e pikës fundore të operatorit:

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

Mikpritësi ndan të sajën pa kufizim markë me emërtimin e vetë botuesit, dhe : 4100 porta është kanali i thirrjes në shtëpi i kornizës. Ky është treguesi më i qëndrueshëm për mbrojtësit: një paketë, një stacion pune zhvilluesi ose një agjent ndërtimi që arrin api[.]nolimitent[.]xyz e ka ekzekutuar këtë kod.

Treguesit e kompromisit

Treguesit më poshtë janë ata mbi të cilët një mbrojtës mund të veprojë — grep një skedar bllokimi, bllokimi i një host-i ose kërkimi i proxy-t dhe regjistrave DNS. Pikat fundore të Microsoft-it shfaqen sepse framework-u i keqpërdor ato; ato vetë nuk janë keqdashëse dhe nuk duhet të bllokohen.

Tregues Tipi Ku Veprimi i mbrojtësit
nolimit-agent (të gjitha versionet 1.0.299–1.0.307) paketë NPM Grep lockfiles / install logs
api[.]nolimitent[.]xyz (:4100) Pritës C2 .ad/x4.js Blloko; kërko regjistrat e DNS + proxy-t
.ad/ direktori i fshehur si objektiv kryesor/bin Strukturë package.json Sinjal statik në rishikimin e regjistrit
trusted[.]com@ / %40 / :80@ formularët e lidhjeve Fallco URL-je .ad/xu.js, .ad/xq.js Inspektimi i URL-së së postës/proxy-t
Grafiku i dhënies së kodit të pajisjes + Grafiku inbox/sentitems lexoj Sjellje .ad/x12.js Hyrja në M365 + Rishikimi i auditimit të grafikut

Hashet e skedarëve të kapura në triazh:

  • paketa/.ad/x0.js — sha256 e4153bb614ee03ec456e6b5b41926385db6aae0e4f3e771d18e581571ad7ca2a

  • paketë/paketë.json — sha256 8618064f1f6146b4a8f0459aff9154dca1847e3936aa44f4d4cd37e127075644

Një sinjal qiramarrësi i Microsoft 365 që ia vlen të gjurmohet pavarësisht nga kjo paketë: hyrje të suksesshme në kodin e pajisjes të ndjekura menjëherë nga lexime grafike të Dosjet/kutia hyrëse e postës Dosjet/sentitemet e postës, veçanërisht nga një seancë që përdoruesi nuk e njeh.

Atribuimi dhe sjellja e vëzhguar

Ajo që është e vëzhgueshme qëndron e ndarë nga kush fshihet pas saj.

Fakte të vëzhgueshme: paketa është publikuar nën dorezën agjent nolimit me një adresë të paverifikuar Gmail dhe pa një depo burimi të lidhur; është package.json e përshkruan atë si një "dërgues të avancuar të email-eve" dhe e etiketon atë me ekipi i kuq fjalë kyçe; kodi i kohës së ekzekutimit është i përqendruar në një kod të fshehur, të paqartë .reklamë/ direktoria e të cilit zinxhiri i mjeteve (javascript-obfuscator) është një varësi e deklaruar; dhe hosti i thirrjes në shtëpi api[.]nolimitent[.]xyz ripërdor pa kufizim markë. Ky është një paketë e vetme me një pikë referimi të infrastrukturës të kontrolluar nga operatori — jo një grumbull me shumë paketa, dhe nuk u identifikua asnjë mbivendosje me një fushatë të emëruar më parë.

La ekipi i kuq Fjala kyçe nuk e ndryshon klasifikimin. Mjetet legjitime të sigurisë ofensive që ofrojnë aftësi me përdorim të dyfishtë e bëjnë këtë në mënyrë transparente: burim i lexueshëm, objektiva të ofruara nga operatori dhe asnjë thirrje e fshehur në shtëpi. Kjo paketë përmbys secilën prej këtyre vetive - kodi i saj operativ është i turbullt dhe i fshehur, dhe i dërgon sinjale infrastrukturës fikse të operatorit në vend të një objektivi që ofron përdoruesi. Sjellja, jo etiketa, përcakton vendimin, i cili është keqdashës.

Qëllimi nuk pohohet këtu. Postimi përshkruan se çfarë bën kodi — kërkon një kod pajisjeje, lexon një kuti postare përmes Graph, dërgon postë masive përmes releve të konfiguruara, sinjalizon në një host të fiksuar — dhe e lë motivin të padeklaruar.

Ndikimi, trendet dhe udhëzimet e mbrojtësve

Dy efekte të kohës së instalimit kanë rëndësi. Së pari, çdo zhvillues ose agjent i CI që instalon agjent nolimit sjell framework-un në atë host dhe krijon call-home për të api[.]nolimitent[.]xyzSë dyti, aftësia e kodit të pajisjes shtrihet përtej hostit instalues: një kuti postare Microsoft 365, pronari i së cilës detyrohet të miratojë një kod të paraqitur, lexohet direkt përmes Graph, pa kaluar asnjë fjalëkalim.

Trendi më i gjerë është ai i përvetësimit të tij. Fishing-u i kodit të pajisjes (AiTM) është zhvendosur nga infrastruktura e pavarur e phishing-ut në një paketë në një regjistër publik — shpërndarje sipas instaloni npm në vend që të përdoret një lidhje e dërguar me email. Paketimi i këtij sistemi e zëvendëson problemin e hostimit dhe dorëzimit të lidhjeve nga operatori i phishing-ut me shtrirjen e regjistrit, dhe e fsheh kodin operativ pas një grepi instalimi të pastër dhe një drejtorie të errët me emrin dotfile që e mposht një shfletim të shpejtë manual.

Për mbrojtësit:

  • Rishikimi i regjistrit dhe varësisë. Trajtoni një paketë të cilës kryesor/bin zgjidhet në një direktori të fshehur (me parashtesë pikë) me kod të palës së parë të turbullt në mënyrë uniforme si me rrezik të lartë vetëm në strukturë, pavarësisht nëse grepi i instalimit duket i pastër. Minifikimi nuk është turbullim - porta në nënshkrimin e dekoderit të vargut-vargut, jo në gjatësinë e linjës.
  • Forcimi i Microsoft 365. Kufizoni rrjedhën e autorizimit të kodit të pajisjes me Qasje të Kushtëzuar aty ku nuk kërkohet në mënyrë operative; grantet e kodit të pajisjes janë një vektor i njohur AiTM dhe rrallë nevojiten nga përdoruesit interaktivë. Auditoni për hyrjet e kodit të pajisjes të ndjekura nga numërimi i menjëhershëm i kutisë postare Graph.
  • Zbulimi i rrjetit. Blloko dhe alarmo aktiv api[.]nolimitent[.]xyzKërkoni regjistrat e DNS-it dalës dhe të proxy-t në të gjithë infrastrukturën e zhvilluesve dhe të ndërtuar.
  • Zbulimi i shtegut të postës. La përdorues@host Format e rreme të URL-së (i besuar[.]com@…) janë të dallueshme në portën e postës dhe në ndërmjetësin; lidhjet e flamurit, përbërësi i autoritetit të të cilave i paraprin një @.

Paketa ishte aktive në npm në kohën e analizës. Sepse framework-u i fshehur përfshin të gjithë linjën e versionit të publikuar dhe versionin aktual. fundit Etiketa (1.0.307) mbart aftësinë e kodit të pajisjes, heqja e regjistrit duhet të mbulojë çdo version, jo vetëm një version të mëparshëm. 

mjetet-e-për-përbërjes-së-softuerit-sca-tools
Përparësoni, korrigjoni dhe siguroni rreziqet e softuerit tuaj
Merrni Llogarinë tuaj Falas.
Nuk kërkohet kartë krediti.

Siguroni Zhvillimin dhe Ofrimin e Softuerit tuaj

me Xygeni Product Suite