CertiHound - Énumération AD CS pour BloodHound
CertiHound est un outil d’énumération des services de certificats Active Directory (AD CS) qui collecte les modèles de certificats et la configuration des CA sur LDAP et les exporte au format compatible BloodHound CE. Il ajoute des nœuds PKI et des arêtes d’abus de certificats (les chemins d’attaque de style ESC1–ESC) à votre graphe BloodHound, afin que l’escalade de privilèges basée sur les certificats apparaisse aux côtés des chemins d’attaque AD classiques. Il comble l’écart entre l’abus ADCS de Certipy et la visualisation des chemins d’attaque de BloodHound.
Réservé aux évaluations autorisées. L’énumération d’AD CS nécessite des identifiants de domaine et une permission.
Installation
| Méthode | Commande |
|---|
| pip | pip install certihound |
| Depuis la source | git clone le dépôt, puis pip install -e . |
| Exigence | Accès LDAP au domaine ; BloodHound CE v6 pour visualiser |
| Vérifier | certihound --help |
Collecte des données AD CS
certihound -u analyst -p '***' -d example.local \
-dc dc01.example.local -o output/
| Drapeau | Objectif |
|---|
-u, --username | Utilisateur du domaine |
-p, --password | Mot de passe (ou hash/Kerberos) |
-d, --domain | Domaine cible |
-dc, --domain-controller | DC à interroger sur LDAP |
-o, --output | Répertoire de sortie pour JSON |
--ldaps | Utiliser LDAPS (636) |
La sortie est un ensemble de fichiers JSON que vous importez dans BloodHound CE.
Ce qu’il énumère
| Objet AD CS | Pourquoi c’est important |
|---|
| Autorités de certification | Configuration de l’inscription/CA, inscription web |
| Modèles de certificats | Le cœur des erreurs de configuration ESC |
| Droits d’inscription | Qui peut demander quels modèles |
| Drapeaux de modèle | ENROLLEE_SUPPLIES_SUBJECT, EKU, etc. |
| Permissions CA | Droits ManageCA / ManageCertificates |
Chemins d’attaque ESC surfacés
| ESC | Erreur de configuration |
|---|
| ESC1 | Le modèle permet au demandeur de fournir le sujet + EKU d’authentification |
| ESC2 | Modèle EKU polyvalent |
| ESC3 | Modèles d’agent d’inscription |
| ESC4 | ACL de modèle vulnérable (modèles inscriptibles) |
| ESC6 | EDITF_ATTRIBUTESUBJECTALTNAME2 sur la CA |
| ESC7 | Permissions CA vulnérables |
| ESC8 | Relais NTLM vers l’inscription web AD CS |
CertiHound code ces chemins comme des arêtes afin que BloodHound puisse tracer un chemin depuis un utilisateur à faible privilège vers l’administrateur de domaine à travers un abus de certificat.
Importation dans BloodHound CE
| Étape | Comment |
|---|
| 1 | Exécuter CertiHound pour produire JSON |
| 2 | Dans BloodHound CE, télécharger le JSON via l’interface d’ingestion/API |
| 3 | Les nœuds/arêtes PKI apparaissent dans le graphe |
| 4 | Interroger les chemins vers les cibles de haut niveau qui traversent AD CS |
Flux de travail courants
# Enumerate AD CS and load certificate attack paths into BloodHound CE
certihound -u audit -p '***' -d corp.local -dc dc.corp.local -o adcs/
# → upload adcs/*.json into BloodHound CE, then query
# "shortest path to Domain Admins" including PKI edges
# Combine with Certipy for the actual abuse once a path is found
CertiHound dans la boîte à outils AD CS
| Outil | Rôle |
|---|
| CertiHound | Énumérer AD CS → graphe BloodHound CE |
| Certipy | Énumérer et abuser ESC1–ESC17 |
| BloodHound | Visualiser/interroger les chemins d’attaque |
| NetExec | Collection AD plus large + relais |
Ressources