Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
ntlmv1-multi — NTLMv1 Multitool | Kitploit
Ferramentas/GitHubGitHub/evilmog/ntlmv1-multi
Password CrackingEncryption/Decryption ToolsPassword AttacksHash AnalysisCryptographyAuthentication
GitHubevilmog/ntlmv1-multi

ntlmv1-multi

NTLMv1 Multitool

Ver Repositório
67099há 1 mêsRevisado pelo Kitploit

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

Ferramenta Multi NTLMv1

Esta ferramenta reverte hashes NTLMv1 para NTLM ou, mais especificamente, formata respostas de desafio NTLMv1 em um formato que pode ser quebrado com o hashcat no modo 14000

Cálculo do CT3

Se você especificar --ct3, ele calculará os 4 dígitos finais do NTLM para você; se você especificar --json, então --ct3 está implícito e será retornado como o elemento pt3, por exemplo:

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 fim, nesta atualização, movi as funções para main() para que você possa simplesmente importar o módulo para uso direto.

Atualizações de 10 de novembro de 2020

Adicionei 2 novas opções, --hashcat e --hcutils, que definem o caminho para o seu hashcat e hashcat-utils, respectivamente, para que você possa copiar e colar diretamente da ferramenta.

Você executaria a ferramenta assim se o diretório do hashcat estivesse em ~/git/hashcat e o diretório do hashcat-utils estivesse em ~/git/hashcat-utils:

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

Atualizações de 10 de dezembro de 2019

Sim, isso é supostamente compatível com Python 3; também mesclei ntlmv1 e ntlmv1-ess.

ntlmv1-multi

Multiferramenta NTLMv1

Esta ferramenta modifica hashes NTLMv1/NTLMv1-ESS/MSCHAPv2 para que possam ser quebrados com o Modo DES 14000 no hashcat.

Esta ferramenta é baseada no trabalho feito por atom, do time Hashcat: https://hashcat.net/forum/thread-5832.html

Também é baseada em https://hashcat.net/forum/thread-5912.html e https://www.youtube.com/watch?v=LIHACAct2vo

Instalação

Instale a ferramenta de próxima geração ntlmv1_nextgen.py como um comando global ntlmv1-multi com uv:

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

Ou execute-a diretamente do repositório sem instalar:

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

O projeto acompanha um pyproject.toml (Python 3.14+, dependência pycryptodome), portanto o uv resolve tudo para você; o ntlmv1.py original ainda roda de forma autônoma com qualquer interpretador Python 3.

Ferramenta de próxima geração (ntlmv1_nextgen.py)

ntlmv1_nextgen.py (instalado como o comando ntlmv1-multi) é o parser moderno. Ele aceita NTLMv1, blobs $99$ e MSCHAPv2, lida com ESS automaticamente e pode concluir a conversão completa de NTLMv1 -> NTLM a partir de um potfile quebrado em uma única etapa. Opções disponíveis:

Uso

NTLMv1 sem ESS

Para capturar, use o responder com a flag --lm; sem --lm você ativará o ESS, o que levará mais tempo para quebrar. Também há uma nova flag, --disable-ess, que tentará desabilitar o ESS e forçar o downgrade. Tente --disable-ess primeiro e, se falhar, tente --lm. Se estiver usando --disable-ess ou --lm, certifique-se de que o desafio do cliente seja 1122334455667788 para usar o FPGA; no entanto, isso pode acionar algumas proteções de IDS/IPS de rede se esse tráfego for visto.

A captura ficará assim.

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

A parte do hash fica assim

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

Então use a multi ferramenta assim (ela também é compatível com Python 2)

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

Ela produzirá os seguintes dados sem modificar os desafios do 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

A senha usada neste caso é "password" e podemos verificar o hash NTLM com

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

Com o ct3_to_ntlm.bin dos utilitários do hashcat que o atom escreveu, você pode calcular os últimos 4 caracteres do hash NTLM a partir do desafio NTLMv1, que a ferramenta gera.

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

Isso corresponde ao final do hash NTLM, então estamos prontos. O próximo passo é quebrar os hashes com o hashcat; para isso, precisamos criar um arquivo hashes.txt com

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

Para quebrar isso com o hashcat, use

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

Uma nota importante é que o hashcat retornará chaves DES, e não chaves NTLM; você precisará converter para NTLM usando deskey_to_ntlm.pl do Hashcat Utils. Isso pode ser feito com

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

Você então combina as duas chaves NTLM com a terceira parte da senha, calculada por (o que a ferramenta gerar)

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

Some essas 3 partes e você estará pronto.

Testando com o conversor DES

Se você está apenas testando meu código e já conhece a senha, pode usar o 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

Basicamente, você faz o seguinte

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

E você deve obter alguns hashes revertidos

NTLMv1 com ESS

O ESS altera o desafio do servidor. Se você vir ESS no seu responder porque não usou --lm ou o cliente está configurado para não fornecer uma resposta LM, o ESS é ativado. Além disso, --disable-ess tentará forçar a desativação do ESS; no entanto, isso exige uma cópia recente (agosto de 2021 ou mais recente) do impacket e do responder.

