Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
ntlmv1-multi — NTLMv1 Multitool | Kitploit
ツール/GitHubGitHub/evilmog/ntlmv1-multi
Password CrackingEncryption/Decryption ToolsPassword AttacksHash AnalysisCryptographyAuthentication
GitHubevilmog/ntlmv1-multi

ntlmv1-multi

NTLMv1 Multitool

リポジトリを見る
670991ヶ月前Kitploit レビュー済み

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有

NTLMv1 Multi Tool

このツールはNTLMv1ハッシュをNTLMに逆変換します。より具体的には、NTLMv1チャレンジレスポンスをhashcatモード14000でクラック可能な形式に変換します。

CT3の計算

--ct3 を指定すると、NTLMの最後の4桁を自動計算します。--json を指定すると --ct3 が暗黙的に有効になり、要素 pt3 として返されます。例:

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

最後に、このアップデートでは関数を main() に移動したので、モジュールをインポートして直接使用できます。

2020年11月10日のアップデート

--hashcat と --hcutils の2つの新しいオプションを追加しました。これらはそれぞれhashcatとhashcat-utilsへのパスを設定し、ツールから直接コピー&ペーストできるようにします。

hashcatディレクトリが ~/git/hashcat にあり、hashcat-utilsディレクトリが ~/git/hashcat-utils にある場合、ツールは次のように実行します:

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

2019年12月10日のアップデート

これはおそらくPython 3対応です。また、ntlmv1とntlmv1-essを統合しました。

ntlmv1-multi

NTLMv1マルチツール

このツールは、NTLMv1/NTLMv1-ESS/MSCHAPv2ハッシュを、hashcatのDESモード14000でクラックできるように変換します。

このツールは、hashcatチームのatomによる研究に基づいています。 https://hashcat.net/forum/thread-5832.html

また、https://hashcat.net/forum/thread-5912.html および https://www.youtube.com/watch?v=LIHACAct2vo にも基づいています。

インストール

次世代ツール ntlmv1_nextgen.py を、uvを使ってグローバルコマンド ntlmv1-multi としてインストールします:

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

または、インストールせずにリポジトリから直接実行します:

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

このプロジェクトには pyproject.toml(Python 3.14+、pycryptodome 依存)が同梱されているため、uv がすべてを解決します。元の ntlmv1.py は、任意のPython 3インタープリタでスタンドアロン実行できます。

次世代ツール(ntlmv1_nextgen.py)

ntlmv1_nextgen.py(ntlmv1-multi コマンドとしてインストール)は、最新のパーサーです。NTLMv1、$99$ ブロブ、MSCHAPv2を受け入れ、ESSを自動処理し、クラック済みポットファイルからNTLMv1 -> NTLM変換をワンステップで完了できます。利用可能なオプション:

使用方法

ESSなしのNTLMv1

キャプチャにはresponderを --lm フラグ付きで使用します。--lm がないとESSが有効になり、クラックに時間がかかります。また、新しいフラグ --disable-ess があり、ESSを無効化してダウングレードを強制しようとします。まず --disable-ess を試し、失敗した場合は --lm を試してください。--disable-ess または --lm を使用する場合、FPGAを使用するにはクライアントチャレンジを 1122334455667788 にしてください。ただし、そのトラフィックがネットワークIDS/IPSの保護機能をトリガーする可能性があります。

キャプチャは次のようになります。

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

ハッシュ部分は次のようになります。

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

マルチツールは次のように使用します(Python 2互換でもあります)。

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

サーバーチャレンジなどを変更せずに、次のデータを出力します。

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

この場合に使用したパスワードは "password" で、NTLMハッシュは次のように検証できます。

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

atomが作成したhashcat utilsの ct3_to_ntlm.bin を使用すると、ツールが出力するNTLMv1チャレンジからNTLMハッシュの最後の4文字を計算できます。

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

これはNTLMハッシュの末尾と一致するので問題ありません。次のステップはhashcatでハッシュをクラックすることです。そのためには、以下の内容で hashes.txt ファイルを作成する必要があります。

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

hashcatでクラックするには次を使用します。

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

重要な注意点として、hashcatはDESキーを返し、NTLMキーは返しません。Hashcat Utils の deskey_to_ntlm.pl を使用してNTLMに変換する必要があります。これは次のように実行できます。

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

次に、2つのNTLMキーをパスワードの3番目の部分と結合します。これは(ツールが出力する内容によって)次のように計算されます。

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

これら3つを合わせれば完了です。

desコンバーターでのテスト

コードをテストするだけで、パスワードがすでにわかっている場合は、desコンバーターを使用できます。

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

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

基本的には次のようにします。

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

そうすれば、いくつかの逆変換されたハッシュが得られるはずです。

ESS付きNTLMv1

