
Co znajdziesz w tym artykule?
- 1 Wprowadzenie do problemu / definicja luki
- 2 W skrócie
- 3 Kontekst / historia / powiązania
- 4 Analiza techniczna / szczegóły łańcucha infekcji
- 4.1 Etap A: non.bat jako punkt wejścia
- 4.2 Etap B: Wabik PDF (odwrócenie uwagi)
- 4.3 Etap C: Ukryty relaunch przez PowerShell
- 4.4 Etap D: Staging narzędzi + Python embedded runtime
- 4.5 Etap E: Shellcode, XOR i wykonanie „fileless”
- 4.6 Etap F: Early Bird APC injection do explorer.exe
- 4.7 Etap G: Beaconing / potwierdzenie infekcji
- 5 Praktyczne konsekwencje / ryzyko
- 6 Rekomendacje operacyjne / co zrobić teraz
- 7 Różnice / porównania z innymi przypadkami
- 8 Podsumowanie / kluczowe wnioski
- 9 Źródła / bibliografia
Wprowadzenie do problemu / definicja luki
VOID#GEIST to nazwa kampanii opisanej przez Securonix, w której atakujący odchodzą od typowych plików wykonywalnych PE na rzecz łańcucha opartego o skrypty i uruchamianie ładunków w pamięci. Zamiast „klasycznego EXE”, ofiara widzi (pozornie) zwykłą czynność — np. otwarcie dokumentu — podczas gdy w tle uruchamiane są kolejne etapy infekcji: batch, PowerShell, pobranie legalnego środowiska Python oraz finalne wstrzyknięcie shellcode do procesu explorer.exe.
W skrócie
- Nośnik/launcher: obfuskowany skrypt BAT (m.in.
non.bat), dystrybuowany m.in. w kampaniach phishingowych i pobierany z domen w modelu TryCloudflare. - Kamuflaż: wabik w postaci PDF otwieranego w Chrome (socjotechnika i „odwrócenie uwagi”).
- Persistencja: drugi BAT (np.
spol.bat) w Startup folder użytkownika — bez eskalacji uprawnień. - Rdzeń: pobranie legalnego Python embedded runtime z
python.org, a następnie odszyfrowanie i uruchomienie w pamięci shellcode odpowiadającego trzem rodzinom RAT: XWorm, AsyncRAT, XenoRAT. - Technika wykonania: Early Bird APC injection (MITRE ATT&CK: T1055.004) do nowych instancji
explorer.exe.
Kontekst / historia / powiązania
Wzorzec „script-first + living-off-the-land + fileless” to trend, który w praktyce daje atakującym kilka przewag:
- Mniej artefaktów na dysku → mniejsza szansa na detekcję sygnaturową.
- Etapy wyglądają niewinnie w izolacji:
cmd.exe, PowerShell,curl, archiwum ZIP, Python — wszystko bywa legalne w środowiskach IT. - Szybka rotacja infrastruktury (np. przez Cloudflare Tunnel/TryCloudflare) utrudnia blokowanie IOC w dłuższym horyzoncie.
VOID#GEIST jest dobrym przykładem dojrzałej „operacyjnej” kampanii: łączy psychologię (wabik PDF), stealth (ukryty relaunch), przenośność (Python embedded) i technikę wstrzyknięcia do zaufanego procesu.
Analiza techniczna / szczegóły łańcucha infekcji
Poniżej najczęściej opisywany przebieg (na podstawie analizy Securonix i streszczenia THN):
Etap A: non.bat jako punkt wejścia
- Uruchomienie przez
cmd.exe /c ...\non.batrozpoczyna orkiestrację infekcji. - Skrypt bywa pobierany z adresów typu TryCloudflare (przykładowo obserwowano hosty w tej domenie).
Etap B: Wabik PDF (odwrócenie uwagi)
- Securonix opisuje otwieranie Chrome z URL-em do „faktury” (PDF) hostowanej na zaufanie wyglądającej domenie. Klucz: to nie exploit, tylko zasłona dymna, gdy w tle lecą kolejne kroki.
Etap C: Ukryty relaunch przez PowerShell
- PowerShell startuje
non.batponownie z ukrytą konsolą (-WindowStyle Hidden) i parametrem sterującym logiką skryptu (np. tryb „h”). - To pozwala wykonać staging bez „migających” okien
cmd.exei bez zwracania uwagi użytkownika.
Etap D: Staging narzędzi + Python embedded runtime
- Kampania pobiera oficjalny pakiet embedded Pythona (w raporcie wskazywany jest wariant Python 3.10 embedded dla Windows) bezpośrednio z
python.org. - To ważny moment: ruch do legalnej domeny jest często mniej podejrzany, a jednocześnie zapewnia środowisko uruchomieniowe niezależne od tego, czy Python jest zainstalowany na stacji.
Etap E: Shellcode, XOR i wykonanie „fileless”
- Ładunki RAT są dostarczane jako zaszyfrowane bloby (np.
new.bin,pul.bin,xn.bin) i odszyfrowywane w locie z użyciem materiału klucza w plikach JSON (np.a.json,p.json,n.json). - Następnie payloady są wstrzykiwane do oddzielnych instancji
explorer.exei wykonywane bez zapisu odszyfrowanego EXE na dysku.
Etap F: Early Bird APC injection do explorer.exe
- Technika wskazywana wprost to Early Bird APC injection (MITRE: T1055.004 Asynchronous Procedure Call), czyli wstrzyknięcie przed pełnym „rozruchem” procesu i potencjalnymi hookami/telemetrią bezpieczeństwa.
Etap G: Beaconing / potwierdzenie infekcji
- Łańcuch kończy się lekkim beaconem HTTP (np. sygnał „success”) do infrastruktury kontrolowanej przez atakujących, również hostowanej w TryCloudflare.
Przykładowe IOC z raportu Securonix (wycinek)
- Domeny C2/infrastruktura:
staying-heavily-meaning-blowing.trycloudflare[.]comservers-johnson-rebate-recipes.trycloudflare[.]com
- Pliki/artefakty:
non.bat,spol.bat,runn.py,new.bin,pul.bin,xn.bin,a.json,p.json,n.json
Praktyczne konsekwencje / ryzyko
Jeśli VOID#GEIST z powodzeniem dostarczy RAT (XWorm/AsyncRAT/XenoRAT), organizacja zwykle ryzykuje:
- Zdalne sterowanie stacją (RAT), kradzież danych i poświadczeń, rekonesans AD, lateral movement.
- Trudniejszą detekcję, bo payload działa w pamięci, a wykonanie jest „opakowane” w legalne narzędzia.
- Persistencję na poziomie użytkownika (Startup folder) — szczególnie problematyczną w środowiskach z luźniejszymi politykami uruchamiania skryptów.
Rekomendacje operacyjne / co zrobić teraz
Szybkie działania (0–24h)
- Blokuj i monitoruj ruch do podejrzanych subdomen
trycloudflare.com(z naciskiem na IOC z raportu) oraz nietypowe połączenia wychodzące inicjowane przezexplorer.exe. - Poluj na artefakty: obecność
non.bat,spol.bat, plików*.bini*.jsonw katalogach użytkownika / temp / appdata. - Sprawdź Startup folder użytkowników pod kątem świeżych BAT/skrótów i nietypowych wpisów autostartu.
Utwardzenie (1–7 dni)
- WDAC/AppLocker: ogranicz uruchamianie
.bat,.ps1,.js,.vbsz katalogów użytkownika i profili przeglądarek/poczty. - Włącz i zbieraj:
- PowerShell Script Block Logging (często kluczowe w kampaniach z obfuskacją)
- Sysmon/EDR telemetrię pod kątem tworzenia procesu w stanie
CREATE_SUSPENDED, alokacji pamięci w obcym procesie i kolejki APC (typowe sekwencje dla T1055.004).
- Monitoruj pobrania z
python.orgw organizacjach, gdzie to nietypowe (np. nagły download embedded runtime na stacjach biurowych).
Hunting (ciągłe)
- Koreluj:
powershell.exe→ ukryty startnon.bat→curl/pobrania ZIP → uruchomieniepythonz nietypowymi argumentami → nowe instancjeexplorer.exe+ nietypowy ruch sieciowy. - Poluj na zachowanie opisane w MITRE dla APC/Early Bird injection (T1055.004), bo to często wspólny mianownik dla „fileless” loaderów.
Różnice / porównania z innymi przypadkami
VOID#GEIST wyróżnia się tym, że:
- Stawia na „portable execution environment” przez Python embedded pobrany z legalnego źródła (zmniejsza zależność od konfiguracji hosta).
- Łączy „human evasion” (PDF-wabik) z „EDR evasion” (wstrzyknięcie Early Bird APC) w jednym, spójnym łańcuchu.
- Rozdziela wykonanie payloadów do oddzielnych procesów
explorer.exe, co zwiększa odporność operacyjną (awaria jednego nie musi kończyć całej operacji).
Podsumowanie / kluczowe wnioski
- VOID#GEIST to kampania, która dobrze pokazuje, jak współczesne infekcje wygrywają „prostotą w etapach”: każdy krok wygląda legalnie, ale suma daje pełną kompromitację.
- Najbardziej newralgiczne punkty obrony to: kontrola uruchamiania skryptów, telemetria PowerShell, oraz detekcja in-memory injection (szczególnie APC/Early Bird).
- Jeśli Twoje środowisko nie używa Pythona na endpointach: alert na embedded runtime z python.org może być bardzo skutecznym sygnałem.
Źródła / bibliografia
- The Hacker News – „Multi-Stage VOID#GEIST Malware Delivering XWorm, AsyncRAT, and Xeno RAT” (06.03.2026). (The Hacker News)
- Securonix Threat Research – „VOID#GEIST: Stealthy Multi-Stage Python Loader…” (17.02.2026). (Securonix)
- MITRE ATT&CK – T1055.004 Process Injection: Asynchronous Procedure Call (w tym wariant Early Bird). (MITRE ATT&CK)
- MITRE ATT&CK – T1547.001 Boot or Logon Autostart Execution: Registry Run Keys / Startup Folder. (MITRE ATT&CK)