---
title: BloodHound
description: "Cartographier les relations Active Directory et trouver le chemin le plus court vers Domain Admin."
category: ad
kind: tool
tags: [ad, graph, acl, kerberos, privesc]
level: intermediate
updated: 2026-11-07
order: 3
aliases: ["sharphound", "bloodhound-python"]
---

## Collecter

```bash
# Linux, sans toucher aux DC (LDAP + SMB)
bloodhound-python -u user -p 'Password' -d domain.local \
  -ns 10.10.10.10 -c All --zip

# Avec hash
bloodhound-python -u user --hashes :NTHASH -d domain.local -ns 10.10.10.10 -c All

# Windows : SharpHound
SharpHound.exe -c All --zipfilename bh.zip
SharpHound.exe -c All,GPOLocalGroup --LdapUsername user --LdapPassword Password
```

| Méthode | Bruit | Remarque |
| --- | --- | --- |
| `-c All` | Élevé | Sessions, ACL, trusts, GPO |
| `-c DCOnly` | Faible | LDAP uniquement, pas de sessions |
| `-c Session` | Moyen | Sessions locales |
| `-c ACL` | Faible | Relations ACL |

## Importer

```text
1. Démarrer neo4j : neo4j console
2. Lancer BloodHound et se connecter (bolt://localhost:7687)
3. Upload Data → sélectionner le zip ou les JSON
4. Attendre la fin de l'ingestion
```

## Requêtes intégrées

- **Shortest Paths to Domain Admins** — le chemin le plus court.
- **Kerberoastable Users** — comptes avec SPN.
- **AS-REP Roastable Users** — comptes sans pré-auth.
- **Unconstrained Delegation** — machines et comptes dangereux.
- **Find Principals with DCSync Rights** — droits de réplication.
- **Shortest Path from Owned Principals** — depuis les comptes compromis.

## Cypher utiles

```cypher
// Utilisateurs Kerberoastables
MATCH (u:User {hasspn:true})
RETURN u.name, u.displayname, u.serviceprincipalnames

// Admins locaux d'une machine
MATCH p=(u:User)-[:AdminTo]->(c:Computer {name:"DC01.DOMAIN.LOCAL"})
RETURN p

// Chemins depuis un compte possédé
MATCH p=shortestPath((u:User {owned:true})-[*1..]->(g:Group {name:"DOMAIN ADMINS@DOMAIN.LOCAL"}))
RETURN p

// ACL exploitables
MATCH p=(u:User)-[r:GenericAll|WriteDacl|ForceChangePassword|AddMember]->(t)
RETURN p, type(r)
```

> [!TIP]
> Marque tes comptes compromis comme « Owned » (clic droit) et relance **Shortest Path from Owned Principals**. C'est la vue qui transforme une collection en plan d'attaque.

## Opsec

- `Session` interroge les machines via SMB : très visible et peut déclencher les alertes.
- `DCOnly` suffit pour les ACL et Kerberos, sans toucher aux postes.
- Les requêtes LDAP massives sont journalisées (Event 4662 côté DC).
- Évite de collecter depuis un compte à privilèges si un compte utilisateur suffit.

> [!WARNING]
> Le graphe contient des données sensibles (relations, sessions, délégations). Chiffre la base Neo4j et supprime les exports après la mission. Ne partage jamais un zip BloodHound avec des credentials en clair.
