Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
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
ntlmv1-multi — NTLMv1 Multitool | Kitploit
Herramientas/GitHubGitHub/evilmog/ntlmv1-multi
Password CrackingEncryption/Decryption ToolsPassword AttacksHash AnalysisCryptographyAuthentication
GitHubevilmog/ntlmv1-multi

ntlmv1-multi

NTLMv1 Multitool

Ver Repositorio
67099hace 1 mesRevisado 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

NTLMv1 Multiherramienta

Esta herramienta revierte hashes NTLMv1 a NTLM o, más específicamente, formatea las respuestas al desafío NTLMv1 en un formato que puede crackearse con el modo 14000 de hashcat.

Cálculo de CT3

Si especificas --ct3, calculará los últimos 4 dígitos del NTLM por ti; si especificas --json, --ct3 está implícito y lo devolverá como el elemento pt3, por ejemplo:

root@kitploit:~
python3 ntlmv1.py --ntlm "DC1$::MOG:AC51EC464A91A35A04A862DA3106EC2B352661ECEF909C5E:AC51EC464A91A35A04A862DA3106EC2B352661ECEF909C5E:1122334455667788" --json 

{"ntlmv1": "DC1$::MOG:AC51EC464A91A35A04A862DA3106EC2B352661ECEF909C5E:AC51EC464A91A35A04A862DA3106EC2B352661ECEF909C5E:1122334455667788", "user": "DC1$", "domain": "MOG", "challenge": "1122334455667788", "lmresp": "AC51EC464A91A35A04A862DA3106EC2B352661ECEF909C5E", "ntresp": "AC51EC464A91A35A04A862DA3106EC2B352661ECEF909C5E", "ct3": "352661ECEF909C5E", "ct3_crack": "ct3_to_ntlm.bin 352661ECEF909C5E 1122334455667788", "pt3": "8c71", "hash1": "AC51EC464A91A35A:1122334455667788", "hash2": "04A862DA3106EC2B:1122334455667788"}

Por último, en esta actualización he movido las funciones a main() para que puedas importar el módulo y usarlo directamente.

Actualizaciones del 10 de noviembre de 2020

Añadí 2 nuevas opciones, --hashcat y --hcutils, que establecen la ruta a tu hashcat y hashcat-utils respectivamente, de modo que puedes hacer un copiar y pegar directo desde la herramienta.

Ejecutarías la herramienta así si tu directorio de hashcat estuviera en ~/git/hashcat y tu directorio de hashcat-utils estuviera en ~/git/hashcat-utils:

root@kitploit:~
python3 ./ntlmv1.py --ntlm "SERVER1$::MOG:9DE7F41D81C1207400000000000000000000000000000000:DE766A98B60D1C911DCFFFDBB3E521314B2CE34EAB63CC7B:1122334455667788" --hashcat "~/git/hashcat" --hcutils "~/git/hashcat-utils"

Actualizaciones del 10 de diciembre de 2019

Sí, esto es supuestamente compatible con python 3; también he fusionado ntlmv1 y ntlmv1-ess.

ntlmv1-multi

NTLMv1 Multitool

Esta herramienta modifica hashes NTLMv1/NTLMv1-ESS/MSCHAPv2 para que puedan crackearse con el modo DES 14000 en hashcat.

Esta herramienta se basa en el trabajo realizado por atom, del equipo Hashcat https://hashcat.net/forum/thread-5832.html

También se basa en https://hashcat.net/forum/thread-5912.html y https://www.youtube.com/watch?v=LIHACAct2vo

Instalación

Instala la herramienta de nueva generación ntlmv1_nextgen.py como comando global ntlmv1-multi con uv:

root@kitploit:~
uv tool install .
ntlmv1-multi --ntlmv1 "hashcat::DUSTIN-5AA37877:76365E2D142B5612980C67D057EB9EFEEE5EF6EB6FF6E04D:727B4E35F947129EA52B9CDEDAE86934BB23EF89F50FC595:1122334455667788"

O ejecútala directamente desde el repositorio sin instalarla:

root@kitploit:~
uv run ntlmv1_nextgen.py --ntlmv1 "hashcat::DUSTIN-5AA37877:..."

