BH

Seznámení s Bloodhound

23.10.2021 | Tag Bezpečnost

Bloodhound je skvělý nástroj pro mapování Active Directory. Dokáže vizuálně zobrazit vazby mezi uživateli, skupinami, počítači a vykreslí kompletní mapu AD infrastruktury. Což je úžasná pomoc jak pro správce, tak pro útočníky.

Článek bude mimo popisu instalace jen takové letmé seznámení se schopnostmi Bloodhound, protože má testovací Active Directory je docela bída. Nedokážu vytvořit nějaké složitější mapy, ale i tak by to mohlo pro ukázku síly tohoto nástroje stačit. Spuštění Bloodhound nad AD může správcům pomoci zmapovat zapomenuté účty a skryté vazby, které mohou vést až k administrátorským právům tam, kde by to nikdo nečekal. Útočník zase získá velice rychle a snadno přehled o tom, kudy se nejsnáze dostat k domain adminovi.

Pro instalaci Bloodhound se mi nakonec nejvíc osvědčil Kali Linux jako podklad. Díky Kali se Bloodhound dá nainstalovat z repositáře a uchození je tak velmi snadné. První příkaz v Kali tedy bude sudo apt install bloodhound. Tím se nám nainstaluje Bloodhound samotný i neo4j databáze, kterou Bloodhound potřebuje. Následně pomocí sudo neo4j console Neo4j spustíme.

sudo apt install bloodhound

sudo neo4j console


Hound01

Z výpisu konzole po zavolání neo4j uvidíme URL adresu (http://localhost:7474), kam přes prohlížeč vlezeme pro nastavení loginu k databázi. Tenhle login nám později poslouží k přihlášení do Bloodhound. Prvotní přihlášení k databázi je neo4j/neo4j.

Hound02
Hound025

Bloodhound už můžeme také klidně spustit pomocí sudo bloodhound. Načte se tak GUI s přihlašovacím oknem, kam přijde nový neo4j login. Prozatím bude Bloodhound prázdný, data se teprve musí vytěžit.

sudo bloodhound


Hound03

Pak budeme potřebovat nějaký kolektor dat. Oficiální je Sharphound, který však slouží pro Windows platformu. Další varianta, která sice není oficiální, ale funguje, je BloodHound.py. Ten se dá spustit na Linux platformě, což nyní potřebujeme. Nainstaluje se pomocí sudo pip install bloodhound.

sudo pip install bloodhound

BloodHound.py i Sharphound umožňují vytěžit data z AD, aniž by podkladový stroj byl sám členem Active Directory. Zároveň k vytěžení dat není potřeba administrátorský účet. Když to vezmeme z pohledu útočníka, tak mu opravdu ve výsledku stačí usídlit se v síti, odkud je vidět na řadič, a mít k dispozici běžný uživatelský AD účet. U té varianty s Kali jako podkladem se mi líbí, že má rovnou prostředky k další podvratné činnosti při ruce :).

Pokud následně po instalaci zavoláme bloodhound-python bez parametrů, objeví se nápověda k jednotlivým argumentům.

Hound035

Níže už je příkaz s parametry pro vytěžení domény. Je potřeba login uživatele, jeho heslo, adresa řadiče a doména. Poslední parametr definuje, co vše sesbírat.

bloodhound-python -u uzivatel -p heslo -ns nameserver -d domena.neco -c All


Hound04

Když se bokem podíváme na uživatele Karla Vomáčku, přes kterého se AD vytěžilo, zjistíme, že opravdu z pohledu AD je to jen běžný uživatel.

Hound045

Příkaz nám vyhodí několik souborů, které stačí přetáhnout do GUI Bloodhound. Budou v cestě, odkud se bloodhound-python pustil. Doba běhu záleží na velikosti AD. U mé testovací domény s pár uživateli to byla chvilka, u komplexní AD to může fakt trvat poměrně dlouho.

Hound05
Hound06

Tím tedy máme Bloodhound s daty. Před začátkem ukážu svou testovací Active Directory, aby bylo vidět, z čeho Bloodhound čerpá. Jde o opravdu maličký datový základ s pár uživateli čistě pro test.

Hound08

Níže už je jeden z pohledů Bloodhound na mou doménu. Jde o výstup z query vykreslující cestu k doménovému administrátorovi. Je vidět, že mimo jiné jsou doménovými administrátory účty jan.novak a print.service díky členství v nějakých skupinách, které jsou dále členy skupiny domain admins. Tohle je ještě velice jednoduché, ale u velkých a složitých struktur AD jsou tyto vazby bez vizualizace vcelku těžko dohledatelné. Běžně jsou v AD zapomenuté objekty, které byly potřeba v historii a už se neodstranily.

Hound09

V Bloodhound je možné psát vlastní query podle potřeby, ale v základu jsou mnohé query rovnou k dispozici. Psaní vlastních query je věc, kterou jsem zatím neovládla, ale ty předpřipravené queries na ledacos stačí. V GUI je navíc možné vyhledávat jednotlivé objekty a nechat si vypsat jejich vlastnosti.

Hound10

Bloodhound samotný dokonce při hledání objektu napomáhá. V každém objektu se dají najít zajímavé informace včetně stavu expirace hesla.

Hound11
Hound12

To by tedy bylo k seznámení s Bloodhound vše. Ráda bych se dále dostala k psaní vlastních query a ke spuštění Bloodhound nad nějakou pěknou reálnou doménou, tak pokud se zadaří, napíšu pokračování. Pěkný zdroj informací k Bloodhound je Youtube, kde je spousta ukázek reálného použití nad různě členitými doménami.