Atacando el protocolo NTLM: Cómo obtener contraseñas de usuarios de Windows

El protocolo NTLM es un dolor de cabeza para aquellos que quieren mantener un dominio de Windows ciberseguro. Esta tecnología heredada de hace décadas continúa siendo muy usada, normalmente, para mantener la compatibilidad con sistemas heredados (legacy). Pero lo cierto es que su uso conlleva lidiar con vulnerabilidades asociadas a este vetusto protocolo.

NOTA: El siguiente texto contiene información sobre cómo realizar algunas técnicas de hacking ético. Su propósito es únicamente educativo y no debe ser utilizado para violar la seguridad de ningún sistema sin el consentimiento previo de sus propietarios. El autor de esta guía no se hace responsable de las consecuencias derivadas del mal uso de la misma.

EL PROTOCOLO NTLM

El protocolo NTLM (NT LAN Manager) es un protocolo de autenticación de red desarrollado por Microsoft para Windows NT 3.5 (1994). Esta tecnología permite autenticar usuarios y proporcionar acceso a recursos compartidos en una red de área local (LAN). NTLM utiliza un enfoque de desafío-respuesta para verificar la identidad de un usuario y asegurar la comunicación entre clientes y servidores.

Este protocolo de red, como podrás intuir, ha quedado obsoleto y ha sido reemplazado por protocolos más seguros como como NTLMv2 y Kerberos. Pero en determinados entorno es imposible deshacerse de él si quieres continuar usando sistemas heredados de tu organización, un ejemplo muy común de esta casuística se da en sistemas industriales o laboratorios.

Si quieres conocer mejor cómo funciona este protocolo pásate por la siguiente entrada:

POR SI TE LO PERDISTE…

MISIÓN: OBTENER EL HASH

Hay varios tipos de ataques NTLM que pueden ser utilizados por los atacantes para comprometer los sistemas y recursos protegidos por NTLM.

Una de las mayores vulnerabilidades de NTLM reside en los ataques de hash, donde un atacante intercepta los hashes de contraseña del tráfico de red, pudiendo explotar de diferentes formas el protocolo.

Mi recomendación personal, si quieres explotar vulnerabilidades en este protocolo es empezar por obtener hashes de contraseñas. Para ello existen varias herramientas famosas y conocidas que simplifican este proceso.

Es importante destacar que el uso de estas herramientas debe ser siempre legal y autorizado. NUNCA intentes probarlas sin permiso o en entornos de producción.

Aquí hay algunos ejemplos de programas que podrían utilizarse para obtener hashes NTLM:

  1. Mimikatz: Esta herramienta es ampliamente conocida por extraer contraseñas en texto plano y hashes NTLM de sistemas Windows. Puede recuperar hashes de contraseñas almacenadas en caché en sistemas Windows y también puede realizar ataques Pass-the-Hash.
  2. Responder: Responder es una herramienta diseñada para capturar hashes NTLM en la red. Puede realizar ataques tipo «man-in-the-middle» para interceptar el tráfico de autenticación y obtener hashes.
  3. CrackMapExec: Esta herramienta permite la enumeración y obtención de hashes NTLM en sistemas Windows. También puede utilizarse para realizar ataques Pass-the-Hash y otros tipos de ataques.
  4. NtdsAudit: Esta es una herramienta específica para extraer hashes NTLM de la base de datos de Active Directory de Windows.
  5. Cain and Abel: Aunque obsoleto y descontinuado, este programa histórico era utilizado para recuperar hashes NTLM de sistemas Windows.
  6. John the Ripper: Esta herramienta de cracking de contraseñas también puede utilizarse para atacar hashes NTLM mediante técnicas de fuerza bruta y diccionario.
  7. Hashcat: es otra herramienta muy efectiva para la obtenición de contraseñas en claro a partir de un hash. Hashcat, al igual que John, puede usar diferentes métodos para intentar recuperar la contraseña original, como diccionarios, tablas arco iris o fuerza bruta

EJEMPLO PRÁCTICO

Te dejo un ejemplo práctico que no pertenece a esta web, donde se obtiene hash de un WIndows Server 2008R2. En este caso el profesor utiliza responder.py, para mi una de las herramientas más práticas para obtener hash de NTLM, para obtener el hash y postermente Hashcat para explotar la contraseña.

Cómo prevenir los ataques NTLM

Existen varias medidas que puedes tomar para prevenir los ataques NTLM en tu organización:

  1. Utiliza contraseñas seguras: las contraseñas seguras son cruciales para prevenir los ataques NTLM. Asegúrate de que tus contraseñas sean complejas y únicas, y que se cambien regularmente. Una recomendación es obligar mediante GPO a los usuarios a utilizar contraseñas de al menos 6 caracteres con una mayúscula, una minúscula, un número y un caracter especial.
  2. Usa medidas de seguridad de red: se recomienda el uso de firewalls, monitorización de red, uso de NAC (Network Access Control) y otros métodos de seguridad de red para detectar y prevenir los ataques NTLM. Si tu organización puede permitirse un equipo SOC (Security Operation Center) mejor.
  3. Usa autenticación multifactor: la autenticación multifactor agrega una capa adicional de seguridad al proceso de autenticación y puede prevenir los ataques de hash NTLM. Un método infalible es el uso de llaves o tokens de seguridad, con esta capa blidarás tu infraestructura complicando muchísimo la vida a los atacantes. Windows Hello también es una alternativa que te recomiendo implantar.
  4. Mantén actualizado tu infraestructura: los sistemas operativos Windows modernos utilizan el protocolo Kerberos como su método de autenticación predeterminado. Asegúrate de actualizar tus sistemas operativos y aplicaciones para evitar la dependencia de NTLM y de configurar correctamente tu dominio para evitar tener «puertas abiertas».
  5. Limitar los permisos de los usuarios: Los permisos de los usuarios de Active Directory deben limitarse a los recursos y servicios necesarios para realizar sus tareas laborales, para minimizar el riesgo de acceso no autorizado.
  6. Monitorizar la actividad del usuario: La monitorización continua de la actividad del usuario puede ayudar a detectar comportamientos sospechosos y actividades maliciosas en el dominio. Una de las formas más eficaces de monitorizar a los usuarios es utilizando herramientas que vigilen los cambios que se realizen dentro del dominio.
  7. Implementar políticas de seguridad: Es importante que las organizaciones implementen políticas de seguridad claras y coherentes para el uso de Active Directory. Hay muchas guías para de implementación de hardening en AD que puedes utilizar para mejorar tus políticas sobre el dominio.
  8. Formación: Proporcionar regularmente entrenamientos de concientización sobre seguridad para los usuarios es otro factor que puedes utilizar a tu favor. Una buena formación, mantiene a los usuarios concienciados con la ciberseguridad. Enseñar y formar sobre los principales ataques que puede sufrir la organización en materia de ciberseguridad, puede servir para minimizar los vectores de ataque de los atacantes externos.

Conclusión

Como ves, si usas este protocolo en tu organización y tienes un atacante dentro, es cuestión de unos minutos que un atacante descifre contraseñas de tus usuarios. Estos ataques representan una de las primeras actuaciones que realizan los crackers una vez entrar en un dominio de Windows.

Es importante comprender los riesgos asociados con NTLM y tomar medidas preventivas para protegerse de estos ataques. Asegurarse de utilizar contraseñas seguras, medidas de seguridad de red, autenticación de doble factor y tener tus servidores y máquinas actualizados.