Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

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

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

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

工具目录

分类

查看所有分类
Loading categories
ShuckNT — ShuckNT 是 Shuck.sh 在线服务的脚本,适用于本地(on-premise)部署。它旨在降级、转换、剖析并剥离基于数据加密标准(DES)的身份验证令牌。 | Kitploit
工具/GitHubGitHub/yanncam/shucknt
密码破解密码攻击哈希分析密码学渗透测试身份验证
GitHubyanncam/shucknt

ShuckNT

ShuckNT 是 Shuck.sh 在线服务的脚本,适用于本地(on-premise)部署。它旨在降级、转换、剖析并剥离基于数据加密标准(DES)的身份验证令牌。

查看仓库
7811101年前Kitploit 审核通过

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享
网站

Shuck.sh

🔐 ShuckNT:破解前先对哈希脱壳 | Shuck.sh 的脚本

ShuckNT 是 Shuck.sh 在线服务用于本地部署的脚本(在线试用!)。它旨在降级、转换、剖析和脱壳基于数据加密标准(DES)的身份验证令牌。

支持的算法 / 格式:

  • MSCHAPv2
  • NET(NT)LM
  • (LM|NT)HASH
  • PPTP-VPN $99$
  • 以上全部支持任意挑战值!

ShuckNT 依赖哈希脱壳原理来优化挑战-响应破解和可利用性。

密码脱壳是一种从更新后的密码哈希中剥离分层的方法,移除其新密码哈希算法带来的优势,并将其还原为较弱的算法。攻击者可以针对旧的重新哈希密码或预哈希密码使用密码脱壳,从而剥离或“脱去”强外层密码哈希算法。

从输入令牌列表中,ShuckNT 提供:

  • 通过智能搜索最新版 HaveIBeenPwned 数据库(若存在),立即得到 NT-hash(可直接用于 pass-the-hash);
  • Crack.Sh 即用型优化令牌,若在 HIBP-DB 中未找到 NT-hash,可减少或免除费用;
  • 多种转换格式,以便通过其他工具(hashcat、jtr、CloudCracker 等)尝试破解:
    • Hashcat 模式 5500:将 NetNTLMv1 破解为明文(结果不确定,取决于字典、掩码、规则等);
    • Hashcat 模式 27000:将 NetNTLMv1 脱壳为 NT-hash(结果不确定 / 取决于 NT 字典等);
    • Hashcat 模式 14000:将 NetNTLMv1 脱壳为 DES 密钥,再得到 NT-hash(100% 成功 / 需要时间);
  • 挑战-响应剖析的所有细节(PT1/2/3、K1/2/3、CT1/2/3、HIBP 出现次数/候选、LMresp、NTresp、挑战值等)。

🔍 工作原理

在 Shuck.sh 脚本 ShuckNT 的背后,本质上是在自定义的反转二进制 HIBP 数据库中,针对候选 NT-hash 子集(其最后两个字节已知)进行高效且优化的 DES 密钥碰撞二分搜索。

在(时间有限的)安全评估期间,如果你通过 Responder 等工具捕获约 100 个 NetNTLMv1(无论是否使用 ESS),通过 Shuck.sh/ShuckNT 搜索对应的 NT-Hash(若已泄露到 HIBP)只需几秒钟(约 10 秒)。

Shuck.sh 的脚本 ShuckNT 负责通过将加密算法转换为较弱形式来进行简化(在可能的情况下去除 ESS,转换为 Crack.Sh 的免费格式,或者如果已在 HIBP 中泄露则直接转换为 NT-Hash 格式)。因此,NetNTLMv1-ESS/SSP、PPTP VPN 或 MSCHAPv2 挑战值(在 Crack.Sh 上既不免费又耗时)有可能被即时免费脱壳!

Shuck.sh/ShuckNT 的最初想法源于在为客户进行安全评估时节省时间的愿望,不依赖可用性不一定持续的第三方在线服务,并且能够在本地自主运行。

🔨 安装 ShuckNT / 准备 HIBP 数据库

安装过程包括:

  • 获取 ShuckNT 项目;
  • 准备 HaveIBeenPwned 数据库(仅需一次,耗时数分钟)(这些步骤需在 Unix/Linux 环境下进行):
    • 下载最新版 按哈希排序的 HaveIBeenPwned NT-hash 数据库(数 GB)(镜像链接或通过 torrent 下载);
    • 通过 7zip 解压该数据库;
    • 直接通过 ShuckNT 脚本反转该数据库中的所有哈希;
    • 排序所有已反转的哈希;
    • 直接通过 ShuckNT 脚本转换此新数据库为二进制格式(或通过我朋友 @JoshuaMart 的 HIBP_PasswordList_Slimmer :));
  • 尽情使用 ShuckNT!

