En esta segunda entrega en nuestra serie sobre Seguridad del Directorio Activo abordaremos la utilización de métodos de almacenamiento de contraseñas obsoletos y sus ataques. Un entorno Windows Server, como debe ser, no almacena las contraseñas en texto plano, en vez utiliza métodos de cifrado (llamados funciones hash) para almacenar dichas contraseñas ya sea en memoria, la base de datos SAM en un equipo de escritorio o en la base de datos NTDS en los controladores de dominio.
El objetivo de almacenar las contraseñas en formato hash en vez de texto plano es proteger la contraseña y permitir validar la misma para la autenticación. Se supone que de un hash no se puede obtener la contraseña real, pero como la ciencia y matemática ha avanzado desde la creación de estos protocolos se ha hecho posible el ataque de tipo cracking donde del hash es posible obtener la contraseña real.
Entendido mejor la relación entre la contraseña, su hash y el posible ataque es hora de entender cómo en una red Windows se almacena los hashes en disco: la base de datos SAM y la base de datos NTDS. En cualquiera de estos dos repositorios es posible almacenar las contraseñas con dos tipos de hashes:
En las versiones previas a Windows Server 2008, para todo usuario se almacenaba tanto el LM hash como la NT hash. En Windows Server 2008 y versiones siguientes solamente se almacena la NT hash.
LM Hash: se ha mantenido por compatibilidad con versiones anteriores de Windows. Altamente inseguro. No soporta contraseñas con más de 14 caracteres, transforma contraseña a mayúsculas previo al cálculo del hash.
NT Hash: disponible desde Windows NT, más seguro, pero también vulnerable.
En nuestras evaluaciones de seguridad o pruebas de penetración nos es muy común encontrar versiones recientes de Windows Server como 2012R2 que todavía tienen LM hash habilitado. Esto puede ser debido a que estos dominios se vienen actualizando desde versiones viejas de Windows Server o por simple desconocimiento de los administradores.
Veamos ahora por qué para un atacante es buena noticia cuando se encuentra con LM hash como método de almacenamiento de contraseñas.
Para un actor malicioso o pentester es buena noticia que usted tenga LM hash habilitado porque una vez ha logrado el acceso a un LM hash será muy fácil “crackear” ese hash para obtener la contraseña en comparación con NT hash.
El accionar normal de un actor malicioso sería:
El artículo de Microsoft que describe las tres acciones de mitigación lo puedes encontrar aquí. En resumen, para evitar el almacenamiento de las contraseñas en un tipo de hash que es fácil de “crackear” se recomienda:
No creas que con deshabilitar LM hash ya está seguro tu Directorio Activo. En el siguiente artículo les escribiré sobre cómo evitar el robo de hashes y las vulnerabilidades del NT hash y de los protocolos que lo utilizan para la autenticación de red: Net-NTLMv1 y Net-NTLMv2.
Nos vemos en la próxima.
Sebastián
¿Qué opinas sobre este tema? ¿Has sido víctima de un ataque de LM en tu Directorio Activo?
Imagen de geralt vía Pixabay.com bajo licencia creative commons.