Skip to content

ADCS: abuso de certificados ​

Active Directory Certificate Services (ADCS) es la entidad certificadora interna de muchas empresas. Un certificado de cliente sirve para autenticarse en el dominio (vía PKINIT), así que una plantilla mal configurada permite obtener un certificado a nombre de un administrador y, con él, su TGT. Las configuraciones se numeran ESC1–ESC8.

ADCS ESC1: pedir un certificado a nombre de otro

Enumeración ​

text
beacon> execute-assembly C:\Tools\Certify\Certify.exe enum-cas --quiet
beacon> execute-assembly C:\Tools\Certify\Certify.exe enum-templates --filter-enabled --filter-vulnerable --hide-admins --quiet

Desde Kali, certipy find -vulnerable hace lo mismo.

Los casos más comunes ​

ESCProblemaIdea del abuso
ESC1La plantilla deja que el solicitante elija el sujeto (UPN) y permite autenticación de clientePido un certificado poniendo Administrator como UPN
ESC2Plantilla "cualquier propósito" o EKU vacíoSirve como ESC1/ESC3 según el caso
ESC3Plantilla de "agente de solicitud de certificados"Pido un certificado a nombre de otro usuario
ESC4Permisos de más sobre la plantilla (puedo editarla)La hago vulnerable yo mismo y luego la abuso como ESC1
ESC8La CA acepta peticiones por web (HTTP)Relay de autenticación NTLM del DC hacia la CA

ESC1 paso a paso (concepto) ​

  1. Pido el certificado a la CA con la plantilla vulnerable, indicando como UPN al administrador.
  2. La CA lo emite porque la plantilla deja elegir el sujeto.
  3. Uso ese certificado para pedir un TGT como administrador (PKINIT).
text
beacon> execute-assembly C:\Tools\Certify\Certify.exe request --ca "CA01\CORP Root CA" --template VulnTemplate --upn Administrator --quiet
beacon> execute-assembly C:\Tools\Rubeus\Rubeus.exe asktgt /user:Administrator /certificate:<cert> /enctype:aes256 /nowrap

Golden Certificate (persistencia) ​

Con acceso SYSTEM a la CA se puede robar su clave privada y forjar certificados válidos para cualquier usuario indefinidamente (técnica DPERSIST1). Es persistencia a nivel de dominio.

Cómo se defiende ​

  • Revisar todas las plantillas: quitar "el solicitante elige el sujeto" y restringir quién puede inscribirse.
  • Exigir aprobación de un gestor para plantillas sensibles.
  • Deshabilitar la inscripción web o forzar EPA/firma para cortar ESC8.
  • Proteger la clave privada de la CA como se protege un DC.

Contenido propio con fines educativos. Sin flags ni material de exámenes.