VVS $tealer: pythonowy infostealer na Discorda, który chowa się za PyArmor i PyInstallerem

securitybeztabu.pl 4 dni temu

Wprowadzenie do problemu / definicja luki

VVS stealer (spotykany też jako VVS $tealer) to infostealer napisany w Pythonie, ukierunkowany na przejęcie danych z Discorda (tokeny, dane konta, status MFA, metody płatności itd.) oraz kradzież danych przeglądarkowych (cookies, hasła, historia, autofill). W praktyce oznacza to szybkie przejęcie sesji i konta bez konieczności łamania hasła — wystarczy pozyskać token/sesję.

W skrócie

  • Cel: użytkownicy Discorda + dane z przeglądarek (Windows).
  • Monetyzacja/operacje: malware było promowane na Telegramie co najmniej od kwietnia 2025.
  • Ewazja: ciężka obfuskacja PyArmor, w tym BCC mode + szyfrowanie (AES-CTR) — utrudnia analizę statyczną i sygnaturową.
  • Dystrybucja: próbka analizowana przez Unit 42 była spakowana jako PyInstaller (typowa “zamrożona” aplikacja Pythona).
  • Eksfiltracja: dane trafiają m.in. przez Discord webhooki (HTTP POST).

Kontekst / historia / powiązania

Unit 42 opisuje VVS stealer jako przykład szerszego trendu: autorzy malware coraz częściej korzystają z narzędzi dual-use (legalnych w zastosowaniach komercyjnych), żeby podnieść koszt analizy i obejść część kontroli statycznych.

Warto to zestawić z obserwacjami SANS ISC: PyArmor bywa wykorzystywany do “głębokiej” obfuskacji złośliwych skryptów Pythona, co realnie spowalnia reverse engineering i utrudnia szybkie tworzenie detekcji.

Analiza techniczna / szczegóły luki

1) Warstwa pakowania: PyInstaller

Analizowana próbka była dostarczona jako PyInstaller package, co oznacza, iż Python, zależności i bytecode są zebrane w paczce wykonywalnej. To popularne u atakujących, bo ułatwia dystrybucję “jednego pliku”.

Z perspektywy analityka to też wygodne: PyInstaller udostępnia narzędzia do inspekcji archiwów (np. pyi-archive_viewer), pozwalające przeglądać i wyciągać zawartość paczki.

2) Obfuskacja: PyArmor + BCC mode + AES

Unit 42 pokazuje proces zdejmowania ochrony PyArmor, wskazując m.in. na użycie BCC mode oraz szyfrowanie (AES-CTR) fragmentów i stałych tekstowych.

BCC mode w dokumentacji PyArmor jest opisywany jako mechanizm konwersji wielu funkcji/metod do równoważnych funkcji w C, kompilowanych do kodu maszynowego i wywoływanych z obfuskowanego skryptu — to mocno podnosi poprzeczkę dla analizy statycznej.

3) Kradzież danych z Discorda: tokeny + API

VVS stealer wyszukuje zaszyfrowane tokeny Discorda w plikach .ldb/.log (LevelDB), następnie odszyfrowuje klucz z “Local State” przez DPAPI i używa go do deszyfracji tokenów (AES w trybie GCM). Potem odpytuje endpointy API Discorda po dane o koncie (m.in. e-mail, telefon, status MFA, metody płatności, listy znajomych/gildie).

4) Eksfiltracja: Discord webhooks

Zebrane informacje są wysyłane jako JSON w HTTP POST do z góry zdefiniowanych endpointów webhook (zmienna środowiskowa + twardo zakodowane fallbacki).

Dlaczego webhook jest atrakcyjny dla atakujących? Bo to “wbudowany” mechanizm automatyzacji komunikatów w Discordzie: generujesz URL webhooka i możesz wysyłać do kanału dane z zewnętrznej usługi.

5) Hijack aktywnej sesji: Discord Injection

VVS stealer implementuje wstrzyknięcie JS do aplikacji Discord (Electron). Najpierw ubija procesy Discorda, pobiera zdalny plik injection-obf.js, podmienia elementy związane m.in. z webhookiem i umieszcza payload w katalogu aplikacji Discorda. Wstrzyknięty kod ma elementy trwałości i potrafi monitorować ruch przez Chrome DevTools Protocol, a także reagować na akcje użytkownika (np. podgląd backup codes, zmiana hasła, dodanie metody płatności).

6) Kradzież danych z przeglądarek + archiwizacja

Malware zbiera dane z wielu przeglądarek (Chrome/Edge/Brave/Firefox/Opera/Vivaldi/Yandex i inne), pakuje je do ZIP (<USERNAME>_vault.zip) i eksfiltruje analogicznie przez webhook.

7) Utrzymanie dostępu i socjotechnika

