¿Qué es Hash NTLM?
El hash NTLM es el formato criptográfico en el que se almacenan las contraseñas de usuario en sistemas Windows.
Los hashes NTLM se almacenan en la SAM (security account manager) o en archivo NTDS de un controlador de dominio. Son parte fundamental del mecanismo utilizado para realizar la autenticación de un usuario a través de distintos protocolos de comunicaciones.
Por tanto, se trata de una información crítica y muy buscada por los actores hostiles cuando tratan de desencadenar un ciberataque. A la hora de hacer un pentesting, por ejemplo, es frecuente que los atacantes traten de obtener estos hashes (mediante herramientas como pwdump o mimikatz) y usar técnicas de Pass The Hash utilizando los hashes NTLM para explotar los privilegios de uno o varios sistemas. De esa forma, podrían ejecutar llegar a elevar privilegios e incluso ejecutar comandos.
El hash NTLM se codifica tomando la contraseña del usuario y convirtiéndola en una clave de 16 bytes utilizando una función hash MD4. Esta clave se divide en dos mitades de 8 bytes cada una, las cuales se usan como entrada en tres rondas de cifrado DES para generar una salida de 16 bytes que representa el hash NTLM.
Cada ronda de DES utiliza una clave de 8 bytes derivada de la mitad original de la clave mediante una operación de paridad. Los dos resultados de 8 bytes de las tres rondas de DES se concatenan para formar el hash NTLM de 16 bytes que se utiliza para verificar la contraseña del usuario en el sistema operativo Windows.
Los hashes NTLM son susceptibles de ser utilizados en muchos ataques de autenticación en Windows, por lo que es recomendable limitar su uso y utilizar kerberos.