# 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.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://lanzt.gitbook.io/cheatsheet-pentest/windows-things/active-directory-methodology/enumeration/bloodhound.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
