W tym artykule dowiesz się jak szybko i w niezauważony sposób można sprawdzić zabezpieczenia środowiska Active Directory w kontekście zdobycia poświadczeń użytkowników i ich haseł na komputerach. Pokażemy fantastyczne narzędzie SprayKatz używane przez zespoły Blueteam lub Redteam oraz Security Officerów/CISO, którzy chcą ocenić możliwości ruchów bocznych lub eskalacji uprawnień w środowiskach Active Directory.
Wprowadzenie
Być może wiesz, że zrzut skrótu haseł kont użytkowników Windows lub w Active Directory jest bardzo przydatną metodą do wykonywania ruchu bocznego lub eskalacji uprawnień w sieci. W tym artykule opisaliśmy i pokazaliśmy różne metody na wykonanie zrzutu pamięci z krytycznego procesu LSASS.EXE i omówiliśmy sposob wydobycia z niego haseł użytkowników (hashy).
Jeśli Twoja firma korzysta z Active Directory, ta metoda najprawdopodobniej będzie używana przez wiele współczesnych szkodliwych programów, które zawierają niektóre fragmenty kodu z bardzo znanych narzędzi, takich jak na przykład Mimikatz. Inny problem, który dotyka nadal wiele firm to współdzielone hasło administratora lokalnego, takie samo na wielu komputerach. Stwarza to duże ryzyko i ułatwia pracę cyberprzestępcom, którzy za pomocą opisywanej poniżej metody będą mogli w łatwy sposób skompromitować całe środowisko.
W tym artykule zbadamy narzędzie Spraykatz w wersji (v0.9.8), które może pomóc w różnych sytuacjach i być wykorzystane przez różne osoby / zespoły zajmujące się cyberbezpieczeństwem:
- Security Officer, CISO: Może użyć narzędzia w celu pokazania pracownikom wewnątrz firmy i ich edukacji w jaki sposób złośliwe oprogramowanie może wykorzystywać skróty ich haseł i przyczynić się do powstania problemów związanych z bezpieczeństwem.
- BlueTeam: Może użyć narzędzia w celu oceny świadomości i bezpieczeństwa w firmie pod względem możliwości zrzutu skrótów haseł użytkowników i wykrywalności tej metody oraz czy niektóre złośliwe oprogramowanie lub atakujący mogą użyć tej metody, aby znaleźć i przechwycić konta uprzywilejowane na stacjach roboczych.
- RedTeam: Może użyć narzędzia w celu przeszukania stacji roboczych i odnalezienia kont uprzywilejowanych, na których będą mogli wykonać eskalację uprawnień.
Czym jest SprayKatz?
Spraykatz to narzędzie autorstwa Lydéric Lefebvre umożliwiające uzyskanie poświadczeń użytkowników na komputerach z systemem Windows i dużych środowiskach Active Directory. Podczas uruchomienia próbuje zdalnie logować się na komputery i parsować zrzuty pamięci LSASS, aby w jak największym stopniu uniknąć wykrycia przez oprogramowanie antywirusowe. Jego nazwa kojarzy nam się trochę z narzędziem do przechwytywania poświadczeń w systemie Windows MimiKatz autorstwa Benjamina Delpy. Nic w tym dziwnego, bo oprócz podobieństwa w nazwie narzędzie SprayKatz korzysta z modułu Mimikatz do dekodowania plików dump, które wcześniej ściąga lokalnie z komputerów w sieci. Oprócz Mimikatz’a korzysta z nieznacznie zmodyfikowanych części następujących narzędzi (moduły):
- Impacket
- Pypykatz
- Pywerview
- Sysinternals
- hackndo
Instalacja Spraykatz
Narzędzie do uruchomienia wymaga języka Pythona w wersji większej niż 3.
W celu instalacji narzędzia na systemie operacyjnym Linux konieczne będzie wykonanie następujących komend.
Zdobycie uprawnień root:
sudo su
Wykonanie aktualizacji zainstalowanych pakietów:
apt update
Zainstalowanie pythona i nmap:
apt install -y python3.6 python3-pip nmap
Pobranie z github narzędzia wraz z wszystkimi zależnymi modułami:
git nmap git clone –recurse-submodules https://github.com/aas-n/spraykatz.git
Instalacja SprayKatz oraz pakietów zależnych zgodnie z wymaganiami:
cd spraykatz
pip3 install -r requirements.txt
Jak korzystać ze Spraykatz?
Spraykatz jest bardzo prosty w użyciu. Abyśmy mogli z niego skorzystać, musimy określić w jego linii wywołania następujące parametry:
- Konto do przeprowadzenia skanowania – musimy użyć konta z uprawnieniami lokalnego administratora na docelowym systemie lub konta użytkownika Active Directory, które posiada członkostwo w lokalnej grupie administratorów.
- Adres IP komputera lub zakres jaki chcemy przeskanować
Wymagane parametry
Przełączniki | Opis |
-u, –username | Nazwa użytkownika, na którym będzie wykonywane skanowanie. Użytkownik musi posiadać uprawnienia administratora na docelowych komputerach w celu zdalnego wykonania na nich kodu. |
-p, –password | Hasło użytkownika lub jego NTLM hash podany w formacie LM:NT |
-t, –targets | Adres IP komputera I/lub zakres adresów IP. Można wskazać plik zawierający listę (po jednym IP w linii), lub podać je w jednej linii po przecinku. |
Opcjonalne parametry
Przełączniki | Opis |
-d, –domain | Nazwa domeny użytkownika (jeśli używamy konta z domeny Active Directory). Jeśli konto nie jest z domeny można użyć zamiast jej nazwy kropki “- d .”. |
-v, –verbosity | Tryb logowania operacji {warning, info, debug}. Domyślny == info. |
Scenariusz – skanowanie komputerów w domenie i pozyskanie hashy
UWAGA! Użycie narzędzia w środowisku produkcyjnym może nieść za sobą niespodziewane konsekwencje. Nie odpowiadamy za jego kod ani skutki jakie może wywołać jego działanie w środowisku sieciowym. Używasz go na własną odpowiedzialność.
W naszym przykładzie skanowania użyjemy następujących ustawień:
- Domena Active Directory: Kapitan
- Konto, które ma uprawnienia administratora lokalnego na komputerze docelowym: Administrator. Poszliśmy tutaj na skróty, lecz konto z lokalnymi uprawnieniami administracyjnymi można zdobyć w różny sposób, który opisywaliśmy wielokrotnie na naszym portalu.
- Hasło konta: P@ssw0rd
- Zakres komputów do przeskanowania: podsieć 172.16.215.0/24
./spraykatz.py -u Administrator -p P@ssw0rd -d Kapitan -t 172.16.215.0/24
W wyniku skanowania SprayKatz rozpoznał w domenie 2 komputery i wykonał na nich zrzut hashy haseł użytkowników (w tym kont komputerów):
Wynik przedstawia poniższy ekran.
Podsumowanie
Narzędzie SprayKatz pomaga zrozumieć problem bezpieczeństwa związany z hashami haseł użytkowników. Wykorzystuje metody pozwalające zdobyć inne poświadczenia użytkowników na komputerach w sieci. Jeśli cyberprzestępca pozyska hasło lub jego skrót (hash) uprzywilejowanego użytkownika w Active Directory lub nawet użytkownika, który posiada lokalne uprawnienia administracyjne na stacji roboczej, będzie mógł w łatwy i niezauważalny sposób dla oprogramowania antywirusowego wykonać ruch boczny i eskalację uprawnień na innych komputerach w sieci. Za jego pomocą można skompromitować całą sieć w firmie, pod warunkiem, że nie wdrożyła ona odpowiednich mechanizmów do ochrony i zabezpieczeń.