CertiHound - AD CS Enumeration for BloodHound Cheatsheet
CertiHound ist ein Active Directory Certificate Services (AD CS) Enumerationswerkzeug, das Zertifikatvorlagen und CA-Konfigurationen über LDAP sammelt und im BloodHound CE-kompatiblen Format exportiert. Es fügt PKI-Knoten und Zertifikatsangriffskanten (die ESC1–ESC-Angriffspfade) zu deinem BloodHound-Graphen hinzu, damit zertifikatbasierte Privilegiesteigerung neben den klassischen AD-Angriffspfaden erscheint. Es schließt die Lücke zwischen der ADCS-Missbrauchsfunktionalität von Certipy und der Angriffspfad-Visualisierung von BloodHound.
Nur für autorisierte Bewertungen geeignet. Die Enumeration von AD CS erfordert Domain-Anmeldedaten und Genehmigung.
Installation
| Method | Command |
|---|
| pip | pip install certihound |
| From source | git clone das Repo, dann pip install -e . |
| Requirement | LDAP-Zugriff auf die Domain; BloodHound CE v6 zum Anzeigen |
| Verify | certihound --help |
Collecting AD CS Data
certihound -u analyst -p '***' -d example.local \
-dc dc01.example.local -o output/
| Flag | Zweck |
|---|
-u, --username | Domain-Benutzer |
-p, --password | Passwort (oder Hash/Kerberos) |
-d, --domain | Ziel-Domain |
-dc, --domain-controller | DC zum Abfragen über LDAP |
-o, --output | Ausgabeverzeichnis für JSON |
--ldaps | Verwende LDAPS (636) |
Die Ausgabe ist ein Satz von JSON-Dateien, die du in BloodHound CE importierst.
What It Enumerates
| AD CS object | Warum es wichtig ist |
|---|
| Certificate Authorities | Enrollement/CA-Konfiguration, Web-Enrollement |
| Certificate templates | Das Herz von ESC-Fehlkonfigurationen |
| Enrollment rights | Wer kann welche Vorlagen anfordern |
| Template flags | ENROLLEE_SUPPLIES_SUBJECT, EKUs usw. |
| CA permissions | ManageCA / ManageCertificates Rechte |
ESC Attack Paths Surfaced
| ESC | Fehlkonfiguration |
|---|
| ESC1 | Vorlage erlaubt dem Enrollee, das Subjekt + Auth-EKU bereitzustellen |
| ESC2 | Any-Purpose-EKU-Vorlage |
| ESC3 | Enrollement-Agent-Vorlagen |
| ESC4 | Anfällige Vorlagen-ACLs (beschreibbare Vorlagen) |
| ESC6 | EDITF_ATTRIBUTESUBJECTALTNAME2 auf der CA |
| ESC7 | Anfällige CA-Berechtigungen |
| ESC8 | NTLM-Relay zu AD CS Web-Enrollement |
CertiHound kodiert diese als Kanten, damit BloodHound Pfade von einem Low-Priv-Benutzer zu Domain Admin durch einen Zertifikatsangriff ausführen kann.
Import into BloodHound CE
| Step | How |
|---|
| 1 | CertiHound ausführen, um JSON zu produzieren |
| 2 | In BloodHound CE das JSON über die Ingest-UI/API hochladen |
| 3 | PKI-Knoten/Kanten erscheinen im Graphen |
| 4 | Abfrage von Pfaden zu wertvollen Zielen, die AD CS durchqueren |
Common Workflows
# 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
| Tool | Rolle |
|---|
| CertiHound | AD CS enumieren → BloodHound CE-Graphen |
| Certipy | Aufzählung und Missbrauch ESC1–ESC17 |
| BloodHound | Visualisiere/Abfrage Angriffspfade |
| NetExec | Breitere AD-Erfassung + Relaying |
Resources