Krótko o narzędziu


Bloodhound to narzędzie służące do wizualizacji i analizy powiązań w Active Directory. Dla atakującego jest niezastąpioną pomocą do znajdowania ścieżki ataku na najbardziej chronione zasoby w sieci. Wystarczy tylko wybrać cel, a program przeanalizuje uprawnienia, grupy, użytkowników, hosty, listy ACL i w postaci grafu wskaże optymalną drogę do celu. Dla praktyka defensywnego jest równie przydatne, gdyż wskaże i pozwoli wyeliminować niechciane ścieżki dostępu do chroniących zasobów w organizacji. BloodHound korzysta z teorii grafów i z grafowej bazy danych zintegrowanej dzięki pakietowi neo4j. Kod źródłowy oraz rozbudowana strona wiki dostępna jest na repozytorium GitHub.

Pod płaszczem Bloodhound’a kryje się zestaw modułów Powershell’a odpowiedzialnych za pobieranie danych z Active Directory. Są to biblioteki PowerSploit oraz Invoke-UserHunter. Dzięki nim algorytm najpierw tworzy mapę osób w AD, które mają dostęp do danych komputerów, koncentrując się na członkostwie w grupach lokalnych administratorów, a następnie wylicza aktywne sesje i zalogowanych użytkowników na komputerach przyłączonych do domeny. Dane te zapisywane są do lokalnej bazy danych aplikacji neo4j i stanowią podstawę do budowania grafów i ścieżek ataku w interfejsie BloodHound.


Jak używać Bloodhound


Aby zebrać dane i zapisać je do plików CSV wystarczy uruchomić odpowiednią komendę z Powershell’a. W starszej wersji Bloodhounda nie mieliśmy opcji wyboru metody oraz zakresu pobieranych danych. Dla rozbudowanych domen czasami był to problem, gdyż odpytywanie całego AD trwało i pochłaniało zasoby. W nowszym skrypcie Bloodhound mamy możliwość sprecyzowania metody kolekcjonowania, co pozwala na rozgraniczenie na przykład uprawnień od aktywnych sesji. Poniżej przedstawiono kilka komend, za pomocą których zebrano informacje o domenie:

Pobranie informacji o domenie i zapisanie ich do plików CSV
Szczegółowe informacje o konkretnym obiekcie w AD

Kiedy dane zostaną zapisane do plików CSV można zaimportować je do aplikacji webowej i zacząć wizualizację. Sama obsługa narzędzia jest bardzo prosta. Wystarczy skonstruować wybrane zapytanie bądź wykorzystać któreś z przykładowych, a analityka zacznie działać i wyrysuje nam odpowiedni graf. Oprócz budowania zapytań mamy możliwość wyświetlenia szczegółowych informacji o konkretnym węźle w grafie (patrz obrazek obok). Węzłami są obiekty w AD takie jak użytkownik, grupa bądź komputer. Ciekawą opcją jest tworzenie ścieżki ataku. Podając węzeł początkowy i docelowy Bloodhound przeanalizuje dostępy do zasobów i wskaże najkrótszą ścieżkę zdobywania kolejnych uprawnień.


Podsumowanie


Bloodhound to niezwykle potężne narzędzie do mapowania luk w domenie Active Directory. Jednak czy da się w jakiś sposób przed nim obronić? Najprostszym sposobem ochrony przed tego typu rozpoznaniem AD jest posiadanie kontroli nad sposobem przyznawania praw dostępu do serwerów i usług. Microsoft rekomenduje stosowanie modelu najmniejszych wymaganych uprawnień (ang. principle of least privilege) w środowisku Active Directory. Z pewnością pozwoli to ograniczyć lub utrudnić ścieżki ataku na cenne zasoby w domenie.

Graf obrazujący powiązania między najcenniejszymi obiektami w domenie

Poniżej na filmie pokazaliśmy użycie BloodHound w celach rozpoznania domeny przez cyberprzestępce: