
Wprowadzenie do problemu / definicja luki
SolyxImmortal to świeżo opisany malware typu information stealer (infostealer) dla Windows, napisany w Pythonie, który łączy kradzież danych (m.in. haseł z przeglądarek), monitoring aktywności użytkownika, keylogging i zrzuty ekranu w jednym “monolitycznym” implantcie. Jego wyróżnikiem jest to, iż do eksfiltracji używa Discord webhooks – legalnej funkcji popularnej platformy – przez co ruch bywa mniej podejrzany na poziomie sieci.
To nie jest “luka” w sensie CVE, tylko trend operacyjny: atakujący coraz częściej ograniczają własną infrastrukturę C2 i przenoszą komunikację na zaufane usługi, licząc na to, iż organizacje nie chcą lub nie mogą łatwo blokować takich domen.
W skrócie
- Cel: ciągłe, długotrwałe zbieranie danych z pojedynczej stacji roboczej (bez samorozprzestrzeniania).
- Dane: hasła z przeglądarek Chromium, dokumenty z katalogu użytkownika, keystrokes, zrzuty ekranu.
- Eksfiltracja: dwa hardcoded Discord webhooks – osobno na “dane strukturalne” i osobno na screenshoty.
- Persistence: kopia w AppData, a następnie uruchamianie przez klucz Run w rejestrze użytkownika.
- Kryptografia przeglądarek: wyciąganie klucza z pliku Local State i odszyfrowywanie danych w kontekście bieżącego użytkownika (DPAPI).
Kontekst / historia / powiązania
Z informacji badaczy wynika, iż SolyxImmortal był widoczny “na wolności” w styczniu 2026 i był oferowany w podziemnym kanale na Telegramie, co wpisuje się w model commodity malware-as-a-service: narzędzie tworzy jedna osoba/grupa, a dystrybuować i używać może wiele podmiotów o różnym poziomie umiejętności.
W warstwie taktycznej to przykład “living off trusted services”: zamiast utrzymywać własne serwery C2, atakujący wykorzystują gotowe platformy (tu: Discord) i ich reputację oraz HTTPS, by utrudnić wykrycie na poziomie sieci.
Analiza techniczna / szczegóły luki
1) Architektura: monolit + wątki
SolyxImmortal jest opisany jako monolityczna aplikacja w Pythonie z centralnym kontrolerem uruchamiającym równolegle wiele wątków: zbieranie danych, keylogging, monitoring okien, zrzuty ekranu i eksfiltracja. Cała logika oraz parametry C2 są osadzone na stałe w kodzie (hardcoded), bez potrzeby dodatkowej konfiguracji.
2) Persistence: AppData + Run key
Mechanizm utrzymania się na hoście ma być prosty, ale skuteczny:
- samokopiowanie do katalogu w ścieżce AppData użytkownika,
- zmiana nazwy na “udającą” komponent systemowy i ustawienie atrybutów ukrycia,
- rejestracja w kluczu Run (uruchomienie przy logowaniu użytkownika, zwykle bez uprawnień admina).
Wniosek obronny: to zostawia dość klasyczne ślady w rejestrze i w systemie plików (nietypowy binarny/EXE w AppData + autorun w HKCU).
3) Kradzież haseł z Chromium: Local State + DPAPI
Mechanika jest typowa dla wielu stealerów na Windows:
- malware lokalizuje profile przeglądarek Chromium (Chrome/Edge/Brave i podobne),
- odczytuje plik Local State w celu pozyskania “master key”,
- następnie odszyfrowuje wpisy logowania z baz SQLite (w raporcie wskazano AES-GCM po stronie przeglądarki, a “wiązanie” klucza z kontem użytkownika przez DPAPI).
DPAPI (np. CryptUnprotectData) jest standardowym mechanizmem Windows do ochrony danych w kontekście użytkownika – i dlatego atakujący, uruchomieni jako użytkownik, mogą próbować go nadużyć do odszyfrowania danych zapisanych przez aplikacje.
4) Dokumenty, staging i sprzątanie
SolyxImmortal ma przeszukiwać katalog domowy użytkownika, filtrować pliki po rozszerzeniach i rozmiarze, a następnie:
- staging w katalogu tymczasowym,
- kompresję,
- wysyłkę,
- kasowanie artefaktów tymczasowych po udanej eksfiltracji.
To “sprzątanie” ogranicza materiał dla klasycznej triage (tymczasowe katalogi gwałtownie znikają), ale przez cały czas można szukać śladów w logach, EDR i telemetryce plików/rejestru.
5) Keylogger i screen monitoring
W raporcie wskazano:
- keylogging z buforowaniem w pamięci i okresową wysyłką (mniej “głośny” ruch sieciowy),
- monitoring aktywnego okna (porównywanie tytułów okien do listy słów-kluczy związanych z logowaniem/finansami) oraz robienie screenshotów po wykryciu dopasowania i także cyklicznie. (
Mapowanie do MITRE ATT&CK jest tu dość proste:
- keylogging → T1056.001 (Input Capture: Keylogging)
- zrzuty ekranu → T1113 (Screen Capture)
6) Eksfiltracja przez Discord webhooks
Najciekawszy element operacyjny: dwa webhooki Discorda zaszyte w kodzie – jeden do danych (np. archiwa, logi, hasła), drugi dedykowany screenshotom, a do tego hardcoded Discord user ID do “mention” operatora przy zdarzeniach wysokiej wartości.
Webhooki to legalny, powszechny mechanizm publikowania wiadomości do kanału (HTTP endpoint). W praktyce oznacza to, iż malware może wysyłać dane do Discorda bez utrzymywania własnego serwera.
Praktyczne konsekwencje / ryzyko
- Przejęcie kont: kradzież haseł z przeglądarek + keylogging znacząco zwiększają szansę na zdobycie dostępów do VPN, SSO, bankowości, poczty i narzędzi deweloperskich.
- Utrata poufnych dokumentów: automatyczne “przeczesywanie” katalogu użytkownika typowo trafia w umowy, oferty, eksporty danych, pliki księgowe.
- Ryzyko wtórnych ataków: infostealer często bywa etapem 0 przed BEC, ransomware lub przejęciem repozytoriów kodu. (To wniosek ogólny – warto go uwzględnić w planowaniu IR).
- Trudniejsze wykrycie na sieci: jeżeli organizacja dopuszcza ruch do Discorda, webhooki mogą “zniknąć w tłumie” HTTPS.
Rekomendacje operacyjne / co zrobić teraz
Kontrole sieciowe i proxy
- Ogranicz/monitoruj ruch do Discorda na stacjach roboczych (zwłaszcza segmenty back-office, finanse, HR). jeżeli Discord jest biznesowo potrzebny – rozważ allowlistę tylko dla aplikacji/procesów, które mają prawo z niego korzystać. (Nie zawsze możliwe, ale warto spróbować w ZTNA/SSE).
- Wykrywaj nietypowe POST-y do endpointów webhooków Discorda i anomalie wolumenu (małe, częste żądania z hostów, które wcześniej nie komunikowały się z Discord).
Telemetria endpoint i EDR
- Poluj na persistence:
- wpisy w HKCU\Software\Microsoft\Windows\CurrentVersion\Run wskazujące na binaria w AppData,
- pliki wykonywalne w AppData o nazwach imitujących systemowe komponenty.
- Poluj na objawy kradzieży z Chromium:
- dostęp procesu do pliku Local State i baz SQLite profilu przeglądarki (Login Data itp.),
- w tym samym czasie aktywność DPAPI (CryptUnprotectData) jako sygnał korelacyjny.
- Poluj na surveillance:
- procesy robiące screenshoty (API/artefakty plikowe) + jednoczesne połączenia wychodzące,
- sygnały keyloggowania. (MITRE T1056.001 i T1113 mogą posłużyć jako “checklista” źródeł danych i detekcji).
Higiena tożsamości
- Wymuś MFA/Passkeys tam, gdzie to możliwe (infostealer + keylogger to zabójcze combo dla samych haseł).
- Rotuj hasła i unieważniaj sesje dla kont, które mogły być logowane na zainfekowanej maszynie (szczególnie: poczta, SSO, Git, narzędzia finansowe).
Incident response (IR) – praktyczny playbook
- Jeśli podejrzewasz SolyxImmortal na hoście: izolacja stacji, triage autorunów (Run key), analiza AppData, korelacja z ruchem do Discord.
- Przyjmij, iż wyciek obejmuje hasła i dane wpisywane (keylogger), więc sama zmiana haseł “w ciemno” na tej samej stacji nie pomaga – reset realizuj z czystego urządzenia.
Różnice / porównania z innymi przypadkami (jeśli dotyczy)
Na tle klasycznych stealerów SolyxImmortal nie wyróżnia się “nową kryptografią” czy exploitami – jego przewaga jest bardziej operacyjna:
- C2 jako usługa (Discord webhooks), co upraszcza życie operatorom i utrudnia blokowanie,
- rozdzielenie kanałów eksfiltracji (dane vs screenshoty), co sugeruje myślenie o niezawodności i priorytetach,
- nacisk na ciągły monitoring (okna, hasła, najważniejsze akcje) zamiast jednorazowego “grab-and-go”.
W praktyce to kolejny dowód, iż granica między “commodity stealerem” a “narzędziem do inwigilacji” się zaciera – zwłaszcza gdy dodamy screen capture i mechanizmy alertowania operatora.
Podsumowanie / najważniejsze wnioski
- SolyxImmortal to Pythonowy infostealer na Windows, który łączy kradzież danych, keylogging i zrzuty ekranu w jednym implantcie.
- Do eksfiltracji używa Discord webhooks, co zmniejsza potrzebę własnej infrastruktury i może utrudniać detekcję sieciową.
- Persistence przez AppData + Run key jest prosta do polowania w EDR, ale skuteczna w środowiskach z luźną higieną endpointów.
- Obrona powinna łączyć: kontrolę ruchu do Discord, detekcje na endpointach (autorun + dostęp do Local State/SQLite + DPAPI), oraz twardą higienę tożsamości (MFA/Passkeys).
Źródła / bibliografia
- SecurityWeek – opis zagrożenia i podsumowanie ustaleń badaczy (19 stycznia 2026). (SecurityWeek)
- CYFIRMA Research – “SOLYXIMMORTAL: Python Malware Analysis” (publ. 16 stycznia 2026). (CYFIRMA)
- Discord Developer Documentation – Webhook Resource (opis działania webhooków). (Discord)
- Microsoft Learn – CryptUnprotectData (DPAPI, kontekst użytkownika/komputera). (Microsoft Learn)
- MITRE ATT&CK – T1056.001 (Keylogging) oraz T1113 (Screen Capture). (attack.mitre.org)












