
Toolkit di exploit per AD CS CVE-2026-54121: utenti di dominio con privilegi bassi possono impersonare un Domain Controller, forgiare certificati e compromettere il dominio tramite DCSync/Golden Ticket.
CertiGhost è una vulnerabilità critica (CVSS 8.8) in Active Directory Certificate Services (AD CS) che consente a un utente di dominio con privilegi bassi di impersonare un Domain Controller e ottenere la compromissione completa del dominio.
Il meccanismo di fallback "chase" di AD CS consente a un richiedente di fornire gli attributi cdc (Client DC) e rmd (Remote Domain) in una richiesta di certificato. La CA segue il target cdc per risolvere i dati di identità senza verificare che si tratti di un Domain Controller legittimo.
Catena di Attacco:
ms-DS-MachineAccountQuota)cdc che punta all'host dell'attaccantekrbtgt → Golden Ticket → compromissione completa del dominio| Documento | Contenuto |
|---|---|
| USAGE.md | Guida all'uso dettagliata con istruzioni passo-passo |
| DIAGRAM.md | Diagrammi di struttura e visualizzazione del flusso di attacco |
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
Vedi DIAGRAM.md per i diagrammi completi dell'architettura.
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 (predefinito: 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 su 0ENROLLEE_SUPPLIES_SUBJECT dai modellicdc/rmdSecondo il blog Microsoft Threat Protection, implementare la seguente query di advanced hunting:
// 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
| File | Scopo |
|---|
certighost_exploit.py | Implementazione completa della catena di exploit |
certighost_test.py | Toolkit di rilevamento + exploit con CLI |
ad_detect.py | Scansione di rilevamento rapida e mirata |
test_exploit.py | Test unitari per tutti i componenti dell'exploit (55 test) |
requirements.txt | Dipendenze Python |