Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
CVE-2026-54121-CertiGhost — CVE-2026-54121 (Certighost) PoC de suplantación de DC en AD CS. Manejo de SAN corregido + reutilización de cuentas segura para MAQ. | Kitploit
Herramientas/GitHubGitHub/marcgoam/cve-2026-54121-certighost
Autenticación y AutorizaciónEscalada de PrivilegiosAnálisis de VulnerabilidadesExplotaciónMovimiento LateralPruebas de PenetraciónAtaque Adversario
GitHubmarcgoam/cve-2026-54121-certighost

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

CVE-2026-54121-CertiGhost

CVE-2026-54121 (Certighost) PoC de suplantación de DC en AD CS. Manejo de SAN corregido + reutilización de cuentas segura para MAQ.

Ver Repositorio
1025hace 1 mesAún no revisado

CVE-2026-54121 (Certighost) - fork corregido

Un fork funcional de la herramienta de prueba de concepto para CVE-2026-54121, también conocida como Certighost. Investigación original y PoC por @H0j3n y @aniqfakhrul, con análisis detallado en:

  • https://gist.github.com/H0j3n/a5ef2609b5f2944ac2390a191a534c26.

Este fork corrige el manejo de la SAN que impedía que PKINIT tuviera éxito en CAs que respetan la SAN solicitada, refuerza el análisis de --target-san y reelabora el manejo de la cuenta de equipo para que ya no agote la ms-DS-MachineAccountQuota.

Uso

Ejecuta como root porque los servicios LDAP y SMB falsos requieren los puertos privilegiados 389 y 445.

root@kitploit:~
sudo python3 certighost.py -d playground.local -u lowpriv -p 'Password1234' --dc-ip 192.168.1.10

Al completarse correctamente, el certificado objetivo (.pfx) y la caché de Kerberos (.ccache) se escriben en el directorio de trabajo actual.

Lo que hace este script

  1. Reutiliza una única cuenta de equipo estable (CERTIGHOST$, creada en la primera ejecución) o utiliza una especificada mediante --computer-name.
  2. Inicia dos listeners falsos: un servidor SMB/LSA en el puerto 445 y un servidor LDAP en el puerto 389.
  3. Envía una solicitud de certificado como esa cuenta de equipo, incorporando un atributo personalizado cdc que apunta a una IP controlada (mediante --listener; opcional, se autodetecta si se omite) junto con un atributo rmd que contiene el nombre DNS del DC objetivo.
  4. 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.
  5. La CA emite un certificado válido perteneciente al DC.
  6. El script realiza PKINIT con el pfx del DC para solicitar el .ccache y el hash NT.

Cambios en este fork

1. Corrección de SAN (hace que PKINIT tenga éxito)

El original construía la SAN del certificado tanto desde la extensión subjectAltName de la CSR como desde el atributo de solicitud SAN:dns=, usando el nombre de host del equipo falso en lugar del FQDN del DC objetivo. En una CA que respeta la SAN solicitada, el certificado emitido llevaba por tanto el dNSHostName de la cuenta falsa, por lo que PKINIT lo mapeaba al principal equivocado y fallaba con:

root@kitploit:~
KDC_ERR_CLIENT_NAME_MISMATCH(Reserved for PKINIT)

La SAN ahora usa el dNSHostName del DC objetivo (rmd_value / target_dns), que es sobre lo que PKINIT mapea una cuenta de equipo. El certificado emitido ahora presenta DNS:<dc>.<domain> y la AS-REQ se cierra como el DC.

2. --target-san más robusto

--target-san ahora acepta cualquiera de MEEREEN, MEEREEN$ o el FQDN meereen.essos.local (la coincidencia se realiza por sAMAccountName o dNSHostName), en lugar de solo la forma corta NAME.

3. Reutilización de la cuenta de equipo (ya no agota la MAQ)

El original creaba una nueva cuenta aleatoria GHOST********$ en cada ejecución. Dado que las cuentas de equipo creadas mediante ms-DS-MachineAccountQuota son propiedad de los administradores de dominio (no del creador), un usuario con pocos privilegios no puede eliminarlas, por lo que las ejecuciones repetidas agotaban rápidamente la cuota (10 por defecto) con cuentas huérfanas.

Este fork reutiliza una única cuenta estable (CERTIGHOST$, creada solo si no existe), por lo que la cuota nunca crece y no hay nada que limpiar entre ejecuciones.

4. Aviso de cuenta residual

Cuando la cuenta se crea por primera vez, el script imprime un aviso indicando que queda en AD:

root@kitploit:~
[!] WARNING: computer account CERTIGHOST$ was created and is left in AD.

La cuenta permanece para reutilizarse en ejecuciones posteriores. Para eliminarla por completo, bórrala con un administrador de dominio (el propietario del objeto):

root@kitploit:~
Get-ADComputer CERTIGHOST | Remove-ADComputer -Confirm:$false

Requisitos

  • Python 3
  • impacket
  • cryptography, pyasn1, asn1crypto, pycryptodomex

Referencias

  • https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-54121
  • https://gist.github.com/H0j3n/a5ef2609b5f2944ac2390a191a534c26
  • https://github.com/aniqfakhrul/CVE-2026-54121 (PoC original)

Aviso legal

Solo para pruebas de seguridad autorizadas y fines educativos. Úsalo únicamente contra sistemas en los que tengas permiso explícito para realizar pruebas.

Descargar herramienta