Àkójọ DeviceDoor npm Fífiranṣẹ Ẹ̀rọ Microsoft 365 Kóòdù Ìṣàfihàn

DeviceDoor: àpò npm gbogbogbò kan tí ó ń fi ètò ìfiranṣẹ́-àṣírí-kóòdù Microsoft 365 àti ìgbékalẹ̀ ìmeeli-pupọ ránṣẹ́

TL; DR

nolimit-agent jẹ́ àkójọ npm tí àwọn ẹ̀yà tí a tẹ̀ jáde — 1.0.299 nipasẹ 1.0.307, tí a ti tú sílẹ̀ fún ọjọ́ mẹ́rin láti 2026-06-26 sí 2026-06-29 — ọ̀kọ̀ọ̀kan ní gbogbo eto-ararẹ fun aṣiri-ararẹ ati imeeli-pupọ nínú àkójọ ìpamọ́ tí ó farasin, tí ó bò mọ́lẹ̀ pátápátá. Nínú gbogbo àtúnṣe, ìkọ̀wé pàtàkì pinnu láti .ad/x0.js, ọ̀kan lára ​​àwọn fáìlì ~86 nínú fódà tí a ń pè ní dotfile tí ó ní nǹkan bí 4,200 javascript-obfuscator string-array blobs; ìkọ́ install àti ìṣètò entrance jọra ní gbogbo ìlà náà.

Lẹ́yìn ìbòjú náà ni a jókòó sí Ṣíṣàn koodu ẹ̀rọ Microsoft 365 OAuth (login[.]microsoftonline[.]com/common/oauth2/v2.0/devicecode) pé, nígbà tí a bá ti fọwọ́ sí kódì kan, ó máa ń ka àpótí Outlook ti ẹni tí ó farapa náà, ó sì máa ń fi àwọn nǹkan ránṣẹ́ nípasẹ̀ Microsoft Graph API; ẹ̀rọ SMTP àti SMS púpọ̀ tí àwọn àkójọ àwọn olùgbà tí olùṣiṣẹ́ pèsè ń darí; àwọn àpẹẹrẹ ìránṣẹ́ ìfarahàn àmì-àmì-ìdámọ̀; ìkọ́lé ìjápọ̀ ṣíṣí-àtúnṣe; àti ìwádìí lórí wíwá kódì DNS-over-HTTPS, WHOIS, àti GitHub. Àwọn àmì ìjáde ìrìnà àkókò sí àwọn ètò ìṣiṣẹ́ oníṣẹ́ ní api[.]nolimitent[.]xyz:4100.

Àwọn tó ní ipa lórí: ẹnikẹ́ni tó bá fi èyíkéyìí nínú àwọn ẹ̀yà tó wà nínú àpò náà sílẹ̀, àti èyíkéyìí nínú wọn Àpótí ìfìwéránṣẹ́ Microsoft 365 ẹni tí ó ni wọ́n fọwọ́ sí kódì ẹ̀rọ tí wọ́n gbé kalẹ̀ nípasẹ̀ rẹ̀. Ẹ̀yà tuntun, 1.0.307, ni àmì tuntun ti isiyi ati pe o ni agbara apoti-iwọle koodu ẹrọ kanna — koodu irira naa ko ni opin si ẹya ẹhin kan.

Buru: pataki. Ìṣẹ̀dá àyíká tí ó ní ipa lórí: npmÀmì kan ṣoṣo tí a ó kọ́kọ́ wá: olùgbàlejò api[.]nolimitent[.]xyz.

Ikọlu naa: bii o ṣe n ṣiṣẹ

Ikarahun alailabuku lori ẹrù ti o farasin

Àpò náà fi ojú ilẹ̀ kan hàn. package.json kede a fifi sori ẹrọ lẹhin ìkọ́ – 

text postinstall: node scripts/postinstall.js 

— ati lori ayẹwo àwọn ìwé àfọwọ́kọ/postinstall.js kò léwu: ó fi àṣẹ Windows kan sí i, ó sì jáde. Kìkì náà kò sí níbi tí ìwà náà wà. akọkọ ati emi Àwọn pápá méjèèjì tọ́ka sí .ad/, àkójọ ìwé tí àmì àkọ́kọ́ rẹ̀ kò jẹ́ kí ó jẹ́ ohun tí a kò lè ṣe láìròtẹ́lẹ̀ ls àbájáde, àti àwọn tí àkóónú wọn jẹ́ èyí tí ẹ̀rọ kò fi bẹ́ẹ̀ bò mọ́lẹ̀. Sẹ́nkẹ́ẹ̀tì aláìdúró náà ka ~4,293 ẹrù tí a fi àmì-ìdámọ̀ ṣe káàkiri .ad/ ṣeto modulu; JavaScript-obfuscator jẹ́ ìgbẹ́kẹ̀lé ìdàgbàsókè tí a polongo, èyí tí ó bá ìrísí ìyípo okùn-àkójọpọ̀ àwọn fáìlì tí a so pọ̀ mu.

