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
Certify — Herramienta en C# para enumerar y explotar configuraciones incorrectas en Servicios de Certificados de Active Directory (AD CS), permitiendo el abuso de plantillas de certificados, escalada de privilegios y persistencia en el dominio. | Kitploit
Herramientas/GitHubGitHub/ghostpack/certify
Autenticación y AutorizaciónEscalada de PrivilegiosAnálisis de VulnerabilidadesExplotaciónPruebas de PenetraciónRed Teaming
GitHubghostpack/certify

Certify

Herramienta en C# para enumerar y explotar configuraciones incorrectas en Servicios de Certificados de Active Directory (AD CS), permitiendo el abuso de plantillas de certificados, escalada de privilegios y persistencia en el dominio.

Ver Repositorio
2.0k2829hace 28 díasRevisado por Kitploit

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

Certify

Certify es una herramienta en C# para enumerar y abusar de configuraciones incorrectas en los Servicios de Certificados de Active Directory (AD CS).

@harmj0y y @tifkin_ son los autores principales de Certify y de la investigación asociada sobre AD CS (blog y whitepaper).

Tabla de Contenidos

  • Certify
    • Uso
    • Consideraciones Defensivas
    • Instrucciones de Compilación
      • Nota al margen: Ejecutar Certify a través de PowerShell
        • Nota al margen de la nota: Ejecutar Certify mediante PSRemoting
    • Reflexiones
    • Agradecimientos

Uso

Se puede encontrar una visión general de comandos y detalles completos de uso en la wiki.

Consideraciones Defensivas

Certify fue lanzado en Black Hat 2021 con nuestra charla "Certified Pre-Owned: Abusing Active Directory Certificate Services".

Consulte nuestro whitepaper para obtener orientación sobre prevención y detección.

Instrucciones de Compilación

No tenemos planes de lanzar binarios de Certify, así que tendrás que compilarlo tú mismo :)

Certify se ha compilado para .NET 4.7.2 y es compatible con Visual Studio 2022 Community Edition. Simplemente abre el archivo .sln del proyecto, elige "Release" y compila.

Nota al margen: Ejecutar Certify a través de PowerShell

Si deseas ejecutar Certify en memoria a través de un envoltorio de PowerShell, primero compila Certify y codifica en base64 el ensamblado resultante:

root@kitploit:~
[Convert]::ToBase64String([IO.File]::ReadAllBytes("C:\Temp\Certify.exe")) | Out-File -Encoding ASCII C:\Temp\Certify.txt

Certify puede entonces cargarse en un script de PowerShell de la siguiente manera (donde "aa..." se reemplaza con la cadena del ensamblado de Certify codificada en base64):

root@kitploit:~
$CertifyAssembly = [System.Reflection.Assembly]::Load([Convert]::FromBase64String("aa..."))

El método Main() y cualquier argumento pueden entonces invocarse de la siguiente manera:

root@kitploit:~
[Certify.Program]::Main("enum-templates --filter-enabled --filter-vulnerable".Split())

Nota al margen de la nota: Ejecutar Certify mediante PSRemoting

Debido a la forma en que PSRemoting maneja la salida, necesitamos redirigir stdout a una cadena y devolver eso en su lugar. Afortunadamente, Certify tiene una función para ayudar con eso.

Si sigues las instrucciones en Nota al margen: Ejecutar Certify a través de PowerShell para crear un Certify.ps1, agrega algo como lo siguiente al script:

root@kitploit:~
[Certify.Program]::MainString("enum-templates --filter-enabled --filter-vulnerable")

Entonces deberías poder ejecutar Certify mediante PSRemoting con algo como lo siguiente:

root@kitploit:~
$s = New-PSSession dc.theshire.local
Invoke-Command -Session $s -FilePath C:\Temp\Certify.ps1

Alternativamente, el argumento /outfile:C:\FILE.txt de Certify redirigirá todos los flujos de salida al archivo especificado.

Reflexiones

En cuanto a la divulgación pública, auto-embargamos el lanzamiento de nuestras herramientas ofensivas (Certify así como ForgeCert) durante aproximadamente 45 días después de publicar nuestro whitepaper para dar a las organizaciones la oportunidad de comprender los problemas relacionados con los Servicios de Certificados de Active Directory. También lanzamos preventivamente algunas reglas Yara/IOCs para ambos proyectos y publicamos el proyecto PowerShell centrado en defensa PSPKIAudit junto con el whitepaper. Sin embargo, hemos encontrado que las organizaciones y los proveedores a menudo no han solucionado problemas ni creado detecciones para ataques "teóricos" hasta que alguien demuestra que algo es posible con una prueba de concepto.

Agradecimientos

Certify utilizó algunos recursos encontrados en línea como referencia e inspiración:

  • Esta publicación sobre solicitar certificados desde C#.
  • Este gist para la especificación de SAN.
  • Esta publicación de StackOverflow sobre exportar claves privadas.
  • Esta publicación de PKISolutions sobre la conversión de pkiExpirationPeriod.
  • Esta sección de MS-CSRA que describe los DACL de seguridad del agente de inscripción.

El trabajo sobre AD CS se basó en el trabajo de varios otros. El whitepaper tiene un tratamiento completo, pero para resumir:

  • Benjamin Delpy por su extenso trabajo sobre tarjetas inteligentes/certificados con Mimikatz y Kekeo.
  • PKI Solutions por sus excelentes publicaciones sobre PKI en Active Directory, así como su módulo PowerShell PSPKI, en el cual se basa nuestro kit de herramientas de auditoría.
  • El libro "Windows Server 2008 – PKI and Certificate Security" de Brian Komar.
  • Las siguientes especificaciones técnicas abiertas proporcionadas por Microsoft:
    • [MS-CERSOD]: Certificate Services Protocols Overview
    • [MS-CRTD]: Certificate Templates Structure
    • [MS-CSRA]: Certificate Services Remote Administration Protocol
    • [MS-ICPR]: ICertPassage Remote Protocol
    • [MS-WCCE]: Windows Client Certificate Enrollment Protocol
  • Repositorio de GitHub de Christoph Falta que cubre algunos detalles sobre atacar plantillas de certificados, incluyendo tarjetas inteligentes virtuales así como algunas ideas sobre abusos basados en ACL.
  • La publicación de CQURE "The tale of Enhanced Key (mis)Usage" que cubre algunos abusos de Nombres Alternativos del Sujeto (SAN).
  • La publicación de Keyfactor de 2016 "Hidden Dangers: Certificate Subject Alternative Names (SANs)"
  • Las publicaciones de @Elkement "Sizzle @ hackthebox – Unintended: Getting a Logon Smartcard for the Domain Admin!" y "Impersonating a Windows Enterprise Admin with a Certificate: Kerberos PKINIT from Linux" detallan configuraciones incorrectas de plantillas de certificados.
  • Carl Sörqvist escribió un escenario detallado y plausible de cómo ocurren algunas de estas configuraciones incorrectas titulado "".
Descargar herramienta
Supply in the Request Shenanigans
  • Ceri Coburn publicó una excelente publicación en 2020 sobre "Attacking Smart Card Based Active Directory Networks" detallando algunos abusos de tarjetas inteligentes y adiciones a Certify.
  • Brad Hill publicó un whitepaper titulado "Weaknesses and Best Practices of Public Key Kerberos with Smart Cards" que proporcionó algunos buenos antecedentes sobre Kerberos/PKINIT desde una perspectiva de seguridad.