El proyecto incluye un pyproject.toml (dependencia pycryptodome, Python 3.14+) por lo que uv resuelve todo por ti; el ntlmv1.py original sigue ejecutándose de forma independiente con cualquier intérprete de Python 3.

Herramienta de nueva generación (ntlmv1_nextgen.py)

ntlmv1_nextgen.py (instalado como el comando ntlmv1-multi) es el analizador moderno. Acepta NTLMv1, blobs $99$ y MSCHAPv2, maneja ESS automáticamente y puede completar la conversión completa de NTLMv1 -> NTLM a partir de un potfile crackeado en un solo paso. Opciones disponibles:

Uso

NTLMv1 sin ESS

Para capturar, usa responder con la bandera --lm; sin --lm activarás ESS, lo que tardará más en crackear. También hay una nueva bandera, --disable-ess, que intentará deshabilitar ESS y forzar la degradación. Prueba primero --disable-ess y, si falla, prueba --lm. Si usas --disable-ess o --lm, asegúrate de que tu desafío de cliente sea 1122334455667788 para usar la FPGA; sin embargo, esto puede activar algunas protecciones de IDS/IPS de red si ven ese tráfico.

La captura se verá así.

root@kitploit:~
[SMB] NTLMv1 Client   : 184.64.60.62
[SMB] NTLMv1 Username : DUSTIN-5AA37877\hashcat
[SMB] NTLMv1 Hash     : hashcat::DUSTIN-5AA37877:76365E2D142B5612980C67D057EB9EFEEE5EF6EB6FF6E04D:727B4E35F947129EA52B9CDEDAE86934BB23EF89F50FC595:1122334455667788
[*] Skipping previously captured hash for DUSTIN-5AA37877\hashcat

La parte del hash se ve así

root@kitploit:~
hashcat::DUSTIN-5AA37877:76365E2D142B5612980C67D057EB9EFEEE5EF6EB6FF6E04D:727B4E35F947129EA52B9CDEDAE86934BB23EF89F50FC595:1122334455667788

Así que usa la multi herramienta de esta manera (también es compatible con python 2)

root@kitploit:~
python3 ntlmv1.py --ntlmv1 hashcat::DUSTIN-5AA37877:76365E2D142B5612980C67D057EB9EFEEE5EF6EB6FF6E04D:727B4E35F947129EA52B9CDEDAE86934BB23EF89F50FC595:1122334455667788

Generará los siguientes datos sin modificar los desafíos del servidor, etc.

root@kitploit:~
['hashcat', '', 'DUSTIN-5AA37877', '76365E2D142B5612980C67D057EB9EFEEE5EF6EB6FF6E04D', '727B4E35F947129EA52B9CDEDAE86934BB23EF89F50FC595', '1122334455667788']

Hostname: DUSTIN-5AA37877
Username: hashcat
Challenge: 1122334455667788
LM Response: 76365E2D142B5612980C67D057EB9EFEEE5EF6EB6FF6E04D
NT Response: 727B4E35F947129EA52B9CDEDAE86934BB23EF89F50FC595
CT1: 727B4E35F947129E
CT2: A52B9CDEDAE86934
CT3: BB23EF89F50FC595

To Calculate final 4 characters of NTLM hash use:
./ct3_to_ntlm.bin BB23EF89F50FC595 1122334455667788

To crack with hashcat create a file with the following contents:
727B4E35F947129E:1122334455667788
A52B9CDEDAE86934:1122334455667788

To crack with hashcat:
./hashcat -m 14000 -a 3 -1 charsets/DES_full.charset --hex-charset hashes.txt ?1?1?1?1?1?1?1?1

La contraseña usada en este caso es "password" y podemos verificar el hash NTLM con

root@kitploit:~
echo -n password | iconv -f utf8 -t utf16le | openssl dgst -md4
(stdin)= 8846f7eaee8fb117ad06bdd830b7586c

Con la utilidad ct3_to_ntlm.bin de hashcat-utils que escribió atom, puedes calcular los últimos 4 caracteres del hash NTLM a partir del desafío NTLMv1, que la herramienta muestra.

root@kitploit:~
./ct3_to_ntlm.bin BB23EF89F50FC595 1122334455667788
586c

