Menu dostępności

Zabójca logów Microsoft – Phant0m

O sposobach ominięcia zabezpieczeń systemów Microsoft Windows, pisaliśmy wielokrotnie. W tym o możliwością wyłączenia zapisywania aktywności w Dzienniku Zdarzeń. Na przykład modyfikując jeden wpis w rejestrze możemy wyłączyć dostęp do logów generowanych przez system w Dzienniku Zdarzeń (ang. Microsoft Event Log). Tym razem opiszemy narzędzie o nazwie Phant0m umożliwiające blokadę tworzenia takich logów w systemie.


Phant0m

Phant0m to narzędzie/biblioteka dll stworzona przez Halil Dalabasmaz’a. Celuje w usługę Dziennika zdarzeń (ang. Event Log). Po uruchomieniu znajduje proces odpowiedzialny za działanie usługi, wykrywa i „zabija” w systemie wszystkie jego wątki. W konsekwencji Dziennik zdarzeń wydaje się działać (ponieważ Phant0m nie ubija jego procesu), ale w rzeczywistości nie działa (ponieważ Phant0m ubił jedynie wątki), a system nie gromadzi dzienników zdarzeń. Stanowi to zagrożenie dla bezpieczeństwa, ponieważ z logów generowanych przez system Windows korzysta do analizy i monitorowania wiele rozwiązań do bezpieczeństwa informatycznego w tym rozwiązania klasy SIEM.


Jak to działa?

Przed opisaniem narzędzia Phant0m warto wspomnieć kilka słów o procesie Svchost. Svchost w systemie Windows jest niezbędny przy wdrażaniu tak zwanych procesów usług wspólnych, w których wiele serwisów może współdzielić proces w celu zmniejszenia zużycia zasobów. Grupowanie wielu usług w jeden proces oszczędza zasoby obliczeniowe, a ta uwaga była szczególnie ważna dla projektantów NT, ponieważ tworzenie procesów Windows zajmuje więcej czasu i zużywa więcej pamięci niż w innych systemach operacyjnych, m.in. w rodzinie Unix’ów. Oznacza to w skrócie, że w systemach operacyjnych Windows, svchost.exe zarządza usługami, a usługi faktycznie działają pod svchost.exe jako wątki.

Phant0m używa dwóch różnych opcji do wykrywania identyfikatora procesu usługi dziennika zdarzeń. Pierwszym jest wykrywanie za pomocą SCM (Service Control Manager), a drugim jest wykrywanie za pośrednictwem WMI (Windows Management Instrumentation).

Zasadza działania narzędzia lub biblioteki Phant0m

To, za pomocą, której metody Phant0m ma wykrywać identyfikator procesu usługi Dziennik zdarzeń, zależy od ustawień, które skonfigurujemy przed kompilacją narzędzia w następujących wierszach pliku main.cpp.

// Sekcja konfiguracji technik detekcji PID.

#define PID_FROM_SCM 1 // Jeśli ustawisz go na 1, PID usługi Dziennika zdarzeń jest uzyskiwany z Menedżera usług.

#define PID_FROM_WMI 0 // Jeśli ustawisz go na 1, PID usługi Dziennika zdarzeń jest uzyskiwany z WMI.

Na przykład, jeśli chcemy, aby identyfikator procesu był wykrywany przez SCM, powinniśmy go edytować w następujący sposób. (Nie ustawiaj wszystkich wartości jednocześnie, ustaw tylko jedną technikę, którą chcesz.)

// Sekcja wykrywania TID i konfiguracji technik zabijania.

#define KILL_WITH_T1 1 //Jeśli ustawisz ją na 1, zostanie użyta Technika-1.

#define KILL_WITH_T2 0 // Jeśli ustawisz ją na 1, zostanie użyta Technika-2.


Opis pierwszej techniki detekcji PID

