Voltar às atualizações
UpdatedAug 1, 2026

CVE-2026-54121 — Updated!

Certighost POC

Compartilhar

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

  1. Cria uma nova conta de computador (ex.: GHOSTABCDEFGH$) ou reutiliza uma fornecida via --computer-name.
  2. Inicia dois listeners falsos: um servidor SMB/LSA na porta 445 e um servidor LDAP na porta 389.
  3. Envia uma solicitação de certificado como essa conta de computador, incorporando um atributo personalizado cdc apontando para um IP controlado (via --listener; opcional, detectado automaticamente se omitido) além de um atributo rmd contendo o nome DNS do DC alvo.
  4. 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.
  5. A CA emite um certificado válido pertencente ao DC.
  6. 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. O certighost agora inclui um hotpatch próprio no script para o caminho NetLogon do SMB falso (definindo o bit E 0x20 juntamente com o bit K 0x800 em ParameterControl, 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 identidade SAN:dns para o nome DNS do DC alvo (rmd_value) em vez do computador falso, evitando KDC_ERR_CLIENT_NAME_MISMATCH na etapa PKINIT. Em modelos baseados em AD, o SAN da solicitação é ignorado, portanto a alteração é um no-op seguro.

Referências

Categorias