Esto coincide con el final del hash NTLM, así que estamos listos; el siguiente paso es crackear los hashes con hashcat, por lo que necesitamos crear un archivo hashes.txt con

root@kitploit:~
727B4E35F947129E:1122334455667788
A52B9CDEDAE86934:1122334455667788

Para crackear esto con hashcat usa

root@kitploit:~
./hashcat -m 14000 -a 3 -1 charsets/DES_full.charset --hex-charset hashes.txt ?1?1?1?1?1?1?1?1

Una nota importante es que hashcat devolverá claves DES y no claves NTLM; tendrás que convertirlas a NTLM usando deskey_to_ntlm.pl de Hashcat Utils, lo cual se puede hacer con

root@kitploit:~
./deskey_to_ntlm.pl [cracked des key 1]
./deskey_to_ntlm.pl [cracked des key 2]

Luego combinas las dos claves NTLM con la tercera parte de la contraseña, calculada por (lo que la herramienta genere)

root@kitploit:~
./ct3_to_ntlm.bin BB23EF89F50FC595 1122334455667788

Suma esas 3 partes y listo.

Probando con el conversor DES

Si solo estás probando mi código y ya conoces la contraseña, puedes usar el conversor des

root@kitploit:~
python ntlm-to-des.py --ntlm b4b9b02e6f09a9bd760f388b67351e2b
DESKEY1: b55d6d04e67926
DESKEY2: bcba83e6895b9d

echo "$HEX[b55d6d04e67926]">>des.cand
echo "$HEX[bcba83e6895b9d]">>des.cand

Básicamente haces lo siguiente

root@kitploit:~
echo "$HEX[b55d6d04e67926]">>des.cand
echo "$HEX[bcba83e6895b9d]">>des.cand
root@kitploit:~
./hashcat -m 14000 -a 0 hashes.txt des.cand

Y deberías tener algunos hashes revertidos

NTLMv1 con ESS

ESS cambia el desafío del servidor; si ves ESS en tu responder porque no usaste --lm o el cliente está configurado para no entregar una respuesta LM, entonces ESS se activa. Además, --disable-ess intentará forzar la desactivación de ESS; sin embargo, esto requiere una copia reciente (agosto de 2021 o más reciente) de impacket y responder.

La salida de ESS se ve así

root@kitploit:~
[SMB] NTLMv1-SSP Client   : 184.64.60.62
[SMB] NTLMv1-SSP Username : DUSTIN-5AA37877\hashcat
[SMB] NTLMv1-SSP Hash     : hashcat::DUSTIN-5AA37877:85D5BC2CE95161CD00000000000000000000000000000000:892F905962F76D323837F613F88DE27C2BBD6C9ABCD021D0:1122334455667788

El hash real se ve así

root@kitploit:~
hashcat::DUSTIN-5AA37877:85D5BC2CE95161CD00000000000000000000000000000000:892F905962F76D323837F613F88DE27C2BBD6C9ABCD021D0:1122334455667788

Para usar la herramienta, ejecuta (es compatible con python3)

root@kitploit:~
python3 ntlmv1.py --ntlmv1 "hashcat::DUSTIN-5AA37877:85D5BC2CE95161CD00000000000000000000000000000000:892F905962F76D323837F613F88DE27C2BBD6C9ABCD021D0:1122334455667788"

La herramienta generará

root@kitploit:~
Hashfield Split:
['hashcat', '', 'DUSTIN-5AA37877', '85D5BC2CE95161CD00000000000000000000000000000000', '892F905962F76D323837F613F88DE27C2BBD6C9ABCD021D0', '1122334455667788']

Hostname: DUSTIN-5AA37877
Username: hashcat
LM Response: 85D5BC2CE95161CD00000000000000000000000000000000
NT Response: 892F905962F76D323837F613F88DE27C2BBD6C9ABCD021D0
Client Challenge: 1122334455667788
SRV Challenge: b36d2b9a8607ea77

To Calculate final 4 characters of NTLM hash use:
./ct3_to_ntlm.bin 2BBD6C9ABCD021D0 1122334455667788 85D5BC2CE95161CD00000000000000000000000000000000

