
UpdatedAug 1, 2026
CVE-2026-54121 — Updated!
Certighost POC
CVE-2026-54121 (Certighost)
Esta é uma ferramenta de prova de conceito para demonstrar a CVE-2026-54121, também conhecida como Certighost. Leia a análise detalhada aqui: https://gist.github.com/H0j3n/a5ef2609b5f2944ac2390a191a534c26
Instalar dependências
A prova de conceito é um script Python autocontido. Ele requer impacket, cryptography, pyasn1, asn1crypto e dnspython.
sudo pip install --break-system-packages git+https://github.com/fortra/impacket.git cryptography pyasn1 asn1crypto pycryptodome dnspython
Uso
Execute como root, pois os serviços LDAP e SMB falsos escutam nas portas privilegiadas 389 e 445.
sudo python3 certighost.py -d playground.local -u lowpriv -p 'Password1234' --dc-ip 192.168.1.10
Uma execução bem-sucedida grava o certificado alvo (.pfx) e o cache Kerberos (.ccache) no diretório atual.
O que este script faz
- Cria uma nova conta de computador (ex.:
GHOSTABCDEFGH$) ou reutiliza uma fornecida via--computer-name. - Inicia dois listeners falsos: um servidor SMB/LSA na porta 445 e um servidor LDAP na porta 389.
- Envia uma solicitação de certificado como essa conta de computador, incorporando um atributo personalizado
cdcapontando para um IP controlado (via--listener; opcional, detectado automaticamente se omitido) além de um atributormdcontendo o nome DNS do DC alvo. - A CA conecta-se de volta aos listeners LSA/LDAP falsos. Eles autenticam-se como a conta criada (validada através do DC real via Netlogon) e respondem às consultas da CA com a identidade do DC alvo (sAMAccountName, SID, dNSHostName) em vez disso.
- A CA emite um certificado válido pertencente ao DC.
- O script também realiza PKINIT com o pfx do DC para solicitar o .ccache e o hash NT.
Linha do tempo
- 28 de julho de 2026 — Créditos a @GregDurys pelo PR que corrige o problema
STATUS_NOLOGON_SERVER_TRUST_ACCOUNT. Ocertighostagora inclui um hotpatch próprio no script para o caminho NetLogon do SMB falso (definindo o bit E0x20juntamente com o bit K0x800emParameterControl, de acordo com MS-NRPC 2.2.1.4.15), de modo que o exploit funcione contra uma CA hospedada em um Domain Controller sem se preocupar em instalar uma versão diferente/fork do Impacket. - 28 de julho de 2026 — Créditos a @Hack0ura por mencionar a correção do SAN de solicitação. Em uma CA que honra SANs fornecidos na solicitação (
EDITF_ATTRIBUTESUBJECTALTNAME2/ ESC6), a solicitação de certificado agora define a identidadeSAN:dnspara o nome DNS do DC alvo (rmd_value) em vez do computador falso, evitandoKDC_ERR_CLIENT_NAME_MISMATCHna etapa PKINIT. Em modelos baseados em AD, o SAN da solicitação é ignorado, portanto a alteração é um no-op seguro.