BloodHound to jedno z pierwszych narzędzi dla hackerów i pentesterów, które opisaliśmy szczegółowo na Kapitanie Hacku – link. Służy do analizy i wizualizacji ścieżek ataku w domenie Active Directory. Jest więc doskonałym narzędziem zarówno dla zespołów Red Team jak i Blue Team, gdyż pozwala wykryć luki w zabezpieczeniach, uprawnieniach i konfiguracji domeny Windows.
Historia BloodHound’a sięga 2016 roku, kiedy to Andy Robbins stworzył go wraz ze swoim zespołem. Od tego czasu BloodHound był używany przez atakujących i obrońców do identyfikowania i analizowania ścieżek ataków w lokalnych środowiskach Active Directory. Teraz twórcy ogłosili wydanie nowej wersji – BloodHound 4.0: The Azure Update. Jak sama nazwa mówi, zawiera ona pełną analizę Azure AD, wspomaga zrozumienie jego architektury z wyszczególnieniem konkretnych ataków opartych o błędy w konfiguracji.


Ścieżki ataku w Azure AD

W tej wersji BloodHound wprowadzono 10 nowych typów węzłów na grafie przejść. Są to obiekty z Azure Active Directory takie jak: tenants, Azure users, Azure security groups, Apps, Service Principals, Subscriptions, Resource Groups, Virtual Machines, Devices and Key Vaults.
Wszystkie widoczne na obrazku poniżej:

Wprowadzono również 14 nowych krawędzi do łączenia obiektów, które obrazują konkretne słabości w połączeniach między węzłami.

Nowe węzły i krawędzie oznaczają znalezienie ścieżek ataku, które obejmują nadużycia w platformie Azure. Dzięki temu, jesteśmy w stanie wskazać ścieżkę ataku, która zaczyna się od użytkownika o niskich uprawnieniach i kończy się posiadaniem praw administratora globalnego dla tenantu lub inną ścieżkę ataku, która kończy się na maszynie wirtualnej hostowanej na platformie Azure. Wiele prawdziwych ataków, które zaobserwowaliśmy, nadużywa obiektów takich jak aplikacje oraz Service Principals.

Jedna z funkcji środowiska Azure sprawia, że ta wersja BloodHound jest jeszcze bardziej ekscytująca: Azure AD Connect. Opcja ta umożliwia organizacjom synchronizowanie podmiotów głównych z domen lokalnych z tenantem platformy Azure. Umożliwia również dodawanie użytkowników lokalnych do grup w chmurze, przypisywanie im ról administratora Azure, posiadanie aplikacji na Azure oraz kontrolowanie obiektów AzureRM, takich jak maszyny wirtualne i magazyny kluczy.
Ponadto Hybrid AD Join umożliwia tworzenie ścieżek ataku zaczynających się w Azure AD, a kończących w Active Directory lokalnym. Możliwości konfiguracyjne są ogromne. Można również znaleźć ścieżki ataku, które zaczynają się w lokalnej usłudze AD, przechodzą do platformy Azure, a następnie wracają do lokalnego AD, aby uzyskać dostęp do celu.

Pełną listę nowych obiektów, krawędzi i możliwości ataków można znaleźć w zaktualizowanej dokumentacji BloodHound.


Odświeżone GUI

GUI BloodHound zostało całkowicie odświeżone, zachowując znaną funkcjonalność i podstawowy wygląd. Poniżej zaktualizowany interfejs GUI BloodHound w trybie ciemnym, pokazujący najkrótsze ścieżki ataku w celu kontrolowania dzierżawy platformy Azure.

Wprowadzono również kilka funkcjonalnych aktualizacji interfejsu GUI, wykraczających poza przesyłanie i analizę danych platformy Azure. Model postępu przesyłania został zaktualizowany, aby wyświetlić wszystkie przesłane elementy w podobny sposób do tego, jak wymiana plików w repozytoriach:


Nowy kolektor danych – AzureHound

AzureHound to nowy moduł zbierający dane dla BloodHound, który w szczególności zbiera dane z tenanta platformy Azure i subskrypcji, które ufają tej dzierżawie. AzureHound i starszy SharpHound zbierają dane z różnych źródeł (chmurowo i lokalnie), ale ich dane wyjściowe są ze sobą w pełni kompatybilne. Można więc importować dane z AD on-premises i Azure AD do tej samej bazy danych i wyświetlać je na wspólnym grafie, co jest potężnym narzędziem, nawet dla samych administratorów tych usług.

Domyślnie każdy użytkownik, który może uwierzytelnić się w tenancie platformy Azure, może zbierać informacje o rolach administratora, użytkownikach, grupach, aplikacjach, kontach automatyzacji, urządzeniach i jednostkach usługowych. Ale domyślnie użytkownicy nie mają możliwości czytania informacji o subskrypcjach ani niczym co w nich zawarte. Poniżej na schemacie przedstawiono prosty podział uprawnień dla zwykłych userów:

Korzystanie z kolektora AzureHound jest bardzo proste. Najpierw należy otworzyć nowe okno PowerShell jako administrator, zainstalować moduły Microsoft Azure i uwierzytelnić się w docelowym teanancie Azure za pomocą komendy:
Connect-AzureAD

Następnie wywołać moduł BloodHound za pomocą poleceń:
– .\AzureHound.ps1
– Invoke-AzureHound


Wynik powinien wyglądać mniej więcej tak:

AzureHound zbierze dane z tenanta i wszystkie subskrypcje, które użytkownik może odczytać, a następnie zapisze plik ZIP ze wszystkimi danymi. Następnie można po prostu przeciągnąć i upuścić ten plik do GUI BloodHound, aby przesłać dane do bazy danych.
Czas trwania procesu zbierania danych zależy od wielkości tenanta. Twórcy narzędzia wykonali należyte testy wydajnościowe swoich skryptów dla około 9 000, przez 105 000, do ponad 240 000 użytkowników. Wykres przedstawia, jak długo AzureHound zajęło uruchomienie w każdej z tych środowisk:


Podsumowanie i przyszłość

Cieszymy się, że narzędzia takie jak BloodHound są mocno rozwijane i wychodzą poza analizę Active Directory on-premises, gdyż w przyszłość środowiska chmurowe czekają na nas wszystkich. Podsumowując nowe funkcje – dla obrońców interfejs GUI BloodHound oferuje łatwiejszą i skuteczniejszą funkcję audytu, aby w pełni zrozumieć, którzy i ilu userów kontroluje dany obiekt – lub może przejąć kontrolę poprzez wykonanie ścieżki ataku.

Jest jeszcze kilka węzłów i krawędzi związanych z platformą Azure, które twórcy chcą wkrótce dodać, w tym konta automatyzacji i, jeśli to możliwe, zbieranie sesji użytkowników z maszyn wirtualnych.

Podziel się z innymi tym artykułem!