To crack with hashcat create a file with the following contents:
892F905962F76D32:b36d2b9a8607ea77
3837F613F88DE27C:b36d2b9a8607ea77

To crack with hashcat:
./hashcat -m 14000 -a 3 -1 charsets/DES_full.charset --hex-charset hashes.txt ?1?1?1?1?1?1?1?1

Ahora, la contraseña que usamos en este caso es password, que tiene un hash NTLM de b4b9b02e6f09a9bd760f388b67351e2b

root@kitploit:~
echo -n password | iconv -f utf8 -t utf16le | openssl dgst -md4
(stdin)= 8846f7eaee8fb117ad06bdd830b7586c

Así que para calcular los últimos 4 caracteres del hash NTLM para nuestro desafío NTLMv1-ESS usamos el siguiente comando de la salida de la herramienta para obtener 586c

root@kitploit:~
./ct3_to_ntlm.bin 2BBD6C9ABCD021D0 1122334455667788 85D5BC2CE95161CD00000000000000000000000000000000

Debemos crear un archivo de hashes con el siguiente contenido, según la herramienta, que tiene los desafíos SRV modificados para lidiar con ESS

root@kitploit:~
892F905962F76D32:b36d2b9a8607ea77
3837F613F88DE27C:b36d2b9a8607ea77

Para crackear con hashcat usamos lo siguiente, según la herramienta

root@kitploit:~
./hashcat -m 14000 -a 3 -1 charsets/DES_full.charset --hex-charset hashes.txt ?1?1?1?1?1?1?1?1

Una nota importante es que hashcat devolverá claves DES y no claves NTLM; tendrás que convertirlas a NTLM usando deskey_to_ntlm.pl de Hashcat Utils, lo cual se puede hacer con

root@kitploit:~
./deskey_to_ntlm.pl [cracked des key 1]
./deskey_to_ntlm.pl [cracked des key 2]

Ahora, suponiendo que ya sabíamos cuál era el hash NTLM en este caso porque lo creamos nosotros y queremos validar la herramienta, usamos lo siguiente

root@kitploit:~
python ntlm-to-des.py --ntlm b4b9b02e6f09a9bd760f388b67351e2b

Esto nos mostrará algunos datos

root@kitploit:~
DESKEY1: b55d6d04e67926
DESKEY2: bcba83e6895b9d

echo "$HEX[b55d6d04e67926]">>des.cand
echo "$HEX[bcba83e6895b9d]">>des.cand

La parte importante aquí es

root@kitploit:~
echo "$HEX[b55d6d04e67926]">>des.cand
echo "$HEX[bcba83e6895b9d]">>des.cand

Ahora podemos crackear con hashcat usando lo siguiente y sin esperar 8 días

root@kitploit:~
./hashcat -m 14000 -a 0 hashes.txt des.cand

Conversor de hash NTLM a clave DES para pruebas de validación de datos

root@kitploit:~
python ntlm-to-des.py  --ntlm 8846f7eaee8fb117ad06bdd830b7586c
root@kitploit:~
DESKEY1: b55d6d05e6792652
DESKEY2: bdba82e6895a9d6a

echo "$HEX[b55d6d05e6792652]">>des.cand
echo "$HEX[bdba82e6895a9d6a]">>des.cand

Soporte JSON

La herramienta ahora admite salida json; activa la bandera --json y generará una salida json:

root@kitploit:~
python3 ntlmv1.py --ntlmv1 "SERVER1$::MOG:7EF3F506F5EA510E00000000000000000000000000000000:1217169BD7BE0270A033899BD440016D3E6DACAF5894D504:ff81dfd6b12c269d" --json
{"ntlmv1": "SERVER1$::MOG:7EF3F506F5EA510E00000000000000000000000000000000:1217169BD7BE0270A033899BD440016D3E6DACAF5894D504:ff81dfd6b12c269d", "user": "SERVER1$", "domain": "MOG", "challenge": "ff81dfd6b12c269d", "lmresp": "7EF3F506F5EA510E00000000000000000000000000000000", "ntresp": "1217169BD7BE0270A033899BD440016D3E6DACAF5894D504", "ct3": "3E6DACAF5894D504", "srvchallenge": "888f8ee0fa031808", "ct3_crack": "ct3_to_ntlm.bin 3E6DACAF5894D504 ff81dfd6b12c269d 7EF3F506F5EA510E00000000000000000000000000000000", "hash1": "1217169BD7BE0270:888f8ee0fa031808", "hash2": "A033899BD440016D:888f8ee0fa031808", "CRACK_SH": "$NETLM$888f8ee0fa031808$1217169BD7BE0270A033899BD440016D3E6DACAF5894D504"}