ESSはサーバーチャレンジを変更します。responderで --lm を使用しなかったため、またはクライアントがLMレスポンスを返さない設定のため、responderにESSが表示される場合、ESSが有効になります。また、--disable-ess はESSを強制的にオフにしようとしますが、これには最近のコピー(2021年8月以降)のimpacketとresponderが必要です。

ESS出力は次のようになります。

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

実際のハッシュは次のようになります。

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

ツールを使用するには次を実行します(Python 3互換です)。

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

ツールは次のように出力します。

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

この場合、使用するパスワードは "password" で、NTLMハッシュは b4b9b02e6f09a9bd760f388b67351e2b です。

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

NTLMv1-ESSチャレンジのNTLMハッシュの最後の4文字を計算するには、ツール出力の次のコマンドを使用して 586c を取得します。

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

ツールに従い、ESSに対処するために変更されたSRVチャレンジを含む、次の内容のハッシュファイルを作成する必要があります。

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

hashcatでクラックするには、ツールに従って次を使用します。

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

重要な注意点として、hashcatはDESキーを返し、NTLMキーは返しません。Hashcat Utils の deskey_to_ntlm.pl を使用してNTLMに変換する必要があります。これは次のように実行できます。

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

ここで、このケースではNTLMハッシュが既知であり、ツールを検証したいと仮定すると、次のように使用します。

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

これにより、いくつかのデータが出力されます。

root@kitploit:~
DESKEY1: b55d6d04e67926
DESKEY2: bcba83e6895b9d

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

ここで重要な部分は次のとおりです。

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

これで、8日間待たずに次のコマンドでhashcatを使用してクラックできます。

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

データ検証テスト用のNTLMハッシュからDESキーへのコンバーター

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サポート

ツールはJSON出力をサポートするようになりました。--json フラグを設定すると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"}

重要なフィールドは次のとおりです:

  • hash1 - hashcatモード14000用の最初のハッシュ
  • hash2 - hashcatモード14000用の2番目のハッシュ
  • ct3_crack - hashcat utilsを使用してct3をクラックするコマンド
  • ntlmv1 - 元のntlmv1ハッシュ
  • user - ユーザーフィールド
  • domain - ドメインフィールド
  • lmresp - LMレスポンス
  • ntresp - NTレスポンス
  • challenge - 元のチャレンジフィールド
  • srvchallenge - ESSハッシュの場合、SRVチャレンジが設定されます

hashcatポットファイルによるワンショットNTLMv1からNTLMへの変換

hashcatでモード14000のDESハッシュをクラックした後、クラックされたDESキーは ct:challenge:key 行としてポットファイルに格納されます(キーは通常、生バイトのため $HEX[...] として保存されます)。--key1/--key2 でキーを手動でコピーして戻す代わりに、ntlmv1_nextgen.py にポットファイルを指定すると、キーを復元し、暗号文に対して検証し、NTLMv1 -> NTLM変換をワンステップで完了します:

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

復元されたNTLMハッシュは NTLM フィールド(--json では ntlm)として出力されます。--potfile は --ntlmv1、--99、--mschapv2 で動作し、ESSハッシュ(MD5派生チャレンジで照合)を処理し、無関係なポットファイルエントリを無視します。明示的な --key1/--key2 は引き続きポットファイルの一致より優先されます。

hashcatとrainbowcrackalackの両方のポットファイルが受け入れられます。クラックされたキーフィールドは、hashcatの $HEX[...] ブロブ、素の印刷可能バイト、素の16 hex 8バイトキー、または素の14 hex 7バイトキー(rainbowcrackalackが出力する形式)のいずれかです。これらはすべて使用前に正規化され、暗号文に対して再検証されます。

謝辞 / ライセンス

このリポジトリは、hashcatの作者であるatomのフォーラム投稿と、moxie marlinspikeによる研究に基づいています。atomのコードは大部分がMITライセンスであるため、このプロジェクトも互換性を持たせるためにそのライセンスを採用しています。このプロジェクトはGPLではありません。したがって、どの組織も制限なく商用プロジェクトに組み込むことができます。

ツールをダウンロード
オプション説明
--ntlmv1 <hash>Responder形式のNTLMv1ハッシュ(user::host:LM:NT:challenge)。
--99 <blob>$99$ 形式のbase64ブロブ。
--mschapv2 <hash>John the Ripper形式のMSCHAPv2ハッシュ。
--nthash <hex>32文字のNTLMハッシュ。DESキーとhashcat候補を導出します。
--password <pw>既知のパスワードから --key1/--key2 のDESキーを導出します。
--key1 <hex> / --key2 <hex>CT1/CT2用の16進DESキーを直接指定します(--potfile より優先)。
--potfile <path>クラック済みモード14000キーのhashcat/rainbowcrackalackポットファイル。key1/key2を自動的に復元してNTLMv1 -> NTLM変換を完了します。
--hashcatCT1/CT2のhashcat形式文字列を出力します。
--jsonJSONのみ出力します(CT3計算を暗黙的に含みます)。