Pakiet DeviceDoor npm do wysyłki struktury phishingowej kodu urządzenia Microsoft 365

DeviceDoor: publiczny pakiet npm dostarczający framework Microsoft 365 do phishingu i masowej wysyłki wiadomości e-mail

TL; DR

nolimit-agent jest pakietem npm, którego opublikowane wersje — 1.0.299 przez 1.0.307, wydane w ciągu czterech dni od 26.06.2026 do 29.06.2026 — każdy z nich zawiera kompletna struktura ochrony przed phishingiem i masową wysyłką poczty w ukrytym, całkowicie zaciemnionym katalogu. W każdej wersji główny wpis rozwiązuje się do .ad/x0.js, jeden z ~86 plików w folderze o nazwie dotfile zawierającym około 4,200 tablic ciągów znaków JavaScript-Obfuscator; hak instalacyjny i układ wpisu są identyczne w całym wierszu.

Za zaciemnieniem kryje się Przepływ kodu urządzenia OAuth Microsoft 365 (login[.]microsoftonline[.]com/common/oauth2/v2.0/devicecode), który po zatwierdzeniu kodu odczytuje skrzynkę odbiorczą Outlooka ofiary i wysyła wiadomości za pośrednictwem interfejsu API Microsoft Graph; mechanizm masowego wysyłania wiadomości SMTP i SMS oparty na listach odbiorców dostarczonych przez operatora; szablony wiadomości podszywające się pod markę; konstrukcja linków z otwartym przekierowaniem; oraz rozpoznanie za pomocą wyszukiwania kodów DNS-over-HTTPS, WHOIS i GitHub. Sygnały ruchu w czasie wykonywania do infrastruktury operatora w api[.]nolimitent[.]xyz:4100.

Dotyczy: każdego, kto zainstaluje dowolną wersję pakietu i każdego Skrzynka pocztowa Microsoft 365 którego właściciel zatwierdzi kod urządzenia przedstawiony za jego pośrednictwem. Najnowsza wersja, 1.0.307, jest najnowszym znacznikiem i posiada tę samą funkcjonalność skrzynki pocztowej kodu urządzenia — złośliwy kod nie jest ograniczony do jednej wersji wstecznej.

Surowość: krytyczny. Dotknięty ekosystem: Npm. Pierwszym wskaźnikiem, którego należy szukać, jest host api[.]nolimitent[.]xyz.

Atak: jak działa

Łagodna powłoka na ukrytym ładunku

Opakowanie ma zwyczajną powierzchnię. pakiet.json deklaruje po instalacji hak - 

text postinstall: node scripts/postinstall.js 

— i po inspekcji skrypty/postinstall.js jest nieszkodliwy: instaluje podkładkę pod polecenia systemu Windows i kończy działanie. Hak nie jest miejscem, w którym znajduje się zachowanie. główny oraz kosz oba pola wskazują na .ogłoszenie/, katalog, którego wiodąca kropka chroni go przed przypadkowym użyciem ls wyjście, którego zawartość jest jednolicie zaciemniona maszynowo. Statyczny skaner naliczył około 4,293 zakodowanych ładunków w całym .ogłoszenie/ zestaw modułów; zaciemniacz javascript jest zadeklarowaną zależnością rozwojową, która odpowiada kształtowi rotacji tablic ciągów w dołączonych plikach.

Podział jest pierwszym sygnałem wartym nazwania: hak instalacyjny, który recenzent z pewnością dokładnie sprawdzi, jest czysty, podczas gdy kod operacyjny znajduje się o jeden katalog dalej, ukryty i zaciemniony, a dostęp do niego uzyskuje się dopiero po uruchomieniu wyeksportowanego punktu wejścia pakietu.

Dostęp do skrzynki pocztowej za pomocą kodu urządzenia Microsoft 365

Moduł .ad/x12.js Zawiera najważniejszą funkcję frameworka. Steruje przyznawaniem autoryzacji urządzeń w ramach Microsoft 365 OAuth 2.0:

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