安装命令:

root@kitploit:~
# Install dependencies
apt install p7zip-full php git

# Get ShuckNT tool
git clone https://github.com/yanncam/ShuckNT
cd ShuckNT

# Prepare HaveIBeenPwned database (one time only, takes several minutes)
## Download latest HIBP-DB (can take severals minutes...)
wget https://downloads.pwnedpasswords.com/passwords/pwned-passwords-ntlm-ordered-by-hash-v8.7z
## Extract HIBP-DB (can take severals minutes...)
7z e pwned-passwords-ntlm-ordered-by-hash-v8.7z
## Reverse all hashes (can take severals minutes...)
php shucknt.php -r pwned-passwords-ntlm-ordered-by-hash-v8.txt -t pwned-passwords-ntlm-ordered-by-hash-v8.txt-reversed
## Sort all reversed-hashes (can take severals minutes...)
sort pwned-passwords-ntlm-ordered-by-hash-v8.txt-reversed -o pwned-passwords-ntlm-ordered-by-hash-v8.txt-reversed-sorted
## Convert to binary format (can take severals minutes...)
php shucknt.php -b pwned-passwords-ntlm-ordered-by-hash-v8.txt-reversed-sorted -t pwned-passwords-ntlm-reversed-ordered-by-hash-v8.bin
## Free space to keep only pwned-passwords-ntlm-reversed-ordered-by-hash-v8.bin
rm -f pwned-passwords-ntlm-ordered-by-hash-v8.7z
rm -f pwned-passwords-ntlm-ordered-by-hash-v8.txt
rm -f pwned-passwords-ntlm-ordered-by-hash-v8.txt-reversed
rm -f pwned-passwords-ntlm-ordered-by-hash-v8.txt-reversed-sorted

# Enjoy ShuckNT via commandline, or web http://[HOST]/shucknt.php
php shucknt.php -h

以 ShuckNT 所期望的格式生成数据库需要在 Unix/Linux 系统下完成。

ShuckNT 与有效数据库一起使用已在 Windows/Linux 上通过 PHP7/8+ 测试过。

请注意,ShuckNT 使用 PHP-OpenSSL 扩展的 DES-ECB 算法。因此,对于使用 OpenSSL3 的新版 PHP,请启用 legacy provider。

每一步的校验和:

root@kitploit:~
$ sha1sum pwned-passwords-ntlm-*
225a993a908e3d73ffa68859c4f128e17359358e  pwned-passwords-ntlm-ordered-by-hash-v8.7z
4b6c4728c21f64d6a58c7b63d98dcf342c068407  pwned-passwords-ntlm-ordered-by-hash-v8.txt
88094c4a332ecfac9a15c23ba886194d1810b0b2  pwned-passwords-ntlm-ordered-by-hash-v8.txt-reversed
d5486dfbf960f36ff0e1cf313a1b80db5cd4137f  pwned-passwords-ntlm-ordered-by-hash-v8.txt-reversed-sorted
31a5c1b605cca5bcf71196c70f291c05aa3fe86c  pwned-passwords-ntlm-reversed-ordered-by-hash-v8.bin

$ sha256sum pwned-passwords-ntlm-*
ea83d536387e6b149f2e362bf7dfbf521523812611359f47620fd44dae9770ee  pwned-passwords-ntlm-ordered-by-hash-v8.7z
916cfd1772d24f2fe99aa5f37d4a465359c7b6f7d39f45ffbf27deca697b7116  pwned-passwords-ntlm-ordered-by-hash-v8.txt
76f9e101801dfc44489cad4edec5f14d634c2b4676bb9ffbc7e9968c9a5356a5  pwned-passwords-ntlm-ordered-by-hash-v8.txt-reversed
6ee13a35ed88e8073be088a20560cb9fefcc6d08e599241244eaee01dc053a44  pwned-passwords-ntlm-ordered-by-hash-v8.txt-reversed-sorted
ac2f6bf681fbe636b94f3ce3f2b594ef3d0af7671375478db1153874e8a5d873  pwned-passwords-ntlm-reversed-ordered-by-hash-v8.bin

🔥 演示 / 示例 / 如何使用?

ShuckNT 是一个无任何依赖的独立 PHP 脚本。它可以通过 CLI 命令行 或 Web 浏览器 使用。

CLI 命令行独立脚本

帮助、参数和语法:

root@kitploit:~
$ php shucknt.php -h
 __ _                _        __  _____
