TL; DR
nolimit-agent on npm-paketti, jonka julkaistut versiot — 1.0.299 1.0.307in kautta, julkaistiin neljän päivän aikana 26.6.2026–29.6.2026 – jokaisessa on täydellinen tietojenkalastelu- ja joukkopostituskehys piilotetun, täysin obfusoidun hakemiston sisällä. Jokaisessa versiossa päämerkintä on muotoa .ad/x0.js, yksi noin 86 tiedostosta dotfile-nimisessä kansiossa, joka sisältää noin 4 200 javascript-obfuscator-merkkijonotaulukko-objektia; asennuskoukku ja merkintöjen asettelu ovat identtiset koko rivillä.
Hämärän takana piilee Microsoft 365 OAuth -laitekoodin työnkulku (login[.]microsoftonline[.]com/common/oauth2/v2.0/devicecode), joka koodin hyväksymisen jälkeen lukee uhrin Outlook-postilaatikon ja lähetetyt viestit Microsoft Graph API:n kautta; operaattorin toimittamien vastaanottajaluetteloiden ohjaama joukko-SMTP- ja tekstiviestien lähetysmoottori; brändin henkilöllisyyden jäljittelyyn perustuvat viestimallit; avoimen uudelleenohjauksen linkkien rakentaminen; ja tiedustelu DNS-over-HTTPS:n, WHOIS- ja GitHub-koodihaun kautta. Suorituksenaikaiset liikennemajakat operaattorin infrastruktuuriin osoitteessa api[.]nolimitent[.]xyz:4100.
Vaikutus koskee: kaikkia, jotka asentavat minkä tahansa paketin version, ja kaikkia Microsoft 365 -postilaatikko jonka omistaja hyväksyy sen kautta esitetyn laitekoodin. Uusin versio, 1.0.307, on uusin tunniste ja sisältää saman laitekoodin postilaatikko-ominaisuuden – haitallinen koodi ei ole rajoitettu yhteen aiempaan versioon.
vakavuus: kriittinenVaikutuksen kohteena oleva ekosysteemi: NPMYksi indikaattori, jota kannattaa etsiä ensin: isäntä api[.]nolimitent[.]xyz.
Hyökkäys: miten se toimii
Hyväntahtoinen kuori piilotetun hyötykuorman päällä
Pakkaus esittää tavallista pintaa. package.json julistaa a asennuksen jälkeen koukku –
text postinstall: node scripts/postinstall.js – ja tarkastuksessa scripts/postinstall.js on vaaraton: se asentaa Windows-komentosarjan ja sulkeutuu. Koukku ei ole se kohta, jossa toiminto esiintyy. tärkein ja astia molemmat kentät osoittavat .ilmoitus/, hakemisto, jonka alussa oleva piste pitää sen poissa satunnaisesta ls tuloste, ja jonka sisältö on tasaisesti koneellisesti obfusoitu. Staattinen skanneri laski noin 4 293 koodattua hyötykuorman jaksoa .ilmoitus/ moduulisarja; javascript-obfuscator on ilmoitettu kehitysriippuvuus, joka vastaa niputettujen tiedostojen merkkijono-taulukon rotaatiomuotoa.
Jako on ensimmäinen mainitsemisen arvoinen signaali: asennuskoukku, jota tarkistaja tarkastelisi, on puhdas, kun taas toiminnallinen koodi sijaitsee yhden hakemiston päässä, piilossa ja obfuskoituna, ja siihen päästään käsiksi vain, kun paketin viety aloituspiste suoritetaan.
Microsoft 365:n laitekoodipohjaisen postilaatikon käyttöoikeus
Moduuli .ad/x12.js sisältää viitekehyksen tärkeimmän ominaisuuden. Se ohjaa Microsoft 365 OAuth 2.0 -laitteen valtuutusta:
text POST login[.]microsoftonline[.]com/common/oauth2/v2.0/devicecode Laitekoodin myöntäminen on laillinen Microsoftin työnkulku, joka on suunniteltu syöterajoitteisille laitteille: palvelu pyytää koodia, käyttäjä kirjoittaa koodin kenttään. microsoft.com/devicelogin`toisella laitteella ja hyväksyy, ja pyytävä palvelu vastaanottaa tokenit. Kun pyytävä palvelu kuuluu jollekin muulle kuin postilaatikon omistajalle, hyväksyntä antaa kyseiselle kolmannelle osapuolelle tokenin. Kun token on hankittu, .ad/x12.js` lukee postilaatikon suoraan Microsoft Graphin kautta:
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 $valitse Ennusteet poimivat lähettäjän osoitteet postilaatikosta ja vastaanottajan osoitteet lähetetyistä viesteistä – raaka-aineena uhrin kirjeenvaihtajien kartoittamiseen. Kyseessä on välikäden (AiTM) käyttö suostumuksella eikä salasanan kaappauksella: klassisessa mielessä tietojenkalasteluun ei tarvita tunnistetietoja, ainoastaan hyväksynnän saamiseksi tarvittava koodi.
Joukkoposti- ja tekstiviestimoottori, jossa on henkilöllisyyden imitointimalleja
Postilaatikon ympärillä on postituslista. Paketti lähettää käyttäjän muokattavissa olevia tiedostoja – lähettäjäluetteloita (lähettäjät.txt, smtps.txt) ja mallitiedosto (funktiot.txt) — jonka paikkamerkkiosoitteet tulkitaan henkilöllisyyden anastamisen valintaperusteeksi: security@apple.com, login-vahvistus, OAuth-palvelu, laskutus ja tili-ilmoitusten lähettäjät vastaan yourdomain.com operaattorin sijaisena. Tekstiviestipuolella on puhelinebook ja yhdyskäytävän konfigurointi. Sähköpostiohjelma käy läpi operaattorin toimittamat vastaanottajaluettelot ja lähettää viestit konfiguroitujen SMTP-välitysten kautta.
Jotta linkit laskeutuisivat, .ad/xu.js ja .ad/xq.js rakentaa URL-osoitteita, jotka hyödyntävät URL-jäsennyksen epäselvyyttä ja klikkien seurantaa. Huijausmallit upottavat luotettavalta näyttävän auktoriteetin ennen @ joten näkyvä etuliite eroaa todellisesta isännästä:
text https://trusted[.]com@ https://trusted[.]com%40 https://trusted[.]com:80@ https://redirect[.]example[.]com/ https://track[.]example[.]com/click? Kehys kerää myös suosikkikuvia suurilta kuluttaja- ja enterprise sähköpostipalveluntarjoajat – rutiininomainen tekniikka vakuuttavan palveluntarjoajan brändätyn kehotteen tai aloitussivun renderöimiseksi.
Kohde- ja infrastruktuuritiedustelu
Useat moduulit keräävät kontekstia ennen lähettämistä. .ad/x0.js ratkaisee nimet DNS-HTTPS:n kautta (dns[.]google/ratkaisu), .ad/xa.js WHOIS-kyselyt (api[.]whois[.]vu), Ja .ad/x9.js suorittaa GitHub-koodihaun (api[.]github[.]com/haku/koodi?q=) — kaava, joka on yhdenmukainen paljastuneen sähköpostipalvelimen kokoonpanon ja SMTP-tunnistetietojen löytämisen kanssa välityslistan syöttämiseksi. .ad/xs.js kyselee Wayback Machinen CDX-indeksiä.
Komento ja kontrolli
Hämärän joukon halki, .ad/x4.js viittaa operaattorin päätepisteeseen:
text http://api[.]nolimitent[.]xyz:4100 Isäntä jakaa sen rajoittamaton brändi kustantajan omalla nimellä ja : 4100 portti on kehyksen kotisoittokanava. Tämä on puolustajille kestävin yksittäinen indikaattori: paketti, kehittäjätyöasema tai koontiagentti saavuttaa api[.]nolimittent[.]xyz on ajanut tämän koodin.
Kompromissin indikaattorit
Alla olevat indikaattorit ovat niitä, joihin puolustaja voi reagoida – käyttää lukitustiedostoa grep-haulla, estää isännän tai hakea välityspalvelin- ja DNS-lokeja. Microsoftin päätepisteet näkyvät, koska kehys väärinkäyttää niitä; ne eivät itsessään ole haitallisia, eikä niitä pitäisi estää.
| Osoitin | Tyyppi | Missä | Puolustajan toiminta |
|---|---|---|---|
nolimit-agent (kaikki versiot 1.0.299–1.0.307) | Paketti | NPM | Grep-lukitustiedostot / asennuslokit |
api[.]nolimitent[.]xyz (:4100) | C2-isäntä | .ad/x4.js | Estä; hae DNS- ja välityspalvelinlokeja |
.ad/ piilotettu hakemisto pää-/roska-kohteena | Tuote mallit | package.json | Staattinen signaali rekisterin tarkistuksessa |
trusted[.]com@ / %40 / :80@ linkkilomakkeet | URL-väärennös | .ad/xu.js, .ad/xq.js | Sähköpostin/välityspalvelimen URL-osoitteen tarkastus |
Laitekoodin myöntäminen + Graph inbox/sentitems luettu | Käyttäytyminen | .ad/x12.js | M365-sisäänkirjautuminen + Graafin auditoinnin tarkistus |
Triage-vaiheessa tallennetut tiedostotiivisteet:
- paketti/.ad/x0.js — sha256 e4153bb614ee03ec456e6b5b41926385db6aae0e4f3e771d18e581571ad7ca2a
- paketti/paketti.json — sha256 8618064f1f6146b4a8f0459aff9154dca1847e3936aa44f4d4cd37e127075644
Tästä paketista riippumatta etsittävä Microsoft 365 -vuokralaisen signaali: onnistuneet laitekoodikirjautumiset, joita seuraa nopeasti Graafin lukemat postikansiot/saapuneet ja sähköpostikansiot/viestit, etenkin istunnosta, jota käyttäjä ei tunnista.
Attribuutio ja havaittu käyttäytyminen
Se, mikä on havaittavissa, pysyy erillään siitä, kuka sen takana on.
Havaittavissa olevat tiedot: paketti on julkaistu kahvan alla nolimit-agentti vahvistamattomalla Gmail-osoitteella ja ilman linkitettyä lähdetietovarastoa; sen package.json kuvailee sitä "edistyneeksi sähköpostin lähettäjäksi" ja merkitsee sen tähdellä punainen joukkue avainsana; ajonaikainen koodi on keskittynyt piilotettuun, hämärrettyyn .ilmoitus/ hakemisto, jonka työkaluketju (javascript-obfuscator) on ilmoitettu riippuvuus; ja kotisoittoisäntä api[.]nolimittent[.]xyz käyttää uudelleen rajoittamaton tuotemerkki. Tämä on yksi paketti, jossa on yksi operaattorin hallitsema infrastruktuurimaamerkki – ei usean paketin klusteri, eikä päällekkäisyyksiä aiemmin nimetyn kampanjan kanssa havaittu.
punainen joukkue avainsana ei muuta luokitusta. Lailliset hyökkäystietoturvatyökalut, jotka tarjoavat kaksoiskäyttöominaisuuden, tekevät sen läpinäkyvästi: luettava lähdekoodi, operaattorin toimittamat kohteet ja ei piilotettua soittopyyntöä. Tämä paketti kääntää kaikki nämä ominaisuudet päinvastaisiksi – sen toiminnallinen koodi on hämärretty ja piilotettu, ja se ohjaa kiinteään operaattorin infrastruktuuriin käyttäjän toimittaman kohteen sijaan. Käyttäytyminen, ei otsikko, määrää tuomion, joka on haitallinen.
Tarkoitusta ei tässä ilmaista. Viestissä kuvataan koodin toiminta – laitekoodin pyytäminen, postilaatikon lukeminen Graphin kautta, joukkopostin lähettäminen konfiguroitujen releiden kautta, majakan lähettäminen kiinteälle isännälle – ja jätetään motiivi kertomatta.
Vaikutus, trendit ja puolustajien ohjeistus
Kaksi asennusaikaista vaikutusta on merkittävä. Ensinnäkin, jokainen kehittäjä tai CI-agentti, joka asentaa nolimit-agentti tuo kehyksen kyseiselle isäntäkoneelle ja muodostaa kotiosoitteen api[.]nolimittent[.]xyzToiseksi laitekoodiominaisuus laajentaa ulottuvuutta asennuspalvelimen ulkopuolelle: Microsoft 365 -postilaatikko, jonka omistajaa pyydetään hyväksymään esitetty koodi, luetaan suoraan Graphin kautta ilman, että salasanaa koskaan ylitetään.
Laajempi trendi on sisäistämisen suuntaan. Laitekoodiin (AiTM) perustuva tietojenkalastelu on siirtynyt itsenäisestä tietojenkalasteluinfrastruktuurista julkisessa rekisterissä olevaksi paketiksi – jakelu npm asentaa sähköpostitse lähetetyn linkin sijaan. Tällä tavoin paketoitu paketti vaihtaa tietojenkalasteluoperaattorin hosting- ja linkkien toimitusongelman rekisterin ulottuville ja piilottaa toimivan koodin puhtaan asennuskoukun ja dotfile-nimisen hämärretyn hakemiston taakse, mikä estää nopean manuaalisen silmäilyn.
Puolustajille:
- Rekisterin ja riippuvuuksien tarkistus. Käsittele pakettia, jonka tärkein/astia ratkeaa piilotetuksi (pisteellä varustettuksi) hakemistoksi, joka sisältää tasaisesti obfusoitua ensimmäisen osapuolen koodia riskialttiina pelkästään rakenteen perusteella, riippumatta siitä, näyttääkö asennuskoukku siistiltä. Minimointi ei ole obfuskaatiota — porttina käytetään merkkijonotaulukon dekooderin allekirjoitusta, ei rivinpituutta.
- Microsoft 365:n suojauksen. Rajoita laitekoodin valtuutuskulkua ehdollisen pääsyn avulla, jos sitä ei tarvita toiminnallisesti; laitekoodin myöntämiset ovat tunnettu AiTM-vektori, ja interaktiiviset käyttäjät tarvitsevat niitä harvoin. Tarkastele laitekoodin kirjautumisia ja luetteloi ne välittömästi Graph-postilaatikon avulla.
- Verkon tunnistus. Esto ja ilmoitus päällä api[.]nolimittent[.]xyzEtsi lähteviä DNS- ja välityspalvelinlokeja kehittäjä- ja rakennusinfrastruktuurista.
- Postipolun tunnistus. käyttäjä@isäntä URL-väärennöslomakkeet (luotettu[.]com@…) ovat havaittavissa sähköpostiyhdyskäytävässä ja välityspalvelimessa; merkitse linkkejä, joiden auktoriteettikomponentti edeltää @.
Paketti oli julkaistu npm:ssä analyysin aikaan. Koska piilotettu kehys kattaa koko julkaistun version ja nykyisen uusin tagilla (1.0.307) on laitekoodiominaisuus, joten rekisteristä poistettavien tietojen tulisi kattaa kaikki versiot, ei vain yhtä aiempaa versiota.




