Zapytanie o informacje systemowe za pomocą WMI

https://chacker.pl/

Wiedząc, że możemy zapytać o informacje systemowe za pomocą WMI, możemy chcieć dowiedzieć się kilku rzeczy o naszym systemie docelowym. Na przykład możemy chcieć wiedzieć, kto jest zalogowany interaktywnie, aby sprawdzić, czy istnieje ryzyko, że zostaniemy złapani. W tym laboratorium użyjemy dwóch różnych zapytań WMI, aby zobaczyć, który użytkownik lub użytkownicy są zalogowani w systemie docelowym. Aby zapytać WMI, musimy zbudować zapytanie WMI Query Language (WQL), które uzyska informacje, których szukamy. WQL wygląda podobnie do Structured Query Language (SQL), który jest używany do zapytań do bazy danych. Aby zbudować nasze zapytanie, musimy jednak dowiedzieć się trochę więcej o tym, jak działa WMI. Najważniejszą rzeczą, którą musimy wiedzieć, jest klasa, którą będziemy pytać. Sekcja „Do dalszej lektury” na końcu tego rozdziału zawiera wpis, który wskazuje na listę klas firmy Microsoft, do których można uzyskać dostęp za pośrednictwem WMI. Jednak w tym ćwiczeniu przyjrzymy się tylko dwóm. Pierwszą klasą, którą będziemy kwerendować, jest klasa win32_logonsession.1 Ta klasa zawiera informacje o sesjach, do których się zalogowano, typie wykonanego logowania, czasie rozpoczęcia i innych danych. Najpierw ułóżmy zapytanie, a następnie przyjrzymy się, jak wykonać to zapytanie za pomocą WMI:

Używając tego zapytania wybieramy dwa różne elementy danych z klasy win32_logonsession. Pierwszy to LogonType, który zawiera informacje o typie wykonywanego logowania. Drugi, LogonId, to wewnętrzny numer identyfikacyjny sesji logowania. Aby wykonać to zapytanie, musimy użyć klienta WMI. Kali ma dwóch różnych klientów dla zapytań WMI: pierwszy to pth-wmic, a drugi jest częścią skryptów Impacket. Klient pth-wmic jest łatwiejszy do skryptowania, więc skupimy się na nim. Składnia dla pth-wmic jest podobna do składni narzędzia Winexe, którego używaliśmy w poprzednim laboratorium. Określimy użytkownika i hosta w ten sam sposób, a następnie dodamy nasze zapytanie WQL na końcu polecenia:

Po wykonaniu polecenia zostaną zwrócone informacje o sesjach logowania:

Patrząc na wynik naszego zapytania, widzimy sesję i typ logowania. Tutaj pokazano kilka typów logowania, więc skąd wiemy, które sesje nas interesują? Aby to ustalić, zapoznaj się z Tabelą, która pokazuje różne typy logowania i ich znaczenie.

Teraz, gdy wiemy, co oznaczają typy, ograniczmy nasze zapytanie tylko do logowań typu 2 i typu 10. Powinno nam to powiedzieć, jakich identyfikatorów logowania musimy szukać, aby znaleźć interaktywne logowania użytkowników.

Nadal widzimy wiele różnych logowań. Przyjrzyjmy się trzem z nich: jednemu z serii 30K, jednemu z serii 50K i jednemu z serii „ponad 1 milion”. Sesje logowania są mapowane na użytkowników w tabeli win32_loggedonuser. Niestety, trudno jest to przeszukać za pomocą WQL pod kątem konkretnych identyfikatorów logowania, ponieważ wartości są ciągami znaków, a nie liczbami całkowitymi, więc napiszemy skrypt z pth-wmic i egrep, aby uzyskać pożądane wartości. Każdy system będzie miał inne wartości, więc pamiętaj, aby użyć wartości LogonID otrzymanych z systemu zamiast naszych wartości dla egrep, jak pokazano tutaj:

Powinniśmy zobaczyć zwrócone tylko wybrane wartości LogonID:

W naszym przykładzie widzimy trzech użytkowników: target, DWM-1 i DWN-2. DWM i UMFD to konta oparte na sterownikach, więc możemy je bezpiecznie zignorować. Możesz zobaczyć inną listę, w zależności od tego, kiedy uruchomisz polecenie. Jeśli chcesz mieć pewność, że użytkownik docelowy się pojawi, powinieneś upewnić się, że jest zalogowany w systemie docelowym przed uruchomieniem tego polecenia. Widzimy tutaj pewien wzór, więc spójrzmy tylko na procesy, które nie są lokalne dla WS20:

Domena, nazwa użytkownika i LogonId powinny zostać zwrócone dla każdego użytkownika, który nie jest lokalny w systemie:

Na koniec możemy zobaczyć sesje zalogowane do pola. Wszystkie są użytkownikami docelowymi w domenie GHH. Używając WMI ustaliliśmy, że użytkownik docelowy jest zalogowany interaktywnie do systemu. Dlatego jeśli zrobimy coś, co spowoduje wyskoczenie okna lub zakłócenia, możemy zostać wykryci.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *