# BloodHound

> Bloodhound allowed attackers to visualise the AD environment in a graph format with interconnected nodes. Each connection is a possible path that could be exploited to reach a goal.

First, we need to use `Sharphound`, with it, we extract (obtain) the data, then used by `Bloodhound` to analyze graphically.

> * `Sharphound.ps1` - PowerShell script for running Sharphound. However, the latest release of Sharphound has stopped releasing the Powershell script version. This version is good to use with RATs since the script can be loaded directly into memory, evading on-disk AV scans.
> * `Sharphound.exe` - A Windows executable version for running Sharphound.
> * `AzureHound.ps1` - PowerShell script for running Sharphound for Azure (Microsoft Cloud Computing Services) instances. Bloodhound can ingest data enumerated from Azure to find attack paths related to the configuration of Azure Identity and Access Management.

## Install BloodHound & Neoj4

{% embed url="https://github.com/SpecterOps/BloodHound?tab=readme-ov-file#deploy-bloodhound-ce" %}

```bash
# Install Docker Desktop or CLI.
mkdir /opt/bloodhound; cd !$
wget https://raw.githubusercontent.com/SpecterOps/BloodHound/refs/heads/main/examples/docker-compose/docker-compose.yml
sudo docker compose up --build
# Locate the randomly generated password in the terminal output of Docker Compose.
# Navigate to http://localhost:8080/ui/login. Login with a username of admin and the randomly generated password from the logs.
```

## Downloading compatible SharpHound version with our BloodHound

* Go to bloodhound GUI
* Login
* Settings (⚙)
* Download Collectors
* "Download SharpHound v\<YOUR\_VERSION> (.zip)"
* Uncompress the .zip
* Upload the SharpHound file to the victim

## Executing SharpHound.exe

```powershell
SharpHound.exe --CollectionMethods All --Domain za.tryhackme.com --ExcludeDCs
.\SharpHound.exe --CollectionMethods All --Domain za.tryhackme.com --ExcludeDCs --ZipFileName loot.zip
```

> * CollectionMethods - Determines what kind of data Sharphound would collect. The most common options are Default or All. Also, since Sharphound caches information, once the first run has been completed, you can only use the Session collection method to retrieve new user sessions to speed up the process.
> * Domain - Here, we specify the domain we want to enumerate. In some instances, you may want to enumerate a parent or other domain that has trust with your existing domain. You can tell Sharphound which domain should be enumerated by altering this parameter.
> * ExcludeDCs -This will instruct Sharphound not to touch domain controllers, which reduces the likelihood that the Sharphound run will raise an alert.

{% embed url="https://bloodhound.readthedocs.io/en/latest/data-collection/sharphound-all-flags.html" %}

## Executing SharpHound.ps1

```powershell
. .\SharpHound.ps1
Invoke-Bloodhound -CollectionMethod All -Domain za.tryhackme.com -ExcludeDCs -ZipFileName loot.zip
```

## Feeding BloodHound with the collected data

* Move the .zip file to attacker machine.
* BloodHound GUI.
* Login.
* Settings (⚙).
* Administration.
* File Ingest.
* Upload File(s).
* Upload the .zip file and wait til the Complete status appears.

Then:

* Group Management.
* Choose an object and "Open in Explore"

Or simply go to "Explore" and search things.



