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: [email protected]
  • Zakres komputów do przeskanowania: podsieć 172.16.215.0/24

./spraykatz.py -u Administrator -p [email protected] -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ń.