Skip to content
KitploitKITPLOIT
HerramientasExploitsBlog
Log in
Enviar
HerramientasExploitsBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
Internal-Monologue — Ataque de Monólogo Interno: Recuperando Hashes NTLM sin Tocar LSASS | Kitploit
Herramientas/GitHubGitHub/eladshamir/internal-monologue
Ataques de ContraseñasMovimiento LateralPost-ExplotaciónPruebas de PenetraciónRed Teaming
GitHubeladshamir/internal-monologue

Internal-Monologue

Ataque de Monólogo Interno: Recuperando Hashes NTLM sin Tocar LSASS

Ver Repositorio
1.7k23816hace 7 añosRevisado por Kitploit

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

Ataque de Monólogo Interno: Recuperación de Hashes NTLM sin Tocar LSASS

Introducción

Mimikatz, desarrollado por Benjamin Delpy (@gentilkiwi), es una herramienta de post-explotación bien valorada, que permite a los atacantes extraer contraseñas en texto plano, hashes NTLM y tickets Kerberos de la memoria, así como realizar ataques como pass-the-hash, pass-the-ticket o construir un golden ticket. Se podría decir que el uso principal de Mimikatz es recuperar credenciales de usuario de la memoria del proceso LSASS para su uso en movimientos laterales posteriores a la explotación.

Recientemente, Microsoft ha introducido Credential Guard en Windows 10 Enterprise y Windows Server 2016, que utiliza seguridad basada en virtualización para aislar secretos, y es muy efectivo para evitar que Mimikatz recupere hashes directamente de la memoria. Además, Mimikatz se ha convertido en un objetivo principal de la mayoría de las soluciones de protección de endpoints, y son muy agresivos en sus esfuerzos por detectarlo y prevenirlo. Aunque estos esfuerzos están destinados a fallar, se están convirtiendo cada vez más en una molestia.

NetNTLM

NetNTLM es el protocolo de desafío-respuesta de Windows que se utiliza principalmente donde Kerberos no es compatible. En NetNTLM, el servidor envía al cliente un nonce aleatorio de 8 bytes como desafío, y el cliente calcula una respuesta que procesa el desafío con el hash NTLM como clave, que es el hash MD4 de la contraseña del usuario. Hay dos versiones del protocolo de autenticación NetNTLM, y ambas son vulnerables a ciertos ataques. Naturalmente, la versión 1 es significativamente más débil que la versión 2, y por lo tanto a partir de Windows Vista/2008, NetNTLM versión 1 está deshabilitada por defecto.

Pass the Hash

