
ActualizadaAug 1, 2026
CVE-2026-54121 — Actualizado!
Certighost POC
CVE-2026-54121 (Certighost)
Esta es una herramienta de prueba de concepto para demostrar CVE-2026-54121, también conocido como Certighost. Lea aquí https://gist.github.com/H0j3n/a5ef2609b5f2944ac2390a191a534c26 para el análisis detallado.
Instalar dependencias
La prueba de concepto es un script de Python autocontenido. Requiere impacket, cryptography, pyasn1, asn1crypto y dnspython.
sudo pip install --break-system-packages git+https://github.com/fortra/impacket.git cryptography pyasn1 asn1crypto pycryptodome dnspython
Uso
Ejecute como root porque los servicios LDAP y SMB falsos escuchan en los puertos privilegiados 389 y 445.
sudo python3 certighost.py -d playground.local -u lowpriv -p 'Password1234' --dc-ip 192.168.1.10
Una ejecución exitosa escribe el certificado objetivo (.pfx) y la caché de Kerberos (.ccache) en el directorio actual.
Qué hace este script
- Crear una nueva cuenta de equipo (p. ej.
GHOSTABCDEFGH$) o reutilizar una proporcionada mediante--computer-name. - Iniciar dos listeners falsos: un servidor SMB/LSA en el puerto 445 y un servidor LDAP en el puerto 389.
- Enviar una solicitud de certificado como esa cuenta de equipo, incrustando un atributo
cdcpersonalizado que apunte a una IP controlada (mediante--listener; opcional, se auto-detecta si se omite) además de un atributormdque contenga el nombre DNS del DC objetivo. - La CA se conecta de vuelta a los listeners LSA/LDAP falsos. Estos se autentican como la cuenta creada (validada a través del DC real mediante Netlogon) y responden a las consultas de la CA con la identidad del DC objetivo (sAMAccountName, SID, dNSHostName) en su lugar.
- La CA emite un certificado válido perteneciente al DC.
- Los scripts también realizan PKINIT con el pfx del DC para solicitar .ccache y el hash NT
Cronología
- 28 de julio de 2026 — Créditos a @GregDurys por el PR que corrige el problema
STATUS_NOLOGON_SERVER_TRUST_ACCOUNT.certighostahora incluye un hotpatch adecuado dentro del script para la ruta NetLogon SMB falsa (estableciendo el bit E0x20junto con el bit K0x800enParameterControl, según MS-NRPC 2.2.1.4.15), por lo que el exploit funciona contra una CA alojada en un Controlador de Dominio sin preocuparse por instalar una versión diferente o bifurcada de Impacket. - 28 de julio de 2026 — Créditos a @Hack0ura por mencionar la corrección del SAN de la solicitud. En una CA que respeta los SAN proporcionados en la solicitud (
EDITF_ATTRIBUTESUBJECTALTNAME2/ ESC6), la solicitud de certificado ahora establece la identidadSAN:dnsal nombre DNS del DC objetivo (rmd_value) en lugar del del equipo falso, evitandoKDC_ERR_CLIENT_NAME_MISMATCHen el paso PKINIT. En las plantillas construidas desde AD, el SAN de la solicitud se ignora, por lo que el cambio es un no-op seguro.