Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
Strumenti/GitHubGitHub/evilmog/ntlmv1-multi
Password CrackingStrumenti di Crittografia/DecrittografiaAttacchi alle PasswordAnalisi HashCrittografiaAutenticazione
GitHubevilmog/ntlmv1-multi

ntlmv1-multi

NTLMv1 Multitool

Vedi Repository
6709982 mesi faRevisionato da Kitploit

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

NTLMv1 Multi Tool

Questo strumento converte gli hash NTLMv1 in NTLM, o più precisamente formatta le risposte alla challenge NTLMv1 in un formato che può essere crackato con hashcat modalità 14000.

Calcolo di CT3

Se specifichi --ct3, lo strumento calcola le ultime 4 cifre dell'NTLM per te; se specifichi --json, allora --ct3 è implicito e lo restituisce come elemento pt3, ad esempio:

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"}

Infine in questo aggiornamento ho spostato le funzioni in main() così puoi semplicemente importare il modulo per un uso diretto.

Aggiornamenti del 10 novembre 2020

Ho aggiunto 2 nuove opzioni, --hashcat e --hcutils, che impostano rispettivamente il percorso di hashcat e hashcat-utils, così puoi fare un copia e incolla diretto dallo strumento.

Eseguirai lo strumento in questo modo se la tua directory hashcat si trova in ~/git/hashcat e la tua directory hashcat-utils in ~/git/hashcat-utils:

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

Aggiornamenti del 10 dicembre 2019

Sì, è presumibilmente compatibile con Python 3; ho anche unito ntlmv1 e ntlmv1-ess.

ntlmv1-multi

Multitool NTLMv1

Questo strumento modifica gli hash NTLMv1/NTLMv1-ESS/MSCHAPv2 in modo che possano essere crackati con la modalità DES 14000 in hashcat.

Questo strumento si basa sul lavoro di atom del team Hashcat https://hashcat.net/forum/thread-5832.html

Si basa anche su https://hashcat.net/forum/thread-5912.html e https://www.youtube.com/watch?v=LIHACAct2vo

Installazione

Installa lo strumento di nuova generazione ntlmv1_nextgen.py come comando globale ntlmv1-multi con uv:

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

Oppure eseguilo direttamente dal repository senza installarlo:

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

Il progetto include un pyproject.toml (Python 3.14+, dipendenza pycryptodome), così uv risolve tutto per te; il ntlmv1.py originale continua a funzionare in modo autonomo con qualsiasi interprete Python 3.

Strumento di nuova generazione (ntlmv1_nextgen.py)

ntlmv1_nextgen.py (installato come comando ntlmv1-multi) è il parser moderno. Accetta NTLMv1, blob $99$ e MSCHAPv2, gestisce automaticamente ESS e può completare l'intera conversione NTLMv1 -> NTLM da un potfile crackato in un solo passaggio. Opzioni disponibili:

Utilizzo

NTLMv1 senza ESS

Per la cattura usa responder con il flag --lm; senza --lm attiverai ESS, che richiederà più tempo per il cracking. Inoltre è disponibile un nuovo flag, --disable-ess, che tenta di disabilitare ESS e forzare il downgrade. Prova prima --disable-ess e, se fallisce, prova --lm. Se usi --disable-ess o --lm, assicurati che la client challenge sia 1122334455667788 per usare la FPGA; tuttavia ciò potrebbe attivare alcune protezioni IDS/IPS di rete se vedono quel traffico.

La cattura apparirà così.

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 dell'hash appare così

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

Quindi usa il multi tool in questo modo (è anche compatibile con Python 2)

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

Lo strumento produrrà i seguenti dati senza modificare le server challenge, ecc.

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 password usata in questo caso è "password" e possiamo verificare l'hash NTLM con

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

Con ct3_to_ntlm.bin degli hashcat utils, scritto da atom, puoi calcolare gli ultimi 4 caratteri dell'hash NTLM dalla challenge NTLMv1, che lo strumento restituisce

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

Questo corrisponde alla parte finale dell'hash NTLM, quindi siamo a posto. Il passo successivo è crackare gli hash con hashcat, quindi dobbiamo creare un file hashes.txt con

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

Per crackarlo con hashcat usi

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: hashcat restituirà chiavi DES e non chiavi NTLM; dovrai convertirle in NTLM usando deskey_to_ntlm.pl di Hashcat Utils. Puoi farlo con

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

Poi combini le due chiavi NTLM con la terza parte della password, calcolata da (qualunque cosa lo strumento restituisca)

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

Somma queste 3 parti e sei a posto.

Test con il convertitore DES

Se stai semplicemente testando il mio codice e conosci già la password, puoi usare il convertitore DES

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

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

In pratica fai quanto segue

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

E dovresti ottenere alcuni hash invertiti.

NTLMv1 con ESS

ESS modifica la server challenge; se vedi ESS nel tuo responder perché non hai usato --lm oppure il client è configurato per non fornire una risposta LM, allora ESS viene attivato. Inoltre --disable-ess tenterà di forzare la disattivazione di ESS, ma richiede una copia recente (agosto 2021 o successiva) di impacket e responder.