Gdy każda usługa jest zarejestrowana na komputerze z systemem Windows Vista lub nowszym, Menedżer sterowania usługami (SCM) przypisuje do usługi unikalny znacznik numeryczny (w kolejności rosnącej). Następnie, w czasie tworzenia usługi, tag jest przypisywany do TEB głównego wątku usługi. Ten znacznik będzie następnie propagowany do każdego wątku utworzonego przez główny wątek usługi. Na przykład, jeśli wątek usługi Foo tworzy wątek roboczy RPC (uwaga: wątki robocze RPC nie używają mechanizmu puli wątków więcej w innych artykułach), ten wątek będzie miał znacznik serwisowy usługi Foo.

Tak więc w tej technice Phant0m wykryje wątki usługi Event Log za pomocą interfejsu API NtQueryInformationThread, aby uzyskać adres TEB wątku i odczytać SubProcessTag z TEB. Następnie zabija wątki związane z usługą Dziennika zdarzeń.


Opis drugiej techniki detekcji PID

W tej technice Phant0m wykrywa nazwy bibliotek DLL powiązanych z wątkami. Usługa dziennika zdarzeń systemu Windows używa pliku wevtsvc.dll. Pełna ścieżka to %WinDir%\System32\wevtsvc.dll. Jeśli wątek używa tej biblioteki DLL, jest to wątek usługi dziennika zdarzeń systemu Windows, a następnie Phant0m zabija wątek.


Uruchomienie Phant0m

Phant0m występuje jako samodzielny program EXE oraz jako bibloteka (Reflective DLL). Źródła dostępne są Visual C++. UWAGA: Projekt obsługuje tylko architekturę x64.

W celu kompilacji narzędzia należy użyć Microsoft Visual Studio i zmienić w ustawieniach pliku „main.cpp” technikę wykrywania i zabijania procesów. Następnie kompilujemy narzędzie do EXE lub DLL

Popularne

Koniec ery VPN? Jak sztuczna inteligencja zmienia krajobraz cyberzagrożeń i przyspiesza przejście do Zero Trust

Koniec ery VPN? Jak sztuczna inteligencja zmienia krajobraz cyberzagrożeń i przyspiesza przejście do Zero Trust

Przez ponad dwie dekady sieci VPN (Virtual Private Network) stanowiły podstawowy mechanizm zapewniający bezpieczny dostęp zdalny do zasobów przedsiębiorstw. W czasach, gdy większość pracowników wykonywa...
Accenture potwierdza wyciek danych

Accenture potwierdza wyciek danych

Accenture, obecny również w Polsce gigant usług profesjonalnych, potwierdziło naruszenie bezpieczeństwa danych po tym, jak haker przyznał się do kradzieży kodu źródłowego firmy. Accenture to przedsi...
FIFA i Broken Access Control. Jak konto bez uprawnień uzyskało dostęp do systemów Mistrzostw Świata 2026

FIFA i Broken Access Control. Jak konto bez uprawnień uzyskało dostęp do systemów Mistrzostw Świata 2026

16 czerwca, czyli zaledwie pięć dni po rozpoczęciu Mistrzostw Świata 2026, badaczka cyberbezpieczeństwa działająca pod pseudonimem „BobDaHacker” opisała na swoim blogu lukę odkrytą w systemach FIFA. Według...
Masowa kampania password spray wymierzona w Azure CLI

Masowa kampania password spray wymierzona w Azure CLI

Cyberprzestępcy prowadzą zakrojoną na szeroką skalę kampanię password spray, wymierzoną w środowiska Microsoft 365 za pośrednictwem Azure CLI, o czym informuje Huntress – firma zajmująca się cyberbezpiec...
Nowy exploit zero-day dla Windows. Microsoft znów pod presją

Nowy exploit zero-day dla Windows. Microsoft znów pod presją

Środowisko bezpieczeństwa IT ponownie żyje informacjami o ujawnieniu exploita typu zero-day dla systemów Microsoft Windows. Tym razem badacz bezpieczeństwa znany pod pseudonimem Chaotic Eclipse opub...