Pípín náà ni àmì àkọ́kọ́ tó yẹ kí a fún ní orúkọ: ìkọ́ ìfipamọ́ tí olùṣàyẹ̀wò yóò ṣàyẹ̀wò yóò mọ́ tónítóní, nígbà tí kódù ìṣiṣẹ́ náà dúró sí ibi ìtọ́sọ́nà kan, tí a fi pamọ́ tí a sì bò mọ́lẹ̀, tí a dé nígbà tí ojú ibi tí a kó ọjà náà sí jáde bá ṣiṣẹ́.

Wiwọle si apoti leta fun koodu ẹrọ Microsoft 365

Modulu naa .ad/x12.js Ó ní agbára tó ga jùlọ nínú ètò náà. Ó ń darí àṣẹ ẹ̀rọ Microsoft 365 OAuth 2.0:

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

Ìfúnni koodu ẹ̀rọ jẹ́ ìṣàn Microsoft tó tọ́ tí a ṣe fún àwọn ẹ̀rọ tí a fi ìdíwọ́ mú: iṣẹ́ kan béèrè fún koodu kan, olùlò sì tẹ koodu náà sínú rẹ̀. microsoft.com/devicelogin«Lórí ẹ̀rọ kejì, ó sì fọwọ́ sí i, iṣẹ́ tí ó béèrè náà sì gba àwọn àmì. Tí iṣẹ́ tí ó béèrè bá jẹ́ ti ẹlòmíràn yàtọ̀ sí ẹni tí ó ni àpótí ìfìwéránṣẹ́, ìfọwọ́sowọ́pọ̀ fún ẹni kẹta náà ní àmì kan. Nígbà tí a bá gba àmì kan, .ad/x12.js` ka àpótí ìfìwéránṣẹ́ náà tààrà nípasẹ̀ 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 

awọn $yan àwọn projections fa àwọn àdírẹ́sì olùránṣẹ́ láti inú àpótí ìforúkọsílẹ̀ àti àwọn àdírẹ́sì olùgbà láti inú àwọn ohun tí a rán — ohun èlò pàtàkì fún ṣíṣe àwòrán àwọn olùròyìn olùfaragbá. Èyí ni wíwọlé sí ọ̀tá-ní àárín (AiTM) nípasẹ̀ ìfọwọ́sowọ́pọ̀ dípò nípasẹ̀ ìfipamọ́ ọ̀rọ̀ìpamọ́: kò sí ìwé ẹ̀rí láti fi ṣe àfọ̀wọ́sí ní ìtumọ̀ àtijọ́, kìkì kódì kan ni a ó fọwọ́ sí.

Ẹ̀rọ ìmeeli àti SMS pẹ̀lú àwọn àpẹẹrẹ ìfarahàn

Ní àyíká ibi tí a lè wọ inú àpótí ìfìwéránṣẹ́ ni a gbé olùfìwéránṣẹ́ sí. Àpò náà ń gbé àwọn fáìlì dátà tí olùṣiṣẹ́ lè ṣe àtúnṣe sí — àwọn àkójọ olùránṣẹ́ (senders.txt, smtps.txt) àti fáìlì àwòṣe kan (àwọn iṣẹ́.txt) — àwọn àdírẹ́sì ẹni tí a fi àyè rẹ̀ sí ni a kà sí ìwé ìṣàfihàn fún ìfarahàn: security@apple.com, login-ìjẹ́rìísí, iṣẹ́ OAuth, ìsanwó, àti àwọn olùránṣẹ́ ìfitónilétí àkọ́ọ́lù lòdì sí yourdomain.com Olùṣiṣẹ́ tí ó dúró ní ipò rẹ̀ yóò rọ́pò. Ẹ̀gbẹ́ SMS náà ní fóònù kanebook àti ìṣètò ẹnu ọ̀nà. Olùfiránṣẹ́ náà máa ń ṣe àtúnṣe àkójọ àwọn olùgbà tí olùṣiṣẹ́ pèsè, ó sì máa ń fi àwọn ìfìránṣẹ́ SMTP tí a ṣètò ránṣẹ́.

Láti ṣe àwọn ìjápọ̀ ní ilẹ̀, .ad/xu.js ati .ad/xq.js kọ àwọn URL tí ó ń lo àìdájú ìtúpalẹ̀ URL àti títẹ̀lé ìtẹ̀. Àwọn àpẹẹrẹ àrékérekè náà ní àṣẹ tí ó ṣeé gbẹ́kẹ̀lé nínú ṣáájú @ nítorí náà, ìṣáájú tí a lè rí yàtọ̀ sí olùgbàlejò gidi:

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

Eto naa tun gba awọn favicon lati ọdọ awọn alabara pataki ati enterprise Àwọn olùpèsè ìmeeli — ọ̀nà ìṣe déédéé fún ṣíṣe ìbéèrè tàbí ojú ìwé ìbalẹ̀ tó dá lórí olùpèsè tó dájú.

Àwòrán àfojúsùn àti ètò ìṣiṣẹ́

Ọ̀pọ̀lọpọ̀ àwọn modulu ló ń kó àkójọpọ̀ ọ̀rọ̀ jọ kí wọ́n tó fi ránṣẹ́. .ad/x0.js a yanjú àwọn orúkọ lórí DNS-over-HTTPS (dns[.]google/yanju), .ad/xa.js Awọn ibeere WHOIS (api[.]whois[.]vu), Ati .ad/x9.js n ṣiṣẹ wiwa koodu GitHub (api[.]github[.]com/search/code?q=) — ìlànà kan tí ó bá àwárí ìṣètò mail-server tí a ti fara hàn àti àwọn ìwé ẹ̀rí SMTP láti fún àkójọ relay náà ní àkójọ náà mu. .ad/xs.js béèrè ìbéèrè lórí àtọ́ka CDX ti Wayback Machine.

Paṣẹ ati iṣakoso

Kọja awọn ohun elo ti o bò, .ad/x4.js awọn itọkasi opin aaye oniṣẹ:

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

Olùgbàlejò náà pín ohun tí ó ṣe aláìlópin àmì-ìdámọ̀ràn pẹ̀lú orúkọ olùtẹ̀wé náà fúnra rẹ̀, àti : 4100 ibudo ni ikanni ipe-ile ti eto naa. Eyi ni itọkasi ti o pẹ julọ fun awọn olugbeja: package kan, ibudo iṣẹ idagbasoke, tabi aṣoju ikole ti n de ọdọ api[.]nolimitent[.]xyz ti ṣiṣẹ koodu yii.

Awọn afihan ti adehun

Àwọn àmì tó wà ní ìsàlẹ̀ yìí ni àwọn tí olùgbèjà lè ṣiṣẹ́ lé lórí — grep a lockfile, block a host, tàbí search proxy àti DNS logs. Àwọn àmì ìparí Microsoft máa ń hàn nítorí pé ètò náà ń lò wọ́n ní ìlòkulò; wọn kì í ṣe oníwà ìkà fúnra wọn, wọn kò sì yẹ kí wọ́n dí wọn lọ́wọ́.

Atọka iru ibi ti Igbese olugbeja
nolimit-agent (gbogbo àwọn ẹ̀yà 1.0.299–1.0.307) package npm Awọn faili titiipa Grep / fi awọn akọọlẹ sori ẹrọ
api[.]nolimitent[.]xyz (:4100) Olùgbàlejò C2 .ad/x4.js Dínà; wá DNS + àwọn àkọsílẹ̀ aṣojú
.ad/ dir ti a fi pamọ bi afojusun akọkọ/bin be package.json Ifihan aimi ninu atunyẹwo iforukọsilẹ
trusted[.]com@ / %40 / :80@ àwọn fọ́ọ̀mù ìjápọ̀ Àṣìṣe URL .ad/xu.js, .ad/xq.js Àyẹ̀wò URL méèlì/aṣojú
Ìfúnni Kóòdù Ẹ̀rọ + Àwòrán inbox/sentitems ka ihuwasi .ad/x12.js Ìwọlé M365 + Àtúnyẹ̀wò àyẹ̀wò àwòrán

Àwọn hash fáìlì tí a yà nígbà ìṣàyẹ̀wò:

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

  • àpò/package.json — sha256 8618064f1f6146b4a8f0459aff9154dca1847e3936aa44f4d4cd37e127075644

Àmì àtìlẹ́yìn Microsoft 365 tó yẹ kí a máa wá kiri láìsí àpò yìí: ìfọwọ́sowọ́pọ̀ àmì ẹ̀rọ tó yọrí sí rere, tí Graph sì kà á lẹ́sẹ̀kẹsẹ̀. Àwọn Fódà ìránṣẹ́/àpótí ìforúkọsílẹ̀ ati Àwọn Fódà mail/àwọn ìmọ̀lára, pàápàá jùlọ láti ìgbà tí olùlò kò mọ̀.

Ìfìyàsí àti ìwà tí a ṣàkíyèsí

Ohun tí a lè rí máa ń yàtọ̀ sí ẹni tí ó wà lẹ́yìn rẹ̀.

Àwọn òtítọ́ tí a lè kíyèsí: a tẹ̀ àpò náà jáde lábẹ́ àkójọ náà aṣoju nolimit pẹ̀lú àdírẹ́sì Gmail tí a kò tíì fìdí rẹ̀ múlẹ̀ àti pé kò sí ibi ìpamọ́ orísun tí a so pọ̀ mọ́; package.json ṣe àpèjúwe rẹ̀ gẹ́gẹ́ bí “olùfiránṣẹ́ ìmeeli tó ti ní ìlọsíwájú” ó sì fi àmì sí i pẹ̀lú ẹgbẹ́ pupa ọ̀rọ̀ pàtàkì; kóòdù àkókò ìṣiṣẹ́ náà wà ní ìkọ̀kọ̀ nínú ohun tí a fi pamọ́, tí a bò mọ́lẹ̀ .ad/ àkójọpọ̀ tí ẹ̀rọ irinṣẹ́ rẹ̀ wà (JavaScript-obfuscator) jẹ́ ìgbẹ́kẹ̀lé tí a kéde; àti olùgbàlejò ìpè-ilé api[.]nolimitent[.]xyz atunlo aláìlópin Àmì ìdámọ̀ràn. Àpò kan ṣoṣo ni èyí pẹ̀lú àmì ìdámọ̀ràn ètò ìṣiṣẹ́ kan ṣoṣo tí olùṣiṣẹ́ ń ṣàkóso — kìí ṣe àkójọpọ̀ àwọn àpò púpọ̀, àti pé a kò rí ìdàpọ̀ kankan pẹ̀lú ìpolongo kan tí a ti dárúkọ tẹ́lẹ̀.

awọn ẹgbẹ́ pupa Ọ̀rọ̀ pàtàkì kò yí ìpínsísọrí padà. Ohun èlò ààbò ìkọlù tó bófin mu tó ń gbé agbára lílo méjì jáde ṣe bẹ́ẹ̀ ní kedere: orísun tó ṣeé kà, ibi tí olùṣiṣẹ́ ti pèsè, àti pé kò sí ilé ìpè tí a fi pamọ́. Àpò yìí yí gbogbo àwọn ohun ìní wọ̀nyẹn padà — kòòdù ìṣiṣẹ́ rẹ̀ ti bò mọ́lẹ̀, ó sì fara pamọ́, ó sì ń tan ìmọ́lẹ̀ sí ètò ìṣiṣẹ́ oníṣẹ́ tí a ti ṣètò dípò ibi tí olùlò ti pèsè. Ìwà náà, kì í ṣe àmì, ló ń darí ìdájọ́ náà, èyí tí ó jẹ́ ibi ìkà.

A kò fi èrò inú hàn níbí. Ìfiránṣẹ́ náà ṣàlàyé ohun tí kódù náà ń ṣe — béèrè fún kódù ẹ̀rọ kan, ka àpótí ìfìwéránṣẹ́ lórí Graph, fi lẹ́tà púpọ̀ ránṣẹ́ nípasẹ̀ àwọn relays tí a ṣètò, beakoni sí olùgbàlejò tí a ti fi síbẹ̀ — ó sì fi ète sílẹ̀ láìsọ ìdí.

Ipa, awọn aṣa ati itọsọna olugbeja

Àwọn ipa méjì tó máa ń wáyé nígbà tí a bá ń fi sori ẹrọ ló ṣe pàtàkì. Àkọ́kọ́, olùgbékalẹ̀ tàbí aṣojú CI èyíkéyìí tó bá ń fi sori ẹrọ ló ṣe pàtàkì. aṣoju nolimit mú ètò náà wá sí ọ̀dọ̀ olùgbàlejò náà, ó sì fi ìpè ilé lélẹ̀ sí api[.]nolimitent[.]xyzÈkejì, agbára kódì ẹ̀rọ náà gbòòrò síi ju olùgbàlejò fífi sori ẹ̀rọ náà lọ: àpótí ìfìwéránṣẹ́ Microsoft 365 tí ẹni tí ó ni í yóò fọwọ́ sí kódì tí a gbé kalẹ̀ ni a máa kà tààrà nípasẹ̀ Graph, láìsí ọ̀rọ̀ìpamọ́ kankan tí ó kọjá wáyà náà.

Aṣa gbooro julọ ni eyi ti a gbọdọ fi sinu inu. Aṣiri-koodu ẹrọ (AiTM) ti yipada lati awọn amayederun aṣiri-ara ẹni ti o duro si apakan lori iforukọsilẹ gbogbogbo — pinpin nipasẹ npm fi sori ẹrọ dípò kí ó jẹ́ nípasẹ̀ ìjápọ̀ tí a fi ránṣẹ́ sí ìmeeli. Ní ọ̀nà yìí, pípa ohun èlò náà pọ̀ ní ọ̀nà àbájáde ìforúkọsílẹ̀ àti ìṣòro ìfiránṣẹ́ phishing operator fún ìkángun ìforúkọsílẹ̀, ó sì fi kódù ìṣiṣẹ́ pamọ́ lẹ́yìn ìkọ́ ìfipamọ́ mímọ́ àti àkójọ ìpamọ́ tí a pè ní dotfile tí ó borí ìkọ́kọ́ oníṣẹ́ ọwọ́ kíákíá.

Fun awọn olugbeja:

  • Àtúnyẹ̀wò ìforúkọsílẹ̀ àti ìgbẹ́kẹ̀lé. Ṣe itọju package kan ti akọkọ/emi a yan sinu àkójọ ìpamọ́ (tí a fi àmì sí) ti kódì ẹni àkọ́kọ́ tí a fi pamọ́ gẹ́gẹ́ bí ewu gíga lórí ìṣètò nìkan, láìka bóyá ìkọ́ ìfipamọ́ náà dàbí èyí tí ó mọ́. Ìdánilójú kì í ṣe ìbòjú — ẹnu ọ̀nà lórí ìfọwọ́sowọ́pọ̀ decoder string-array, kì í ṣe lórí gígùn ìlà.
  • Ìmúdàgba Microsoft 365. Dín ìṣàn àṣẹ-kóòdù ẹ̀rọ kù pẹ̀lú Ìwọ̀lé Àdéhùn níbi tí a kò bá ti nílò rẹ̀ níṣẹ́; àwọn ìfúnni-kóòdù ẹ̀rọ jẹ́ àgbékalẹ̀ AiTM tí a mọ̀, àwọn olùlò ìbánisọ̀rọ̀ kìí sábà nílò rẹ̀. Ṣíṣe àyẹ̀wò fún ìwọlé-kóòdù ẹ̀rọ lẹ́yìn náà kíkà àpò ìwé-ìránṣẹ́ Graph lẹ́sẹ̀kẹsẹ̀.
  • Wiwa nẹtiwọọki. Dínà kí o sì tan ìkìlọ̀ sí i api[.]nolimitent[.]xyz. Wá DNS àti àwọn àkọsílẹ̀ aṣojú tí ó ń jáde láti ọ̀dọ̀ olùgbékalẹ̀ àti láti kọ́ àwọn ètò ìṣiṣẹ́.
  • Ìwádìí ipa-ọ̀nà ìránṣẹ́. awọn olùlò@ogunlejò Àwọn fọ́ọ̀mù ìkọ̀kọ̀ URL (gbẹkẹle[.]com@…) ni a le rí ní ẹnu ọ̀nà ìmeeli àti aṣojú; àwọn ìjápọ̀ àsíá tí apá àṣẹ wọn ṣáájú @.

Àkójọ náà wà lójú ayé lórí npm ní àkókò ìṣàyẹ̀wò náà. Nítorí pé ìlànà ìpamọ́ náà tàn ká gbogbo ìlà àtúnṣe tí a tẹ̀ jáde àti ìsinsìnyí. titun àmì (1.0.307) ní agbára ìkọ̀wé-ẹ̀rọ, ìforúkọsílẹ̀ ìforúkọsílẹ̀ yẹ kí ó bo gbogbo ẹ̀yà, kìí ṣe ẹ̀yà ẹ̀yìn kan ṣoṣo. 

àwọn irinṣẹ́ ìwádìí-àkójọpọ̀-ẹ̀rọ-sca-tools
Ṣe àfiyèsí, ṣe àtúnṣe, kí o sì dáàbò bo àwọn ewu sọ́fítíwè rẹ
Gba Akaunti Ọfẹ rẹ.
Ko si kaadi kirẹditi ti o nilo.

Ṣe aabo fun idagbasoke ati ifijiṣẹ sọfitiwia rẹ

pẹlu Xygeni Product Suite