Oprogramowanie złośliwe NodeCordRAT
Analitycy ds. cyberbezpieczeństwa odkryli trzy złośliwe pakiety npm zaprojektowane w celu dystrybucji wcześniej nieudokumentowanego trojana zdalnego dostępu (RAT), obecnie śledzonego jako NodeCordRAT. Pakiety te zostały usunięte z rejestru npm w listopadzie 2025 roku i wszystkie zostały opublikowane przez konto działające pod nazwą „wenmoonx”.
Zidentyfikowane złośliwe pakiety:
- bitcoin-main-lib (≈2300 pobrań)
- bitcoin-lib-js (≈193 pobrań)
- bip40 (≈970 pobrań)
Atakujący celowo wybrali nazwy, które przypominają nazwy legalnych repozytoriów ze znanego ekosystemu bitcoinjs – najwyraźniej w celu wprowadzenia programistów w błąd i zwiększenia prawdopodobieństwa przypadkowej instalacji.
Spis treści
Łańcuch infekcji i dostarczanie ładunku
Kompromitacja zaczyna się po zainstalowaniu pakietu bitcoin-main-lib lub bitcoin-lib-js. Oba pakiety zawierają zmodyfikowany plik package.json, który definiuje skrypt postinstall.cjs. Ten skrypt po cichu pobiera pakiet bip40, który zawiera złośliwy kod.
Po wykonaniu polecenia bip40 wdraża ostateczny ładunek: NodeCordRAT, w pełni funkcjonalnego trojana umożliwiającego zdalny dostęp, wyposażonego we wbudowane funkcje zbierania danych.
Czym jest NodeCordRAT?
NodeCordRAT zawdzięcza swoją nazwę dwóm podstawowym wyborom projektowym: npm jako mechanizmowi propagacji oraz Discordowi jako platformie Command-and-Control (C2). Po instalacji złośliwe oprogramowanie odciska palcem zainfekowany system, aby wygenerować unikalny identyfikator dla hostów Windows, Linux i macOS.
Trojan ten potrafi zbierać poufne informacje, w tym:
- Dane logowania Google Chrome
- Tokeny API
- Tajemnice portfela kryptowalutowego, takie jak dane MetaMask i frazy początkowe
Wszystkie zebrane dane są przesyłane z powrotem do atakującego poprzez infrastrukturę Discord.
Dowodzenie i kontrola oparte na Discordzie
Zamiast polegać na tradycyjnych serwerach C2, NodeCordRAT wykorzystuje zakodowany na stałe serwer Discord i token do ustanowienia tajnego kanału komunikacji. Za pośrednictwem tego kanału operatorzy mogą wydawać polecenia i odbierać skradzione dane.
Obsługiwane polecenia atakującego obejmują:
- !run – Wykonuj dowolne polecenia powłoki za pomocą funkcji exec Node.js
- !screenshot – Zrób zrzut ekranu całego pulpitu i wyeksportuj go jako plik PNG
- !sendfile – Prześlij określony plik lokalny na kanał Discord
Eksfiltracja danych za pośrednictwem API Discorda
Eksfiltracja jest w całości obsługiwana przez API REST Discorda. Za pomocą wbudowanego tokena złośliwe oprogramowanie publikuje skradzione treści bezpośrednio na prywatnym kanale, dołączając pliki przez punkt końcowy:
/kanały/{id}/wiadomości
Takie podejście pozwala atakującym łączyć złośliwy ruch z legalną aktywnością w serwisie Discord, co utrudnia wykrycie go w środowiskach, w których Discord jest dozwolony.
Konsekwencje bezpieczeństwa
Ta kampania uwypukla ciągłe nadużywanie ekosystemów open source i zaufanych platform współpracy. Podszywając się pod znane biblioteki związane z Bitcoinem i wykorzystując skrypty po instalacji, atakujący stworzyli łatwą w użyciu ścieżkę infekcji, zdolną do dostarczenia wieloplatformowego RAT-a ukierunkowanego na kradzież danych uwierzytelniających i zdalne sterowanie.
Dla zespołów programistycznych i specjalistów ds. bezpieczeństwa incydent ten pokazuje, jak ważne jest ścisłe sprawdzanie zależności, monitorowanie skryptów podczas instalacji i wykrywanie anomalii w ruchu wychodzącym do platform konsumenckich, takich jak Discord.