VVS stealer kopiuje się do folderu autostartu (%APPDATA%\Microsoft\Windows\Start Menu\Programs\Startup). Dodatkowo potrafi wyświetlać fałszywy komunikat błędu “Fatal Error”, żeby zmylić użytkownika co do przyczyny “problemów” po uruchomieniu próbki.

Praktyczne konsekwencje / ryzyko

  • Przejęcie kont Discord (ATO): token + injection umożliwiają przejęcie aktywnej sesji i dalsze nadużycia (spam, oszustwa, przejęcia serwerów, ataki na znajomych).
  • Utrata danych uwierzytelniających: kradzież haseł/cookies/autofill z przeglądarek to ryzyko kaskadowe (poczta, bankowość, narzędzia firmowe).
  • Ryzyko finansowe: pobieranie informacji o metodach płatności/Nitro oraz event-hooki związane z billingiem zwiększają potencjał nadużyć.
  • Trudniejsza detekcja: PyArmor (w tym BCC mode) ogranicza wartość klasycznych sygnatur i utrudnia szybkie “rozbrojenie” próbek.

Rekomendacje operacyjne / co zrobić teraz

Dla SOC / IR (priorytet: ograniczyć szkody)

  1. Izoluj host (EDR / sieć), jeżeli podejrzewasz uruchomienie próbki — infostealery działają szybko.
  2. Zidentyfikuj trwałość: sprawdź autostart w %APPDATA%\Microsoft\Windows\Start Menu\Programs\Startup.
  3. Hunt po eksfiltracji webhook: szukaj nietypowych POST do domen Discorda związanych z webhookami (w logach proxy/EDR). Mechanizm webhooków jest normalny, ale nadużycia często wyróżnia kontekst (nietypowe hosty, brak uzasadnienia biznesowego).
  4. Reset i “unieważnij sesje”:
    • wymuś zmianę hasła do Discorda,
    • sprawdź i włącz MFA,
    • rozważ “log out all sessions” (bo tokeny/sesje są kluczowym artefaktem).
  5. Rotacja haseł do usług, które mogły być zapisane w przeglądarce (poczta, SSO, repozytoria, panele administracyjne).

Dla prewencji (żeby nie wróciło)

  • Ogranicz przechowywanie haseł w przeglądarkach (polityki, password manager, FIDO2/Passkeys tam, gdzie możliwe).
  • Kontrola uruchamiania: reguły blokujące niepodpisane binaria w profilach użytkowników, ograniczenie uruchamiania z katalogów profilu/Temp, AppLocker/WDAC.
  • Detekcje behawioralne: ubijanie procesów Discorda + modyfikacje katalogu aplikacji + nietypowe połączenia wychodzące to lepszy sygnał niż same hashe (które gwałtownie rotują).
  • Świadomość użytkowników: ostrzegaj przed “toolami”, crackami i plikami obiecującymi dodatki do Discorda — to częsty wektor dla stealerów (szczególnie w społecznościach gamingowych).

Różnice / porównania z innymi przypadkami

  • Eksfiltracja przez Discord webhooki to sprytny wybór: wygląda jak legalna funkcja platformy, a w wielu organizacjach ruch do Discorda bywa “tolerowany” (np. społeczności, support, IT community).
  • PyArmor w najnowszych wersjach pojawia się nie tylko w tym przypadku — SANS ISC opisywał złośliwe skrypty Pythona chronione PyArmor jako realną przeszkodę dla szybkiej analizy i ekstrakcji treści.
  • Injection w aplikację Electron (Discord) podbija skuteczność: zamiast “tylko” kraść tokeny z dysku, malware może polować na zdarzenia konta i billing w trakcie normalnego użycia aplikacji.

Podsumowanie / najważniejsze wnioski

VVS $tealer to nie “kolejny stealer”, tylko przykład rosnącej dojrzałości ekosystemu cyberprzestępczego: dystrybucja przez PyInstaller, zaawansowana obfuskacja PyArmor (w tym BCC mode) oraz przejęcie sesji Discorda przez injection tworzą zestaw, który jest trudniejszy do analizy i często bardziej dotkliwy operacyjnie niż klasyczne kradzieże haseł. Największą wartością dla obrony są tu: szybka izolacja, rotacja sekretów, monitoring anomalii wokół Discorda i podejście behawioralne do detekcji.

Źródła / bibliografia

  1. Palo Alto Networks Unit 42 – VVS Discord Stealer Using Pyarmor for Obfuscation and Detection Evasion (2 stycznia 2026). (Unit 42)
  2. Discord Support – Intro to Webhooks. (Discord Support)
  3. PyInstaller Documentation – Advanced Topics → Using pyi-archive_viewer. (PyInstaller)
  4. PyArmor Documentation – Insight Into BCC Mode. (Pyarmor)
  5. SANS Internet Storm Center – Obfuscated Malicious Python Scripts with PyArmor (9 kwietnia 2025). (SANS Internet Storm Center)
Idź do oryginalnego materiału