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

Uwaga! Trwa praktyczne wykorzystywanie krytycznej luki w systemach Fortinet!

Uwaga! Trwa praktyczne wykorzystywanie krytycznej luki w systemach Fortinet!

Święta, święta i po świętach. I dzisiaj, zamiast malować pisanki, piszemy o Fortinecie. Naszym „ulubionym” producencie firewallów, który pojawia się na portalu dość często. Nową okazję do publikacji dała...
Grupa ransomware ALP-001 twierdzi, że zaatakowała Polsat

Grupa ransomware ALP-001 twierdzi, że zaatakowała Polsat

W niedzielę wieczorem na zagranicznych serwisach newsowych poświęconych malware pojawiły się informacje o cyberataku na serwis Polsatu. Według doniesień za incydent odpowiada grupa ransomware ALP-001, która...
DarkSword – cichy zabójca iPhone’ów. Nowy exploit, który przejmuje kontrolę nad urządzeniem w kilka sekund

DarkSword – cichy zabójca iPhone’ów. Nowy exploit, który przejmuje kontrolę nad urządzeniem w kilka sekund

Powstał nowy, zaawansowany zestaw exploitów wymierzony w użytkowników iPhone’ów. Narzędzie o nazwie DarkSword pokazuje, że nawet platformy uznawane za jedne z najbezpieczniejszych mogą stać się celem...
WhatsApp jako wektor ataku – Microsoft ostrzega przed nową kampanią malware ukrytą w wiadomościach

WhatsApp jako wektor ataku – Microsoft ostrzega przed nową kampanią malware ukrytą w wiadomościach

Cyberprzestępcy po raz kolejny wykorzystują zaufanie użytkowników do popularnych komunikatorów. Najnowsze ostrzeżenie Microsoftu ujawnia zaawansowaną kampanię, w której złośliwe oprogramowanie jest rozsy...
Jak zmienić nieznane/zapomniane hasło Administratora na Windows?

Jak zmienić nieznane/zapomniane hasło Administratora na Windows?

W tym artykule pokażemy, jak możemy zmienić hasło administratora na komputerze posiadając do niego fizyczny dostęp. Artykuł ten można potraktować także jako przestrogę dla firm, które nie zaimplementowały jeszcze odpo...