Skip to content
KitploitKITPLOIT
工具漏洞利用博客
Log in
提交
工具漏洞利用博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
ntlmv1-multi — NTLMv1 多功能工具 | Kitploit
工具/GitHubGitHub/evilmog/ntlmv1-multi
密码破解加密/解密工具密码攻击哈希分析密码学身份验证
GitHubevilmog/ntlmv1-multi

ntlmv1-multi

NTLMv1 多功能工具

查看仓库
67099233个月前Kitploit 审核通过

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

NTLMv1 多功能工具

此工具将 NTLMv1 哈希还原为 NTLM,更具体地说,它将 NTLMv1 挑战响应格式化为可以使用 hashcat 模式 14000 破解的格式。

CT3 计算

如果你指定 --ct3,它会为你计算 NTLM 的最后 4 位数字;如果你指定 --json,则隐式启用 --ct3,并会以 pt3 元素的形式返回,例如:

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,它们分别设置你的 hashcat 和 hashcat-utils 路径,这样你可以直接从工具中复制粘贴使用。

如果你的 hashcat 目录位于 ~/git/hashcat,hashcat-utils 目录位于 ~/git/hashcat-utils,你可以这样运行该工具:

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

安装

使用 uv 将 ntlmv1_nextgen.py 下一代工具安装为全局 ntlmv1-multi 命令:

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

或者不安装,直接从仓库运行:

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$ blob 和 MSCHAPv2,自动处理 ESS,并且可以从已破解的 potfile 一步完成完整的 NTLMv1 -> NTLM 转换。可用选项:

OptionDescription
--ntlmv1 <hash>Responder 格式的 NTLMv1 哈希(user::host:LM:NT:challenge)。
--99 <blob>$99$ 风格的 base64 blob。
--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>已破解 mode 14000 密钥的 hashcat/rainbowcrackalack potfile;自动恢复 key1/key2 以完成 NTLMv1 -> NTLM 转换。
--hashcat输出 CT1/CT2 的 hashcat 格式字符串。
--json仅输出 JSON(隐式启用 CT3 计算)。

用法

不带 ESS 的 NTLMv1

要捕获,请使用带 --lm 标志的 responder;如果不使用 --lm,将启用 ESS,这会导致破解时间更长。另外还有一个新标志 --disable-ess,它会尝试禁用 ESS 并强制降级。请先尝试 --disable-ess,如果失败,请尝试 --lm。如果使用 --disable-ess 或 --lm,请确保你的客户端挑战值为 1122334455667788 以使用 FPGA,但这可能会触发一些网络 IDS/IPS 防护,如果它们检测到该流量。

捕获结果如下所示。

[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

哈希部分如下所示:

hashcat::DUSTIN-5AA37877:76365E2D142B5612980C67D057EB9EFEEE5EF6EB6FF6E04D:727B4E35F947129EA52B9CDEDAE86934BB23EF89F50FC595:1122334455667788

因此像这样使用多工具(它同样兼容 Python 2):

python3 ntlmv1.py --ntlmv1 hashcat::DUSTIN-5AA37877:76365E2D142B5612980C67D057EB9EFEEE5EF6EB6FF6E04D:727B4E35F947129EA52B9CDEDAE86934BB23EF89F50FC595:1122334455667788

它将输出以下数据,而不会修改服务器挑战等内容:

['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 哈希:

echo -n password | iconv -f utf8 -t utf16le | openssl dgst -md4
(stdin)= 8846f7eaee8fb117ad06bdd830b7586c

借助 atom 编写的 hashcat utils 中的 ct3_to_ntlm.bin,你可以根据工具输出的 NTLMv1 挑战计算出 NTLM 哈希的最后 4 个字符:

./ct3_to_ntlm.bin BB23EF89F50FC595 1122334455667788
586c

这与 NTLM 哈希的末尾一致,因此我们可以继续。下一步是使用 hashcat 破解哈希,所以我们需要创建一个 hashes.txt 文件,内容如下:

727B4E35F947129E:1122334455667788
A52B9CDEDAE86934:1122334455667788

要使用 hashcat 破解此文件,请使用:

./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,可以通过以下命令完成:

./deskey_to_ntlm.pl [cracked des key 1]
./deskey_to_ntlm.pl [cracked des key 2]

然后你将两个 NTLM 密钥与密码的第三部分组合起来。第三部分通过以下命令计算(即工具输出的内容):

./ct3_to_ntlm.bin BB23EF89F50FC595 1122334455667788

将这 3 个部分组合在一起,就可以得到完整的 NTLM 哈希了。

使用 DES 转换器进行测试

如果你只是在测试我的代码,并且已经知道密码,可以使用 DES 转换器:

python ntlm-to-des.py --ntlm b4b9b02e6f09a9bd760f388b67351e2b
DESKEY1: b55d6d04e67926
DESKEY2: bcba83e6895b9d

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

基本上你需要执行以下操作:

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

然后你应该能得到一些反转后的哈希。

带 ESS 的 NTLMv1

ESS 会改变服务器挑战。如果你在 responder 中看到 ESS,是因为你没有使用 --lm,或者客户端被设置为不发出 LM 响应,此时 ESS 会被启用。另外,--disable-ess 会尝试强制关闭 ESS,但这需要较新版本(2021 年 8 月或更新)的 impacket 和 responder。

ESS 输出如下所示:

[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

实际的哈希如下所示:

hashcat::DUSTIN-5AA37877:85D5BC2CE95161CD00000000000000000000000000000000:892F905962F76D323837F613F88DE27C2BBD6C9ABCD021D0:1122334455667788

要使用该工具,请运行(它兼容 python3):

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

该工具将输出:

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

echo -n password | iconv -f utf8 -t utf16le | openssl dgst -md4
(stdin)= 8846f7eaee8fb117ad06bdd830b7586c
下载工具