Los campos importantes son:

  • hash1: este es el primer hash para el modo 14000 de hashcat
  • hash2: este es el segundo hash para el modo 14000 de hashcat
  • ct3_crack: este es el comando para crackear ct3 usando hashcat utils
  • ntlmv1: este es el hash ntlmv1 original
  • user: este es el campo de usuario
  • domain: este es el campo de dominio
  • lmresp: esta es la respuesta lm
  • ntresp: esta es la respuesta nt
  • challenge: este es el campo de desafío original
  • srvchallenge: si se trata de un hash ESS, el desafío del servidor se rellena

NTLMv1 a NTLM en un solo paso con un potfile de hashcat

Después de haber crackeado los hashes DES del modo 14000 con hashcat, las claves DES crackeadas quedan en tu potfile como líneas ct:challenge:key (la clave normalmente se almacena como $HEX[...] porque son bytes crudos). En lugar de copiar manualmente las claves con --key1/--key2, apunta ntlmv1_nextgen.py al potfile y recuperará las claves, las validará contra los textos cifrados y completará la conversión NTLMv1 -> NTLM en un solo paso:

root@kitploit:~
python3 ntlmv1_nextgen.py --ntlmv1 "hashcat::DUSTIN-5AA37877:76365E2D142B5612980C67D057EB9EFEEE5EF6EB6FF6E04D:727B4E35F947129EA52B9CDEDAE86934BB23EF89F50FC595:1122334455667788" --potfile ~/.local/share/hashcat/hashcat.potfile

El hash NTLM recuperado se muestra como el campo NTLM (o ntlm en --json). --potfile funciona con --ntlmv1, --99 y --mschapv2, maneja hashes ESS (emparejando con el desafío derivado de MD5) e ignora entradas de potfile no relacionadas. Los --key1/--key2 explícitos siguen teniendo prioridad sobre las coincidencias del potfile.

Se aceptan potfiles tanto de hashcat como de rainbowcrackalack. El campo de clave crackeada puede ser un blob $HEX[...] de hashcat, bytes imprimibles sin formato, una clave de 8 bytes en 16 hex sin formato, o una clave de 7 bytes en 14 hex sin formato (la forma que emite rainbowcrackalack); todos se normalizan y se vuelven a validar contra el texto cifrado antes de usarse.

Agradecimiento / Licencia

Este repositorio se basa en publicaciones del foro de atom, el autor de hashcat, y en la investigación de moxie marlinspike. Como el código de atom está en gran parte bajo licencia MIT, este proyecto también ha adoptado esa licencia para ser compatible. Este proyecto no es GPL, de modo que cualquier entidad puede incorporarlo a un proyecto comercial sin restricciones.

Descargar herramienta
OpciónDescripción
--ntlmv1 <hash>Hash NTLMv1 en formato Responder (user::host:LM:NT:challenge).
--99 <blob>Blob base64 de estilo $99$.
--mschapv2 <hash>Hash MSCHAPv2 en formato John the Ripper.
--nthash <hex>Hash NTLM de 32 caracteres; deriva las claves DES y los candidatos de hashcat.
--password <pw>Deriva las claves DES --key1/--key2 a partir de una contraseña conocida.
--key1 <hex> / --key2 <hex>Proporciona las claves DES de 16 hex para CT1/CT2 directamente (tiene prioridad sobre --potfile).
--potfile <path>Potfile hashcat/rainbowcrackalack con claves del modo 14000 crackeadas; recupera key1/key2 automáticamente para completar la conversión NTLMv1 -> NTLM.
--hashcatEmite cadenas en formato hashcat para CT1/CT2.
--jsonSalida solo JSON (implica el cálculo de CT3).