A saída do ESS fica assim

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

O hash real fica assim

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

Para usar a ferramenta, execute (ela é compatível com Python 3)

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

A ferramenta produzirá

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

Agora, a senha que estamos usando neste caso é "password", que tem um hash NTLM de b4b9b02e6f09a9bd760f388b67351e2b

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

Então, para calcular os últimos 4 caracteres do hash NTLM para nosso desafio NTLMv1-ESS, usamos o seguinte comando da saída da ferramenta para obter 586c

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

Devemos criar um arquivo de hash com o seguinte conteúdo, de acordo com a ferramenta, que contém os desafios SRV modificados para lidar com o ESS

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

Para quebrar com o hashcat, usamos o seguinte, de acordo com a ferramenta

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

Uma nota importante é que o hashcat retornará chaves DES, e não chaves NTLM; você precisará converter para NTLM usando deskey_to_ntlm.pl do Hashcat Utils. Isso pode ser feito com

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

Agora, supondo que já soubéssemos qual era o hash NTLM no caso, porque nós o criamos, e queremos validar a ferramenta, usamos o seguinte

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

Isso produzirá alguns dados para nós

root@kitploit:~
DESKEY1: b55d6d04e67926
DESKEY2: bcba83e6895b9d

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

A parte importante aqui é

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

Agora podemos quebrar com o hashcat usando o seguinte e sem esperar 8 dias

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

Conversor de Hash NTLM para Chave DES para teste de validação de dados

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

Suporte a JSON

A ferramenta agora suporta saída JSON. Defina a flag --json e ela produzirá saída 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"}

Os campos importantes são:

  • hash1 - este é o primeiro hash para o modo 14000 do hashcat
  • hash2 - este é o segundo hash para o modo 14000 do hashcat
  • ct3_crack - este é o comando para quebrar o ct3 usando os utilitários do hashcat
  • ntlmv1 - este é o hash ntlmv1 original
  • user - este é o campo do usuário
  • domain - este é o campo do domínio
  • lmresp - esta é a resposta LM
  • ntresp - esta é a resposta NT
  • challenge - este é o campo de desafio original
  • srvchallenge - se este for um hash ESS, o desafio do servidor (srv challenge) é preenchido

NTLMv1 para NTLM em uma única etapa com um potfile do hashcat

Depois de quebrar os hashes DES do modo 14000 com o hashcat, as chaves DES quebradas ficam no seu potfile como linhas ct:challenge:key (a chave normalmente é armazenada como $HEX[...] por ser bytes brutos). Em vez de copiar manualmente as chaves de volta com --key1/--key2, aponte ntlmv1_nextgen.py para o potfile e ele recuperará as chaves, validará-as contra os textos cifrados e concluirá a conversão completa de NTLMv1 -> NTLM em uma única etapa:

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

O hash NTLM recuperado é exibido como o campo NTLM (ou ntlm em --json). --potfile funciona com --ntlmv1, --99 e --mschapv2, lida com hashes ESS (correspondendo ao desafio derivado de MD5) e ignora entradas não relacionadas no potfile. --key1/--key2 explícitos ainda têm precedência sobre as correspondências do potfile.

São aceitos potfiles do hashcat e do rainbowcrackalack. O campo da chave quebrada pode ser um blob $HEX[...] do hashcat, bytes imprimíveis puros, uma chave pura de 8 bytes em 16 hex ou uma chave pura de 7 bytes em 14 hex (a forma que o rainbowcrackalack emite) — todos são normalizados e revalidados contra o texto cifrado antes do uso.

Agradecimentos / Licença

Este repositório é baseado em postagens no fórum por atom, o autor do hashcat, e em pesquisas de moxie marlinspike. Como o código do atom é amplamente licenciado sob MIT, este projeto também adotou essa licença para ser compatível. Este projeto não é GPL, para que qualquer entidade possa incorporá-lo em um projeto comercial sem restrições.

Baixar ferramenta
OpçãoDescrição
--ntlmv1 <hash>Hash NTLMv1 no formato Responder (user::host:LM:NT:challenge).
--99 <blob>Blob base64 no estilo $99$.
--mschapv2 <hash>Hash MSCHAPv2 no formato John the Ripper.
--nthash <hex>Hash NTLM de 32 caracteres; deriva as chaves DES e os candidatos para hashcat.
--password <pw>Deriva as chaves DES --key1/--key2 a partir de uma senha conhecida.
--key1 <hex> / --key2 <hex>Forneça diretamente as chaves DES de 16 hex para CT1/CT2 (tem precedência sobre --potfile).
--potfile <path>Potfile do hashcat/rainbowcrackalack com chaves do modo 14000 quebradas; recupera key1/key2 automaticamente para concluir a conversão NTLMv1 -> NTLM.
--hashcatEmite strings no formato hashcat para CT1/CT2.
--jsonSaída apenas em JSON (implica o cálculo do CT3).