Kifurushi cha DeviceDoor npm Usafirishaji wa Mfumo wa Ulaghai wa Microsoft 365 Device-Code Phishing

DeviceDoor: kifurushi cha umma cha npm kinachosafirisha mfumo wa ulaghai wa msimbo wa kifaa wa Microsoft 365 na mfumo wa barua pepe nyingi

TL; DR

nolimit-agent ni kifurushi cha npm ambacho matoleo yake yaliyochapishwa — 1.0.299 kupitia 1.0.307, iliyotolewa kwa siku nne kuanzia 2026-06-26 hadi 2026-06-29 — kila moja ina mfumo kamili wa ulaghai na utumaji barua pepe kwa wingi ndani ya saraka iliyofichwa, iliyofichwa kabisa. Katika kila toleo, ingizo kuu linaamua .ad/x0.js, mojawapo ya faili ~86 katika folda yenye jina la dotfile yenye takriban matone 4,200 ya javascript-obfuscator string-array blobs; mpangilio wa ndoano ya usakinishaji na mpangilio wa ingizo unafanana katika mstari mzima.

Nyuma ya mkanganyiko kuna Mtiririko wa msimbo wa kifaa cha Microsoft 365 OAuth (login[.]microsoftonline[.]com/common/oauth2/v2.0/devicecode) kwamba, mara tu msimbo unapoidhinishwa, husoma kikasha pokezi cha mwathiriwa cha Outlook na kutuma vitu kupitia API ya Graph ya Microsoft; injini ya kutuma ya SMTP na SMS inayoendeshwa na orodha za wapokeaji zinazotolewa na waendeshaji; templeti za ujumbe wa uigaji wa chapa; ujenzi wa viungo vya kuelekeza moja kwa moja; na uchunguzi wa utafutaji wa msimbo wa DNS-over-HTTPS, WHOIS, na GitHub. Ishara za trafiki za wakati wa utekelezaji kwa miundombinu ya waendeshaji katika api[.]nolimitent[.]xyz:4100.

Walioathiriwa: mtu yeyote anayesakinisha toleo lolote la kifurushi, na yeyote Kisanduku cha barua cha Microsoft 365 ambaye mmiliki wake anaidhinisha msimbo wa kifaa uliowasilishwa kupitia hiyo. Toleo la hivi karibuni, 1.0.307, ni lebo ya sasa ya hivi karibuni na ina uwezo sawa wa kisanduku cha barua cha msimbo wa kifaa — msimbo hasidi haujazuiliwa kwenye toleo moja la nyuma.

Ukali: muhimuMfumo ikolojia ulioathiriwa: npmKiashiria kimoja cha kutafuta kwanza: mwenyeji api[.]nolimitent[.]xyz.

Shambulio: jinsi linavyofanya kazi

Ganda hafifu juu ya mzigo uliofichwa

Kifurushi kinawasilisha uso wa kawaida. kifurushi.json anatangaza baada ya kusakinisha ndoano – 

text postinstall: node scripts/postinstall.js 

— na kwenye ukaguzi hati/baada ya kusakinisha.js haina madhara: husakinisha shim ya amri ya Windows na kutoka. Kiungo si mahali ambapo tabia hiyo inaishi. kuu na bin sehemu zote mbili zinaelekeza ndani .ad/, saraka ambayo nukta yake inayoongoza huizuia isionekane kama kawaida ls matokeo, na ambayo yaliyomo yake yamefichwa kwa mashine kwa usawa. Kichanganuzi tuli kilichohesabiwa ~4,293 kinajumuisha mzigo wa malipo uliosimbwa kote .ad/ seti ya moduli; javascript-obfuscator ni utegemezi uliotangazwa wa uundaji, unaolingana na umbo la mzunguko wa safu-mfuatano wa faili zilizounganishwa.

Mgawanyiko huo ni ishara ya kwanza inayofaa kutajwa: ndoano ya usakinishaji ambayo mkaguzi angeichunguza ni safi, huku msimbo wa uendeshaji ukiwa kwenye saraka moja, iliyofichwa na kufichwa, ikifikiwa tu wakati sehemu ya kuingia ya kifurushi inapoanza kutumika.