Debido a que el hash NTLM es la clave para calcular la respuesta, un atacante no necesita necesariamente obtener la contraseña en texto plano de la víctima para autenticarse, por lo que recuperar el hash de la memoria de LSASS usando Mimikatz es casi equivalente a robar una contraseña en texto plano. Chris Hummel publicó un artículo describiendo esta técnica en 2009 y la llamó “Pass the Hash” [https://www.sans.org/reading-room/whitepapers/testing/crack-pass-hash-33219].

Divide y Vencerás

En Defcon 2012, Moxie Marlinspike y David Hulton presentaron un ataque “Divide y Vencerás” contra NetNTLMv1 [https://www.youtube.com/watch?v=sIidzPntdCM]. En NetNTLMv1, el cliente recibe el desafío de 8 bytes y calcula la respuesta encriptándolo tres veces usando DES con diferentes partes del hash NTLM como clave. La longitud de clave para DES es efectivamente de 56 bits, que son 7 bytes, mientras que el hash NTLM es de 16 bytes. NetNTLMv1 primero encripta el desafío usando los primeros 7 bytes del hash NTLM como clave, luego encripta el desafío usando los siguientes 7 bytes del hash NTLM como clave, y finalmente encripta el desafío usando los últimos 2 bytes del hash NTLM rellenados con bytes nulos como clave. Efectivamente, esto significa que para recuperar el hash NTLM dado un desafío y respuesta NetNTLMv1, un atacante debe descifrar dos claves DES de 56 bits, lo cual es exponencialmente más fácil que descifrar una sola clave de 128 bits. Moxie y Hulton desarrollaron hardware personalizado para esta tarea y pudieron realizar fuerza bruta en todo el espacio de claves DES en menos de 24 horas, lo que garantiza la recuperación exitosa del hash NTLM en un tiempo razonable. Nótese que a diferencia de los ataques de diccionario o fuerza bruta contra la contraseña, que pueden no ser fructíferos, este ataque garantiza la recuperación exitosa del hash NTLM.

Tablas Rainbow

Como lo demostró ToorCon en https://crack.sh, es factible crear una tabla rainbow completa para todas las respuestas posibles de NetNTLMv1 a un desafío elegido, como 0x1122334455667788, lo que permite descifrar el hash NTLM para una respuesta dada en cuestión de minutos. La implicación es que capturar una respuesta NetNTLMv1 para el desafío elegido puede traducirse al hash NTLM correspondiente casi instantáneamente, lo que es casi equivalente a obtener la contraseña debido a Pass the Hash.

Ataque de Degradación NetNTLM

Mimikatz se ejecuta comúnmente después de que el atacante ha obtenido acceso elevado al host objetivo. En este punto, el atacante también puede cambiar claves de registro, como LMCompatibilityLevel, que especifica si el host debe negociar NetNTLMv1 o NetNTLMv2. El atacante puede cambiar el valor a 0, 1 o 2, lo que habilita NetNTLMv1 como cliente, y luego intentar autenticarse en un servidor SMB malicioso que capturará la respuesta del cliente, como se describe en la publicación del blog de Optiv [https://www.optiv.com/blog/post-exploitation-using-netntlm-downgrade-attacks].

Ataque de Degradación NetNTLM Extendido

Dos configuraciones adicionales pueden evitar que la víctima negocie una respuesta NetNTLMv1:

  1. NTLMMinClientSec - si está configurado como "Requerir seguridad de sesión NTLMv2", la conexión fallará si no se negocia el protocolo NTLMv2.
  2. RestrictSendingNTLMTraffic - si está configurado como "Denegar todo", el equipo cliente no puede autenticarse en un servidor remoto con NetNTLM de ninguna versión. De manera similar al ataque de degradación NetNTLM, estas configuraciones se pueden cambiar si es necesario. Nótese que a diferencia de LMCompatibilityLevel, estas configuraciones no están configuradas por defecto para bloquear la autenticación NetNTLMv1.

Ataque de Monólogo Interno

En entornos seguros, donde no se debe ejecutar Mimikatz, un atacante puede realizar un Ataque de Monólogo Interno, en el que invoca una llamada a procedimiento local al paquete de autenticación NTLM (MSV1_0) desde una aplicación en modo usuario a través de SSPI para calcular una respuesta NetNTLM en el contexto del usuario conectado, después de realizar una degradación NetNTLM extendida.

El flujo del Ataque de Monólogo Interno se describe a continuación:

  1. Deshabilitar los controles preventivos de NetNTLMv1 cambiando LMCompatibilityLevel, NTLMMinClientSec y RestrictSendingNTLMTraffic a valores apropiados, como se describió anteriormente.
  2. Recuperar todos los tokens de inicio de sesión no red de los procesos que se están ejecutando actualmente y suplantar a los usuarios asociados.
  3. Para cada usuario suplantado, interactuar con NTLM SSP localmente para obtener una respuesta NetNTLMv1 al desafío elegido en el contexto de seguridad del usuario suplantado.
  4. Restaurar los valores originales de LMCompatibilityLevel, NTLMMinClientSec y RestrictSendingNTLMTraffic.
  5. Descifrar el hash NTLM de las respuestas capturadas usando tablas rainbow.
  6. Pass the Hash.

Actualización: Compatibilidad con Credential Guard

Recientemente he vuelto a probar Internal Monologue en entornos con Credential Guard habilitado y obtuve resultados negativos. No estoy seguro de si Credential Guard no funcionaba correctamente en mi entorno de prueba durante las pruebas iniciales, o quizás algo cambió desde entonces. Actualicé la implementación para adquirir un token de servidor de AcceptSecurityContext de forma dinámica y manipularlo para evitar la trampa de autenticación local, de modo que si NetNTLMv1 sin Seguridad de Sesión Extendida falla, al menos se pueda capturar un desafío-respuesta NetNTLMv2.

Registro de Auditoría

El Ataque de Monólogo Interno es posiblemente más sigiloso que ejecutar Mimikatz porque no es necesario inyectar código o volcar memoria hacia/desde un proceso protegido. Debido a que la respuesta NetNTLMv1 se obtiene interactuando con NTLM SSP localmente, no se genera tráfico de red, y el desafío elegido no es fácilmente visible. No se registra ningún evento de autenticación NTLM exitosa en los registros. Los cambios en el registro para la degradación NetNTLM y el robo de tokens/suplantación de otros usuarios pueden activar indicadores.

Descargar herramienta