
Certighost POC
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.
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
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.
GHOSTABCDEFGH$) o reutilizar una proporcionada mediante --computer-name.cdc personalizado que apunte a una IP controlada (mediante --listener; opcional, se auto-detecta si se omite) además de un atributo rmd que contenga el nombre DNS del DC objetivo.STATUS_NOLOGON_SERVER_TRUST_ACCOUNT. certighost ahora incluye un hotpatch adecuado dentro del script para la ruta NetLogon SMB falsa (estableciendo el bit E 0x20 junto con el bit K 0x800 en ParameterControl, 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.EDITF_ATTRIBUTESUBJECTALTNAME2 / ESC6), la solicitud de certificado ahora establece la identidad SAN:dns al nombre DNS del DC objetivo (rmd_value) en lugar del del equipo falso, evitando KDC_ERR_CLIENT_NAME_MISMATCH en 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.