Przyznanie kodu urządzenia to legalny przepływ firmy Microsoft przeznaczony dla urządzeń z ograniczeniami wejściowymi: usługa żąda kodu, a użytkownik wpisuje ten kod microsoft.com/devicelogin` na drugim urządzeniu i zatwierdza, a usługa żądająca otrzymuje tokeny. Gdy usługa żądająca należy do kogoś innego niż właściciel skrzynki pocztowej, zatwierdzenie przekazuje tej osobie trzeciej token. Po uzyskaniu tokena, Plik .ad/x12.js odczytuje skrzynkę pocztową bezpośrednio za pomocą programu 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 

$wybierz Projekcje pobierają adresy nadawcy ze skrzynki odbiorczej i adresy odbiorców z wysłanych wiadomości – surowy materiał do mapowania korespondentów ofiary. Jest to dostęp typu adwersarz-pośrednik (AiTM) za zgodą, a nie poprzez przechwycenie hasła: w klasycznym ujęciu phishing nie wymaga żadnych danych uwierzytelniających, a jedynie kodu umożliwiającego uzyskanie autoryzacji.

Silnik masowej poczty i SMS-ów z szablonami podszywającymi się

Wokół skrzynki pocztowej znajduje się moduł pocztowy. Pakiet zawiera pliki danych edytowalne przez operatora — listy nadawców (nadawcy.txt, smtps.txt) i plik szablonu (funkcje.txt) — którego adresy zastępcze można odczytać jako listę castingową do podszywania się: security@apple.com, login-weryfikacji, usługi OAuth, rozliczeń i nadawców powiadomień o koncie twojadomena.com Operator zastępczy zastępuje. Strona SMS-owa obsługuje telefonebook i konfiguracji bramy. Program pocztowy iteruje listy odbiorców dostarczone przez operatora i wysyła wiadomości przez skonfigurowane przekaźniki SMTP.

Aby linki lądowały, .ad/xu.js oraz .ad/xq.js Tworzą adresy URL wykorzystujące niejednoznaczność analizy składniowej adresów URL i śledzenie kliknięć. Wzorce spoofingu osadzają zaufany autorytet przed @ więc widoczny prefiks różni się od rzeczywistego hosta:

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

Struktura pobiera również ikony witryn od głównych użytkowników i enterprise dostawcy poczty elektronicznej — rutynowa technika służąca do tworzenia przekonujących komunikatów i stron docelowych z marką dostawcy.

Rozpoznanie celów i infrastruktury

Kilka modułów zbiera kontekst przed wysłaniem. .ad/x0.js rozwiązuje nazwy za pośrednictwem protokołu DNS-over-HTTPS (dns[.]google/resolve), .ad/xa.js zapytania WHOIS (api[.]whois[.]vu), A .ad/x9.js uruchamia wyszukiwanie kodu GitHub (api[.]github[.]com/search/code?q=) — wzorzec zgodny z odkrywaniem ujawnionej konfiguracji serwera pocztowego i danych uwierzytelniających SMTP służących do zasilania listy przekaźnikowej. .ad/xs.js wysyła zapytanie do indeksu CDX Wayback Machine.

Dowodzenie i kontrola

W poprzek zaciemnionego zestawu, .ad/x4.js odwołuje się do punktu końcowego operatora:

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

Gospodarz dzieli się swoją nieograniczony marka z własną nazwą wydawcy i : 4100 Port to kanał wywołania do domu w ramach frameworka. Jest to najtrwalszy wskaźnik dla obrońców: pakiet, stacja robocza dewelopera lub agent kompilacji docierający do api[.]nolimitent[.]xyz uruchomił ten kod.

Wskaźniki kompromisu

Poniższe wskaźniki to te, na które obrońca może zareagować — przeszukać plik blokady, zablokować hosta lub przeszukać logi proxy i DNS. Punkty końcowe Microsoft pojawiają się, ponieważ platforma je nadużywa; same w sobie nie są złośliwe i nie powinny być blokowane.

Wskaźnik Typ Gdzie Akcja obrońcy
nolimit-agent (wszystkie wersje 1.0.299–1.0.307) Pakiet Npm Grep lockfiles / install logs
api[.]nolimitent[.]xyz (:4100) Host C2 .ad/x4.js Blokuj; przeszukaj logi DNS + proxy
.ad/ ukryty katalog jako cel główny/bin Structure package.json Sygnał statyczny w przeglądzie rejestru
trusted[.]com@ / %40 / :80@ formularze linków Fałszywy adres URL .ad/xu.js, .ad/xq.js Inspekcja adresu URL poczty/serwera proxy
Przyznanie kodu urządzenia + Wykres inbox/sentitems czytać Zachowanie .ad/x12.js Logowanie do M365 + przegląd audytu wykresu

Skróty plików przechwycone podczas selekcji:

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

  • pakiet/pakiet.json — sha256 8618064f1f6146b4a8f0459aff9154dca1847e3936aa44f4d4cd37e127075644

Sygnał dzierżawcy usługi Microsoft 365, na który warto zwrócić uwagę niezależnie od tego pakietu: pomyślne logowania za pomocą kodu urządzenia, po których szybko następują odczyty wykresu mailFolders/skrzynka odbiorcza oraz mailFolders/sentitems, zwłaszcza z sesji, której użytkownik nie rozpoznaje.

Atrybucja i obserwowane zachowanie

To, co można zaobserwować, pozostaje niezależne od tego, kto za tym stoi.

Obserwowalne fakty: pakiet jest publikowany pod nazwą użytkownika agent bez limitu z niezweryfikowanym adresem Gmail i bez powiązanego repozytorium źródłowego; pakiet.json opisuje go jako „zaawansowanego nadawcę wiadomości e-mail” i oznacza go tagiem czerwony zespół słowo kluczowe; kod wykonawczy jest skoncentrowany w ukrytym, zaciemnionym .ogłoszenie/ katalog, którego łańcuch narzędzi (zaciemniacz javascript) jest zadeklarowaną zależnością; a host wywołujący dom api[.]nolimitent[.]xyz ponownie wykorzystuje nieograniczony marka. Jest to pojedynczy pakiet z jednym punktem infrastruktury kontrolowanym przez operatora — nie jest to klaster składający się z wielu pakietów i nie stwierdzono żadnego nakładania się z wcześniej wymienioną kampanią.

czerwony zespół Słowo kluczowe nie zmienia klasyfikacji. Legalne narzędzia ofensywno-bezpieczeństwa, które oferują możliwości podwójnego zastosowania, robią to transparentnie: czytelne źródło, cele dostarczone przez operatora i brak ukrytego połączenia z bazą. Ten pakiet odwraca każdą z tych właściwości — jego kod operacyjny jest zaciemniony i ukryty, a sygnał kieruje do stałej infrastruktury operatora, a nie do celu podanego przez użytkownika. To zachowanie, a nie etykieta, decyduje o werdykcie, który jest złośliwy.

W tym poście nie podano intencji. Wpis opisuje, co kod robi – żąda kodu urządzenia, odczytuje skrzynkę pocztową przez Graph, wysyła masową pocztę przez skonfigurowane przekaźniki, sygnalizuje stały host – i nie precyzuje motywu.

Wpływ, trendy i wskazówki dla obrońców

Dwa czynniki wpływające na czas instalacji mają znaczenie. Po pierwsze, każdy programista lub agent CI, który instaluje agent bez limitu przenosi strukturę na tego hosta i ustanawia połączenie domowe api[.]nolimitent[.]xyzPo drugie, możliwości kodu urządzenia wykraczają poza możliwości hosta instalującego: skrzynka pocztowa Microsoft 365, której właściciel zostanie poproszony o zatwierdzenie przedstawionego kodu, jest odczytywana bezpośrednio przez Graph, bez konieczności podawania hasła.

Szerszy trend to internalizacja. Phishing oparty na kodzie urządzenia (AiTM) przeniósł się z samodzielnej infrastruktury phishingowej do pakietu w rejestrze publicznym — dystrybucja przez npm zainstalować Zamiast linku wysłanego e-mailem. Opakowanie zestawu w ten sposób zamienia problem z hostingiem i dostarczaniem linków operatora phishingu na zasięg rejestru, a kod operacyjny ukrywa się za czystym hakiem instalacyjnym i zaciemnionym katalogiem o nazwie „dotfile”, który uniemożliwia szybkie, ręczne przeglądanie.

Dla obrońców:

  • Przegląd rejestru i zależności. Traktuj paczkę, której główny/kosz Przekształca się w ukryty (z prefiksem kropkowym) katalog jednolicie zaciemnionego kodu własnej strony, co jest obarczone wysokim ryzykiem już ze względu na samą strukturę, niezależnie od tego, czy hak instalacyjny wygląda na czysty. Minifikacja to nie zaciemnienie — brama w sygnaturze dekodera tablicy ciągów, a nie w długości linii.
  • Wzmocnienie Microsoft 365. Ogranicz przepływ autoryzacji kodu urządzenia za pomocą dostępu warunkowego tam, gdzie nie jest to wymagane operacyjnie; autoryzacje kodu urządzenia są znanym wektorem AiTM i rzadko są potrzebne użytkownikom interaktywnym. Audyt logowań do kodu urządzenia, a następnie natychmiastowe wyliczenie skrzynek pocztowych Graph.
  • Wykrywanie sieci. Blokuj i ostrzegaj api[.]nolimitent[.]xyz. Przeszukuj wychodzące logi DNS i proxy w całej infrastrukturze deweloperskiej i kompilacyjnej.
  • Wykrywanie ścieżki poczty. użytkownik@host Formularze podrabiania adresów URL (zaufany[.]com@…) są wykrywalne na bramie pocztowej i serwerze proxy; łącza flagowe, których składnik autoryzacji poprzedza @.

W momencie analizy pakiet był aktywny w npm. Ponieważ ukryta struktura obejmuje całą opublikowaną linię wersji i obecną firmy tag (1.0.307) zawiera możliwość kodu urządzenia, usunięcie z rejestru powinno obejmować każdą wersję, a nie tylko jedną wersję poprzednią. 

sca-tools-oprogramowanie-narzędzia-analizy-kompozycji
Określ priorytety, rozwiąż problemy i zabezpiecz zagrożenia związane z oprogramowaniem
Załóż darmowe konto.
Nie wymagamy karty kredytowej.

Zabezpiecz swoje oprogramowanie i dostarczanie

z pakietem produktów Xygeni