/ _\ |__  _   _  ___| | __ /\ \ \/__   \
\ \| '_ \| | | |/ __| |/ //  \/ /  / /\/
_\ \ | | | |_| | (__|   </ /\  /  / /
\__/_| |_|\__,_|\___|_|\_\_\ \/   \/  v1.0
DES-based authentication token shucker (https://shuck.sh)
@author : ycam | @asafety.fr / @yann.cam

ShuckNT is design to dowgrade, convert, dissect and shuck authentication token based on Data Encryption Standard (DES).
Algorithms / formats supported :
        - NetNTLMv1(-ESS/SSP)
        - MSCHAPv2
        - NET(NT)LM
        - (LM|NT)HASH
        - PPTP-VPN $99$
        - All with any challenge value!

ShuckNT rely on "hash shucking" principle to optimize challenge-response cracking and exploitability.

From a list of input tokens, ShuckNT provides :
- The NT-hash instantly (pass-the-hash ready) through a smart-research in the HaveIBeenPwned latest database (if present);
- The Crack.Sh ready-to-use optimized token, to pay less or nothing if NT-hash not found in HIBP-DB;
- Several converted formats to try to crack them via other tools (hashcat, jtr, CloudCracker, etc.) :
        - Hashcat mode 5500 : to crack NetNTLMv1 to plaintext (unpredictable result, depend on wordlists, masks, rules...);
        - Hashcat mode 27000: to shuck NetNTLMv1 to NT-hash (unpredictable result / depend on NT-wordlists...);
        - Hashcat mode 14000: to shuck NetNTLMv1 to DES-keys then NT-hash (100% result / time needed);
- All the details of the dissection of the challenge-response (PT1/2/3, K1/2/3, CT1/2/3, HIBP occurences/candidates, LMresp, NTresp, challenges, etc.).

Use '-h' to print help.

usage: php shucknt.php  [-h] [-f tokens.txt] [-i 'tokenValue'] [-w wordlist.bin] [-o json|stdout|web] [-v]
                        [-r input_wordlist.txt] [-b input_wordlist_reversed_sorted.txt] [-r output_wordlist] [-j]

Arguments details:

        -h                      Print this help
        -f tokens.txt           Input tokens file, one per line.
        -i 'tokenValue'         Inline input token from stdin.
        -w wordlist.bin         Specific binary-reversed-sorted-wordlist to use.
        -o json|stdout|web      Commandline output in json, stdout or web format.
        -v                      Verbosity for stdout output format only.
        -r input_wordlist.txt   Input wordlist file to be reversed.
        -b input_wordlist.txt   Input reversed-sorted-wordlist file to be binarized.
        -r output_wordlist      Output file for reversal or binarization.
        -j                      Do not display header (for json output).

These are common ShuckNT commands used in various situations:

        # Shuck tokens from an input file to stdout with verbosity:
        php shucknt.php -f tokens.txt -w pwned-passwords-ntlm-reversed-ordered-by-hash-v8.bin -v

        # Shuck token from stdin to json output:
        php shucknt.php -i '$99$1a7F1qr2HihoXfs/56u5XMdpDZ83N6hW/HI=' -w pwned-passwords-ntlm-reversed-ordered-by-hash-v8.bin -o json -j

        # Shuck token from stdin to light stdout (use default wordlist defined as constant in script):
        php shucknt.php -i 'ycam::ad:DEADC0DEDEADC0DE00000000000000000000000000000000:70C249F75FB6D2C0AC2C2D3808386CCAB1514A2095C582ED:1122334455667788'

        # Reverse HIBPDB to output file:
        php shucknt.php -r pwned-passwords-ntlm-ordered-by-hash-v8.txt -t pwned-passwords-ntlm-ordered-by-hash-v8.txt-reversed

        # Binarize HIBPDB already reversed and sorted to output file:
        php shucknt.php -b pwned-passwords-ntlm-ordered-by-hash-v8.txt-reversed-sorted -t pwned-passwords-ntlm-reversed-ordered-by-hash-v8.bin

从 stdin(使用默认 HIBP-DB)并输出详细信息,将一个身份验证令牌 NetNTLMv1 with ESS/SSP 即时脱壳为对应的 NT-hash:

root@kitploit:~
$ php shucknt.php -i 'ycam::ad:DEADC0DEDEADC0DE00000000000000000000000000000000:70C249F75FB6D2C0AC2C2D3808386CCAB1514A2095C582ED:1122334455667788' -v
[...]
1 hashes-challenges analyzed in 0 seconds, with 1 NT-Hash instantly broken for pass-the-hash and 0 that can be broken via crack.sh for free.

[INPUT] ycam::ad:DEADC0DEDEADC0DE00000000000000000000000000000000:70C249F75FB6D2C0AC2C2D3808386CCAB1514A2095C582ED:1122334455667788
        [USERNAME] ycam
        [DOMAIN] ad
        [LMRESP] DEADC0DEDEADC0DE00000000000000000000000000000000
        [NTRESP] 70C249F75FB6D2C0AC2C2D3808386CCAB1514A2095C582ED
                [CT1] 70C249F75FB6D2C0
                [CT2] AC2C2D3808386CCA
                [CT3] B1514A2095C582ED
        [ESS] YES
                [CLIENTCHALL] 1122334455667788
                [SERVERCHALL] DEADC0DEDEADC0DE
        [CHALLENGE] C85086419358F950
        [NTHASH-SHUCKED] 93B3C62269D55DB9CA660BBB91E2BD0B
                [HIBP-CANDIDATES] 12778
                [HIBP-OCCURENCE] 15
                [PT1] 93B3C62269D55D
                [PT2] B9CA660BBB91E2
                [PT3] BD0B
                [K1] 93D9F1C5274F55BB
                [K2] B9E599C1BBDD47C5
                [K3] BD85C10101010101
        [CRACK.SH-TOKEN] $NETLM$C85086419358F950$70C249F75FB6D2C0AC2C2D3808386CCAB1514A2095C582ED (20-300$)
        [FORMAT-NETNTLMV1-NO-ESS] ycam::ad::70C249F75FB6D2C0AC2C2D3808386CCAB1514A2095C582ED:C85086419358F950
        [FORMAT-MSCHAPV2] $MSCHAPv2$C85086419358F950$70C249F75FB6D2C0AC2C2D3808386CCAB1514A2095C582ED$
        [FORMAT-NET(NT)LM] $NETLM$C85086419358F950$70C249F75FB6D2C0AC2C2D3808386CCAB1514A2095C582ED
        [FORMAT-PPTP] $99$yFCGQZNY+VBwwkn3X7bSwKwsLTgIOGzKvQs=

从一个输入文件(使用指定的 HIBP-DB)并以简单输出,将多种受支持格式的身份验证令牌即时脱壳为对应的 NT-hash:

root@kitploit:~
$ php shucknt.php -f tokens-samples.txt -w pwned-passwords-ntlm-reversed-ordered-by-hash-v8.bin
[...]
10 hashes-challenges analyzed in 3 seconds, with 8 NT-Hash instantly broken for pass-the-hash and 1 that can be broken via crack.sh for free.

[INPUT] $99$1a7F1qr2HihoXfs/56u5XMdpDZ83N6hW/HI=
        [NTHASH-SHUCKED] DE26CCE0356891A4A020E7C4957AFC72

[INPUT] LMHASH:2B56DAEB658F9FE977BD3B61E7976684388EF712DB95C6F8
        [NTHASH-SHUCKED] C780C78872A102256E946B3AD238F661

[INPUT] NTHASH:D4ACBAA3CD626E2A074D76C7491D332F8FB8989968E88736
        [NTHASH-SHUCKED] C22B315C040AE6E0EFEE3518D830362B

[INPUT] ycam::ad:DEADC0DEDEADC0DE00000000000000000000000000000000:70C249F75FB6D2C0AC2C2D3808386CCAB1514A2095C582ED:1122334455667788
        [NTHASH-SHUCKED] 93B3C62269D55DB9CA660BBB91E2BD0B

[INPUT] $NETNTLM$4803CB182E23B79A$BA4DA703C6A056727CC7B62FFA065970D5D400F18D02C6D1
        [NTHASH-SHUCKED] 8E2FDD50C6FB5D0E22E2455394D98D2A

[INPUT] user::domain.tld:727B4E35F947129EA52B9CDEDAE86934BB23EF89F50FC595:727B4E35F947129EA52B9CDEDAE86934BB23EF89F50FC595:1122334455667788
        [NTHASH-SHUCKED] 8846F7EAEE8FB117AD06BDD830B7586C

[INPUT] $MSCHAPv2$1337133713371337$F93A1DB1C044133F52582EFDA5C31667EBBE6F8F2814E539$root
        [NTHASH-SHUCKED] 209C6174DA490CAEB422F3FA5A7AE634

[INPUT] $NETLM$FE2CFD84F6C7DEF8$852074A98A9B2AF70D59D449AD0F9B898B4A9455C7B90CE7
        [NTHASH-SHUCKED] 0A42BC909E226C6F8FFCBAA6AB0DA43D

[INPUT] $99$ESIzRFVmd4i8671kB52wcm9qK5VdJR7lJKU=
        [CRACK.SH-TOKEN] NTHASH:BCEBBD64079DB0726F6A2B955D251EE57D6DD8A109D77A0D (0$)

[INPUT] x::x:FEC7A34F78C17A9700000000000000000000000000000000:E875F0A28BD7729D071D7DF05272B0FB4549AE926FE36255:1122334455667788
        [CRACK.SH-TOKEN] $NETLM$1A6A5C911D8A4DF2$E875F0A28BD7729D071D7DF05272B0FB4549AE926FE36255 (20-300$)

仅使用 JSON 输出脱壳令牌:

root@kitploit:~
$ php shucknt.php -f tokens-samples.txt -o json -j
[...]
    {
        "type": "NetNTLMv1 (ESS\/SSP)",
        "description": "NetNTLMv1 (ESS\/SSP) type with C85086419358F950 as challenge",
        "token": "ycam::ad:DEADC0DEDEADC0DE00000000000000000000000000000000:70C249F75FB6D2C0AC2C2D3808386CCAB1514A2095C582ED:1122334455667788",
        "user": "ycam",
        "domain": "ad",
        "lmresp": "DEADC0DEDEADC0DE00000000000000000000000000000000",
        "ntresp": "70C249F75FB6D2C0AC2C2D3808386CCAB1514A2095C582ED",
        "ct1": "70C249F75FB6D2C0",
        "ct2": "AC2C2D3808386CCA",
        "ct3": "B1514A2095C582ED",
        "ess": true,
        "clientchallenge": "1122334455667788",
        "serverchallenge": "DEADC0DEDEADC0DE",
        "challenge": "C85086419358F950",
        "deskeys": {
            "k1": "93D9F1C5274F55BB",
            "k2": "B9E599C1BBDD47C5",
            "k3": "BD85C10101010101"
        },
        "nthash": "93B3C62269D55DB9CA660BBB91E2BD0B",
        "pt1": "93B3C62269D55D",
        "pt2": "B9CA660BBB91E2",
        "pt3": "BD0B",
        "reversePt3": "B0DB",
        "HIBPcountCandidates": 12778,
        "HIBPoccurence": 15,
        "crackshToken": "$NETLM$C85086419358F950$70C249F75FB6D2C0AC2C2D3808386CCAB1514A2095C582ED (20-300$)",
        "h4m14000": "echo \"70C249F75FB6D2C0:C85086419358F950\">14000.hash;echo \"AC2C2D3808386CCA:C85086419358F950\">>14000.hash;hashcat -m 14000 -a 3 -1 charsets\/DES_full.charset --hex-charset 14000.hash ?1?1?1?1?1?1?1?1",
        "h4m5500": "echo \"ycam::ad::70C249F75FB6D2C0AC2C2D3808386CCAB1514A2095C582ED:C85086419358F950\">5500.hash;hashcat -m 5500 -a 3 5500.hash ?a?a?a?a?a --increment",
        "h4m27000": "echo \"ycam::ad::70C249F75FB6D2C0AC2C2D3808386CCAB1514A2095C582ED:C85086419358F950\">27000.hash;hashcat -m 27000 -a 0 27000.hash nthash-wordlist.txt"
    }
[...]

Web 浏览器独立脚本

将 ShuckNT 托管在支持 PHP 7/8+ 的 Web 服务器(Apache、Nginx 等)上:

ShuckNTweb

🧰 深入了解...

实现 ShuckNT 工具的在线服务 Shuck.sh 提供了许多细节和FAQ。

在线还提供了一个动态且即时的生成器,允许从明文密码或 NT-hash 观察身份验证令牌生成算法的机制(NetNTLMv1(-ESS/SSP)、MSCHAPv2、PPTP-VPN 等)。

最后,在线同样提供了一个动态且即时的转换器,允许从身份验证令牌(NetNTLMv1(-ESS/SSP)、MSCHAPv2、PPTP-VPN 等)详细展示其剖析结果,甚至在提供 DES 密钥 K1 和 K2 的情况下获得相应的 NT-hash(例如在 DES-KPA 攻击之后)。

🍻 致谢

  • 感谢 Crack.sh 提供的出色在线服务,它至今仍不可或缺!
  • 同样感谢 HaveIBeenPwned 的 Troy Hunt 持续提升人们对密码泄露的认识。
  • 感谢整个 Hashcat 社区,感谢他们令人兴奋的研究、工具和技术!
  • 感谢 zarbibi,在我被二进制运算搞得头疼时提供帮助。
  • 向 Le££e 团队的所有成员致敬 :)
下载工具