Ufikiaji wa kisanduku cha barua pepe cha msimbo wa kifaa cha Microsoft 365

Moduli .ad/x12.js Hubeba uwezo muhimu zaidi wa mfumo. Huendesha ruzuku ya idhini ya kifaa cha Microsoft 365 OAuth 2.0:

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

Ruzuku ya msimbo wa kifaa ni mtiririko halali wa Microsoft ulioundwa kwa vifaa vyenye vikwazo vya kuingiza data: huduma inaomba msimbo, mtumiaji huandika msimbo huo katika microsoft.com/deviceloginkwenye kifaa cha pili na kuidhinisha, na huduma inayoomba hupokea tokeni. Wakati huduma inayoomba ni ya mtu mwingine ambaye si mmiliki wa sanduku la barua, idhini humpa mtu huyo wa tatu tokeni. Mara tu tokeni inapopatikana, .ad/x12.js` husoma kisanduku cha barua moja kwa moja kupitia 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 $chagua makadirio huvuta anwani za mtumaji kutoka kwenye kikasha pokezi na anwani za mpokeaji kutoka kwa vitu vilivyotumwa — malighafi ya kuchora ramani ya waandishi wa mwathiriwa. Huu ni ufikiaji wa adui katikati (AiTM) kwa idhini badala ya kunasa nenosiri: hakuna sifa ya ulaghai kwa maana ya kawaida, ni msimbo tu wa kuidhinishwa.

Injini ya barua pepe nyingi na SMS yenye violezo vya uigaji

Karibu na kisanduku cha barua pepe kuna mtumaji barua. Kifurushi husafirisha faili za data zinazoweza kuhaririwa na waendeshaji — orodha za watumaji (senders.txt, smtps.txt) na faili ya kiolezo (kazi.txt) — ambaye anwani zake za kishikilia nafasi husomwa kama karatasi ya uigaji: security@apple.com, login-uthibitishaji, huduma ya OAuth, bili, na watumaji arifa za akaunti dhidi ya yourdomain.com Mhudumu hubadilisha simu kwa njia ya kusimama. Upande wa SMS hubeba simuebook na usanidi wa lango. Kituma barua hurekebisha orodha za wapokeaji zinazotolewa na waendeshaji na hutuma kupitia reli za SMTP zilizosanidiwa.

Ili kufanya viungo vitue, .ad/xu.js na .ad/xq.js hujenga URL zinazotumia uchanganuzi wa URL na ufuatiliaji wa mibofyo. Mifumo ya udanganyifu huingiza mamlaka inayoonekana kuaminika kabla ya @ kwa hivyo kiambishi awali kinachoonekana hutofautiana na mwenyeji halisi:

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

Mfumo huo pia unachukua vitambulisho kutoka kwa watumiaji wakuu na enterprise watoa huduma za barua pepe — mbinu ya kawaida ya kutoa ombi la kushawishi au ukurasa wa kutua wenye chapa ya mtoa huduma.

Upelelezi wa shabaha na miundombinu

Moduli kadhaa hukusanya muktadha kabla ya kutuma. .ad/x0.js hutatua majina kupitia DNS-over-HTTPS (dns[.]google/resolve), .ad/xa.js maswali WHOIS (api[.]whois[.]vu), Na .ad/x9.js huendesha utafutaji wa msimbo wa GitHub (api[.]github[.]com/search/code?q=) — muundo unaoendana na kugundua usanidi wa seva ya barua pepe iliyo wazi na sifa za SMTP ili kulisha orodha ya uwasilishaji. .ad/xs.js inauliza faharasa ya CDX ya Wayback Machine.

Amri na udhibiti

Katika seti iliyofichwa, .ad/x4.js marejeleo ya mwisho wa opereta:

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

Mwenyeji anashiriki yake isiyo na kikomo chapa yenye jina la mchapishaji mwenyewe, na : 4100 bandari ndiyo njia ya simu ya nyumbani ya mfumo. Hii ndiyo kiashiria pekee cha kudumu zaidi kwa watetezi: kifurushi, kituo cha kazi cha msanidi programu, au wakala wa ujenzi anayefikia api[.]nolimitent[.]xyz imeendesha msimbo huu.

Viashiria vya maelewano

Viashiria vilivyo hapa chini ni vile ambavyo mtetezi anaweza kuvifanyia kazi — andika faili ya kufunga, zuia seva mwenyeji, au proksi ya utafutaji na kumbukumbu za DNS. Viashiria vya mwisho vya Microsoft vinaonekana kwa sababu mfumo unavitumia vibaya; havina nia mbaya na havipaswi kuzuiwa.

Kiashiria aina Ambapo Kitendo cha mlinzi
nolimit-agent (matoleo yote 1.0.299–1.0.307) mfuko npm Weka faili za kufunga / kumbukumbu za kusakinisha
api[.]nolimitent[.]xyz (:4100) Mwenyeji wa C2 .ad/x4.js Zuia; tafuta DNS + kumbukumbu za proksi
.ad/ sauti iliyofichwa kama lengo kuu/pipa la taka muundo package.json Ishara tuli katika ukaguzi wa usajili
trusted[.]com@ / %40 / :80@ fomu za viungo Udanganyifu wa URL .ad/xu.js, .ad/xq.js Ukaguzi wa URL ya Barua/Proksi
Ruzuku ya msimbo wa kifaa + Grafu inbox/sentitems kusoma Tabia .ad/x12.js Kuingia kwa M365 + ukaguzi wa grafu

Haraka za faili zilizonaswa wakati wa triage:

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

  • kifurushi/kifurushi.json — sha256 8618064f1f6146b4a8f0459aff9154dca1847e3936aa44f4d4cd37e127075644

Ishara ya mpangaji ya Microsoft 365 inayostahili kutazamwa bila kujali kifurushi hiki: kuingia kwa msimbo wa kifaa kwa mafanikio kunafuatwa mara moja na Grafu inasomeka Folda/kisanduku pokezi cha barua pepe na Folda/sentimemu za barua pepe, hasa kutokana na kipindi ambacho mtumiaji hatambui.

Tabia ya sifa na inayoonekana

Kinachoonekana hubaki tofauti na kile kilicho nyuma yake.

Mambo yanayoonekana: kifurushi kimechapishwa chini ya mpini wakala-wasio na kikomo yenye anwani ya Gmail ambayo haijathibitishwa na hakuna hazina chanzo iliyounganishwa; ni kifurushi.json inaielezea kama "mtumaji barua pepe wa hali ya juu" na kuitambulisha kwa timu nyekundu neno muhimu; msimbo wa wakati wa utekelezaji umejikita katika neno lililofichwa, lililofichwa .ad/ saraka ambayo mnyororo wa vifaa (javascript-obfuscator) ni utegemezi uliotangazwa; na mwenyeji wa simu nyumbani api[.]nolimitent[.]xyz hutumia tena isiyo na kikomo chapa. Hii ni kifurushi kimoja chenye alama moja ya miundombinu inayodhibitiwa na waendeshaji — si kundi la vifurushi vingi, na hakuna mwingiliano wowote na kampeni iliyotajwa hapo awali uliotambuliwa.

The timu nyekundu Neno muhimu halibadilishi uainishaji. Zana halali za usalama wa kukera zinazosafirisha uwezo wa matumizi mawili hufanya hivyo kwa uwazi: chanzo kinachoweza kusomeka, malengo yanayotolewa na waendeshaji, na hakuna simu iliyofichwa nyumbani. Kifurushi hiki hubadilisha kila moja ya sifa hizo — msimbo wake wa uendeshaji umefichwa na kufichwa, na huelekeza kwenye miundombinu ya waendeshaji isiyobadilika badala ya shabaha ambayo mtumiaji hutoa. Tabia hiyo, si lebo, inatawala uamuzi, ambao ni mbaya.

Nia haijasisitizwa hapa. Chapisho linaelezea kile ambacho msimbo hufanya — kuomba msimbo wa kifaa, kusoma kisanduku cha barua kupitia Grafu, kutuma barua nyingi kupitia rela zilizosanidiwa, taa kwa seva iliyosanidiwa — na kuacha nia isiyotajwa.

Athari, mitindo na mwongozo wa watetezi

Athari mbili za muda wa usakinishaji ni muhimu. Kwanza, msanidi programu yeyote au wakala wa CI anayesakinisha wakala-wasio na kikomo huleta mfumo kwenye mwenyeji huyo na kuanzisha kituo cha simu api[.]nolimitent[.]xyzPili, uwezo wa msimbo wa kifaa unaenea zaidi ya seva mwenyeji ya kusakinisha: kisanduku cha barua cha Microsoft 365 ambacho mmiliki wake anashawishika kuidhinisha msimbo uliowasilishwa husomwa moja kwa moja kupitia Grafu, bila nenosiri linalovuka waya.

Mwelekeo mpana zaidi ni ule wa kuiingiza ndani. Ulaghai wa kielektroniki wa msimbo wa kifaa (AiTM) umehama kutoka miundombinu ya ulaghai wa kielektroniki hadi kifurushi kwenye sajili ya umma — usambazaji wake ukiwa ni wa npm kufunga badala ya kutumia kiungo kilichotumwa kwa barua pepe. Kufunga kit kwa njia hii hubadilishana tatizo la upangishaji na uwasilishaji wa viungo la mtoa huduma wa ulaghai kwa ufikiaji wa usajili, na huficha msimbo wa uendeshaji nyuma ya ndoano safi ya usakinishaji na saraka iliyofichwa yenye jina la dotfile ambayo hushinda skim ya haraka ya mwongozo.

Kwa watetezi:

  • Ukaguzi wa Usajili na utegemezi. Tibu kifurushi ambacho kuu/bin huamua kuwa saraka iliyofichwa (iliyoainishwa kwa nukta) ya msimbo wa mtu wa kwanza uliofichwa sawasawa kama hatari kubwa kwenye muundo pekee, bila kujali kama ndoano ya kusakinisha inaonekana safi. Uboreshaji si ufifishaji — lango kwenye sahihi ya kivumbuzi cha safu-kamba, si kwenye urefu wa mstari.
  • Uimarishaji wa Microsoft 365. Zuia mtiririko wa idhini ya msimbo wa kifaa ukitumia Ufikiaji wa Masharti ambapo hauhitajiki kiotomatiki; ruzuku za msimbo wa kifaa ni vekta inayojulikana ya AiTM na hazihitajiki sana na watumiaji shirikishi. Kagua kuingia kwa msimbo wa kifaa ikifuatiwa na hesabu ya kisanduku cha barua cha Grafu mara moja.
  • Ugunduzi wa mtandao. Zuia na arifa imewashwa api[.]nolimitent[.]xyzTafuta DNS zinazotoka na kumbukumbu za seva mbadala kwa ajili yake katika miundombinu ya wasanidi programu na ujenzi.
  • Ugunduzi wa njia ya barua. The mtumiaji@mwenyeji Fomu za upotoshaji wa URL (inayoaminika[.]com@…) zinaweza kugunduliwa kwenye lango la barua na proksi; viungo vya bendera ambavyo sehemu yake ya mamlaka hutangulia @.

Kifurushi kilikuwa kikiendelea moja kwa moja kwenye npm wakati wa uchambuzi. Kwa sababu mfumo uliofichwa unajumuisha mstari mzima wa toleo lililochapishwa na mfumo wa sasa karibuni lebo (1.0.307) ina uwezo wa msimbo wa kifaa, uondoaji wa usajili unapaswa kufunika kila toleo, si toleo moja tu la nyuma. 

zana-za-sca-za-uchambuzi-wa-muundo-wa-programu
Weka kipaumbele, rekebisha, na ulinde hatari za programu yako
Pata Akaunti yako ya Bure.
Hakuna kadi ya mkopo inayotakiwa.

Linda Uundaji na Uwasilishaji wa Programu yako

na Xygeni Product Suite