L'output ESS appare così

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

L'hash vero e proprio appare così

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

Per usare lo strumento, esegui (è compatibile con Python 3)

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

Lo strumento restituirà

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

Ora, la password che stiamo usando in questo caso è password, il cui hash NTLM è b4b9b02e6f09a9bd760f388b67351e2b

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

Quindi, per calcolare gli ultimi 4 caratteri dell'hash NTLM per la nostra challenge NTLMv1-ESS, usiamo il seguente comando dall'output dello strumento per ottenere 586c

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

Dobbiamo creare un file hash con il seguente contenuto, secondo lo strumento, che ha le SRV Challenge modificate per gestire ESS

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

Per crackare con hashcat usiamo quanto segue, secondo lo strumento

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: hashcat restituirà chiavi DES e non chiavi NTLM; dovrai convertirle in NTLM usando deskey_to_ntlm.pl di Hashcat Utils. Puoi farlo con

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

Ora, supponendo che conoscessimo già l'hash NTLM in questo caso perché lo abbiamo creato noi e vogliamo validare gli strumenti, usiamo quanto segue

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

Questo restituirà alcuni dati

root@kitploit:~
DESKEY1: b55d6d04e67926
DESKEY2: bcba83e6895b9d

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

La parte importante qui è

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

Ora possiamo crackare con hashcat usando quanto segue, senza aspettare 8 giorni

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

Convertitore da Hash NTLM a Chiave DES per il test di validazione dei dati

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

Supporto JSON

Lo strumento ora supporta l'output JSON; imposta il flag --json e restituirà un output 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"}

I campi importanti sono:

  • hash1: questo è il primo hash per la modalità 14000 di hashcat
  • hash2: questo è il secondo hash per la modalità 14000 di hashcat
  • ct3_crack: questo è il comando per crackare ct3 usando hashcat utils
  • ntlmv1: questo è l'hash ntlmv1 originale
  • user: questo è il campo utente
  • domain: questo è il campo dominio
  • lmresp: questa è la risposta LM
  • ntresp: questa è la risposta NT
  • challenge: questo è il campo challenge originale
  • srvchallenge: se si tratta di un hash ESS, il campo srv challenge viene popolato

Conversione one-shot NTLMv1 in NTLM con un potfile di hashcat

Dopo aver crackato gli hash DES della modalità 14000 con hashcat, le chiavi DES crackate finiscono nel potfile come righe ct:challenge:key (la chiave è normalmente memorizzata come $HEX[...] poiché sono byte grezzi). Invece di copiare manualmente le chiavi con --key1/--key2, punta ntlmv1_nextgen.py al potfile e recupererà le chiavi, le validerà rispetto ai ciphertext e completerà l'intera conversione NTLMv1 -> NTLM in un solo passaggio:

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

L'hash NTLM recuperato viene stampato come campo NTLM (o ntlm in --json). --potfile funziona con --ntlmv1, --99 e --mschapv2, gestisce gli hash ESS (corrispondendo sulla challenge derivata da MD5) e ignora le voci del potfile non correlate. --key1/--key2 espliciti hanno comunque precedenza sulle corrispondenze del potfile.

Sono accettati sia i potfile di hashcat che quelli di rainbowcrackalack. Il campo della chiave crackata può essere un blob hashcat $HEX[...], byte stampabili puri, una chiave pura a 16 esadecimali di 8 byte, oppure una chiave pura a 14 esadecimali di 7 byte (la forma emessa da rainbowcrackalack): tutti vengono normalizzati e rivalidati rispetto al ciphertext prima dell'uso.

Riconoscimenti / Licenza

Questo repository si basa sui post del forum di atom, l'autore di hashcat, e sulla ricerca di moxie marlinspike. Poiché il codice di atom è in gran parte concesso in licenza MIT, questo progetto ha adottato la stessa licenza per essere compatibile. Questo progetto non è GPL, in modo che qualsiasi entità possa incorporarlo in un progetto commerciale senza restrizioni.

Scarica lo strumento
OpzioneDescrizione
--ntlmv1 <hash>Hash NTLMv1 in formato Responder (user::host:LM:NT:challenge).
--99 <blob>Blob base64 in stile $99$.
--mschapv2 <hash>Hash MSCHAPv2 in formato John the Ripper.
--nthash <hex>Hash NTLM a 32 caratteri; deriva le chiavi DES e i candidati hashcat.
--password <pw>Deriva le chiavi DES --key1/--key2 da una password nota.
--key1 <hex> / --key2 <hex>Fornisce direttamente le chiavi DES a 16 esadecimali per CT1/CT2 (ha precedenza su --potfile).
--potfile <path>Potfile di hashcat/rainbowcrackalack con le chiavi crackate della modalità 14000; recupera automaticamente key1/key2 per completare la conversione NTLMv1 -> NTLM.
--hashcatEmette stringhe in formato hashcat per CT1/CT2.
--jsonSolo output JSON (implica il calcolo di CT3).