Her følger en beskrivelse af hvad der skal til for at installere BloodHound i Kali Linux.
Hvad er BloodHound?
BloodHound er en webapplikation som er baseret på Javascript, Linkurious og Electron og som stikker snablen i en Neo4j database. Data populeres med en PowerShell ingestor ved navn SharpHound.
BloodHound tegner en graph som visualiserer de, af og til, utilsigtede relationer som findes mellem objekter i et Active Directory Domain Services miljø. Personer som ønsker at kompromittere et AD miljø kan bruge BloodHound til at identificere de korteste veje frem mod et kompromitteret domæne. Vejene ville ellers have været nærmest umulige eller meget svære at identificere. Personer som står for at forsvare et AD kan bruge BloodHound til at afdække de samme veje frem til kompromis. BloodHound er derfor et værktøj som bruges af både angribere og forsvarere, men nok mest det første.
Installation
Installation af BloodHound (læs: Neo4j) er en hel del lettere end det engang var. Nedenstående fremgangsmåde er testet med Kali 2022.4.
apt install bloodhoundHerefter installeres BloodHound og dens database.
neo4j consolePå denne måde startes Neo4j og næste step er at skifte password på den. Åben en webbrowser og gå til http://localhost:7474 – log her ind med neo4j som både brugernavn og password. Skift til et andet password.
bloodhoundÅben BloodHound gui. DB Username og DB Password er det som netop er sat i trin forinden dette. Når dette er gjort er BloodHound klar til at modtage data.
BloodHound kan ikke enumerere data i sig selv. Der skal bruges en ingestor, og til Windows hedder denne SharpHound. Ingestor vil generere nogle JSON filer som zippes op. Hvis man er doven, kan man bruge den ingestor som findes i WinPwn pakken, men ellers er det bare et powershell modul med cmdlet Invoke-BloodHound. Ingestor behøver ikke andet end domain user privilegier.
Når man har lavet sin enumerering af AD domænet og har sine JSON filer eksporteret ud, så kan zip filen de kommer i bare trækkes og slippes ind i BloodHound interface. Neo4j vil dermed gå i gang med at importere data.

Når data er importerede kan man til en start prøve at benytte de standard queries der ligger i BloodHound. Med dem kan man blandt andet finde ud af hvilke konti der er kerberoastable eller AS REP roastable. Query ”Find Shortest Paths to Domain Admins” er særlig potent, da den viser mulige angrebsstier hen mod PC’er hvor en højt privilegeret bruger har været logget på, og hvor der formentlig kan laves et lsass dump for at komme nærmere målet. Den vil også vise for svagt satte permissions på AD brugere og grupper, hvor permissions som WriteDacl og GenericAll kan drille og give en angriber alt for mange tilladelser til at hoppe fra asset til asset. Ydermere, hvis admins i domænet har for vane at logge på alle steder, inklusive på workstations, med højt privilegerede konti, så er det ofte en relativt smal sag med BloodHound at finde en sti der kan udnyttes og dermed opnå fuld kompromittering af Active Directory domænet.

Ovenfor er et screenshot af en graf i BloodHound. Det er på query “Find Shortest Paths to Domain Admins”. Der er zoomet så langt ud at labels ikke er synlige så jeg slap for at redigere billedet, men nederst til højre, med skydeskiven på, er Domain Admins gruppen, og alle de grønne ikoner er brugerkonti, mens de gule er servere og de orange er OU’er. Der kan zoomes på billedet. Hvert enkelt element kan der klikkes på så der kommer en flyout med flere detaljer, og hver enkelt relation mellem elementerne er beskrevet.
Som man kan se på billedet er der et antal veje at nå frem til domain admin i det aktuelle domæne, og denne information er derfor nyttig for både dem der angriber og dem der forsvarer og virkelig noget man bør kigge på en gang imellem. Afslutter denne gang med at nævne at danske Lars Karlslund har lavet en tool som har en lignende funktionalitet ved navn Adalanche. Det er mere “self-contained” end BloodHound+Sharphound+Neo4j og værd at kigge nærmere på.
