一、John the Ripper(JtR):通用压缩包破解入门工具
核心定位
开源跨平台密码破解工具,CTF压缩包暴力破解的入门首选,支持ZIP/RAR/7Z等几乎所有主流压缩格式,核心逻辑为提取加密哈希→破解哈希,兼容性强、操作门槛低,适合无GPU环境、简单密码的快速破解。
1. 全平台详细安装步骤
平台详细安装&验证步骤Kali Linux(首选)1. 系统默认自带,直接打开终端验证:john --version,输出版本号即安装成功
2. 无自带则执行安装命令:
sudo apt update && sudo apt install john -y
3. 解压必备通用字典rockyou.txt(CTF必用):
sudo gunzip /usr/share/wordlists/rockyou.txt.gz
4. 验证字典路径:ls /usr/share/wordlists/rockyou.txt,有输出即正常Windows1. 前往JtR官网下载Windows OpenCL 预编译版
2. 解压到无中文、无空格的路径(如D:\Tools\john)
3. 按下Win+R,输入cmd打开命令提示符,执行cd D:\Tools\john\run进入运行目录
4. 验证:john.exe --version,输出版本号即成功macOS1. 安装Homebrew(已安装可跳过):
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
2. 执行安装命令:brew install john
3. 验证:john --version2. 核心操作:标准压缩包破解全流程(以ZIP为例,必学)
前置准备
将待破解的加密压缩包encrypted.zip放到终端当前工作目录(避免中文/空格路径)。
Step 1:提取压缩包加密哈希(必做,核心前置步骤)
JtR不直接破解压缩包,需先提取和密码绑定的哈希值,剥离压缩包无关结构,提升破解效率。- # 核心命令:提取ZIP压缩包哈希,保存到zip.hash文件
- zip2john encrypted.zip > zip.hash
- # 其他格式对应命令
- rar2john encrypted.rar > rar.hash # RAR格式
- 7z2john encrypted.7z > 7z.hash # 7Z格式
复制代码
- 操作验证:执行cat zip.hash,能看到以encrypted.zip
zip2$开头的长字符串,即提取成功。
- 踩坑提示:若提示zip2john: 未找到命令,Kali执行sudo apt install john-data,Windows用完整路径zip2john.exe。
Step 2:字典攻击(CTF最常用,优先尝试)
用通用字典rockyou.txt破解哈希,60%的CTF压缩包密码可通过此方式破解。- # Linux/macOS 核心命令
- john --wordlist=/usr/share/wordlists/rockyou.txt zip.hash
- # Windows 核心命令(run目录下执行)
- john.exe --wordlist=rockyou.txt zip.hash
复制代码
- 成功输出示例:
- Using default input encoding: UTF-8
- Loaded 1 password hash (ZIP, WinZip [PBKDF2-SHA1 256/256 AVX2 8x])
- Cost 1 (iteration count) is 100000 for all loaded hashes
- Will run 4 OpenMP threads
- Press 'q' or Ctrl-C to abort, 'h' for help, almost any other key for status
- 123456 (encrypted.zip)
- 1g 0:00:00:01 DONE (2026-02-25 15:30) 0.8928g/s 10240p/s 10240c/s 10240C/s 123456
- Use the "--show" option to display all of the cracked passwords reliably
- Session completed
复制代码 其中123456就是压缩包的明文密码。
Step 3:查看已破解的密码
破解完成后,可随时查看历史破解结果,无需重新跑字典:- # 核心命令
- john --show zip.hash
- # 对应格式
- john --show rar.hash
- john --show 7z.hash
复制代码
- 成功输出示例:
- encrypted.zip:123456:secret.txt:encrypted.zip::encrypted.zip
- 1 password hash cracked, 0 left
复制代码 Step 4:掩码攻击(已知密码格式时使用,精准高效)
若通过题目线索知道密码的格式/长度,无需大字典,用掩码模式精准破解,速度是字典攻击的10倍以上。
掩码语法(必记)
占位符对应字符集?l小写字母 a-z?u大写字母 A-Z?d数字 0-9?s特殊符号 !@#$%^&*()等?a所有字符(小写+大写+数字+符号)高频场景命令示例
- # 场景1:密码是4位纯数字(如1234)
- john --mask=?d?d?d?d zip.hash
- # 场景2:密码是3个小写字母+2个数字(如abc12)
- john --mask=?l?l?l?d?d zip.hash
- # 场景3:密码是大写开头+3个小写+2个数字(如Abcd12)
- john --mask=?u?l?l?l?d?d zip.hash
- # 场景4:密码固定前缀为CTF,后接4位数字(如CTF1234)
- john --mask=CTF?d?d?d?d zip.hash
复制代码 3. 核心参数速查表
参数详细作用使用场景--wordlist=字典路径指定破解用的字典文件字典攻击,必选参数--mask=掩码规则启用掩码攻击,指定密码格式已知密码长度/字符规则时使用--format=zip/rar/7z强制指定哈希格式,避免自动识别错误哈希识别失败、多格式混合时使用--incremental启用全量增量暴力破解,无任何限制完全无密码线索时兜底使用(速度极慢,不推荐优先用)--show查看已破解的密码结果破解完成后查看密码、验证破解状态--session=会话名保存破解会话,支持断点续跑长时间破解,中途需要暂停时使用--restore=会话名恢复之前保存的破解会话续跑中断的破解任务4. 避坑指南(新手必看)
- 绝对不要用中文、空格、特殊符号的路径存放压缩包/字典/工具,否则会提示文件找不到。
- 仅支持RAR3格式,RAR5格式兼容性极差,遇到RAR5直接换Hashcat。
- 提取哈希后不要修改哈希文件的核心内容,否则会导致破解失败。
- Linux下权限不足时,命令前加sudo执行。
- 破解中途按q可正常退出,按Ctrl+C强制退出可能丢失会话。
二、Hashcat:GPU加速破解天花板工具
核心定位
世界最快的开源密码恢复工具,核心优势是极致GPU加速,破解速度是JtR的10-100倍,完美支持RAR5、AES-256加密格式,适配复杂长密码、大字典攻击场景,是CTF压缩包进阶破解的首选工具。
1. 全平台详细安装步骤
前置要求
- NVIDIA显卡需安装CUDA Toolkit,AMD显卡需安装ROCm驱动,否则仅能使用CPU(速度极慢,不推荐)。
- 验证GPU可用性:Windows/Linux终端执行nvidia-smi,能看到显卡型号、显存信息即驱动正常。
平台详细安装&验证步骤Kali Linux(首选)1. 系统默认自带,执行验证:hashcat --version,输出版本号即成功
2. 无自带则安装:sudo apt update && sudo apt install hashcat -y
3. 验证GPU识别:hashcat -I,能看到显卡设备信息即正常Windows1. 前往Hashcat官网下载预编译版
2. 解压到无中文、无空格的路径(如D:\Tools\hashcat)
3. 按下Win+R,输入cmd打开命令提示符,执行cd D:\Tools\hashcat进入目录
4. 验证:hashcat.exe --version,输出版本号即成功
5. 验证GPU识别:hashcat.exe -I,能看到显卡信息即正常macOS1. 安装:brew install hashcat
2. 验证:hashcat --version
注意:macOS对GPU加速支持有限,优先用Linux/Windows2. 核心操作:标准压缩包破解全流程(以ZIP为例,必学)
前置准备
将待破解的加密压缩包encrypted.zip放到终端当前工作目录,提前准备好字典文件(如rockyou.txt)。
Step 1:提取压缩包加密哈希(同JtR,必做)
用zip2john/rar2john提取哈希,和JtR完全通用:- # 核心命令
- zip2john encrypted.zip > zip.hash # ZIP格式
- rar2john encrypted.rar > rar5.hash # RAR5格式
- 7z2john encrypted.7z > 7z.hash # 7Z格式
复制代码 Step 2:清理哈希文件(关键步骤,决定破解成败)
Hashcat仅识别纯哈希字符串,必须删除哈希文件中的冗余内容,否则会提示“哈希格式无效”。
详细清理步骤
- 用记事本/vim打开提取的zip.hash文件;
- 找到行首的文件名:(如encrypted.zip:),将其完全删除;
- 仅保留以$zip2$/$rar5$/$7z$开头,到行尾的完整哈希字符串;
- 保存清理后的文件为clean_hash.txt。
- 清理前示例:encrypted.zip
zip2$*0*3*0*555...*123*
- 清理后示例:$zip2$*0*3*0*555...*123*
Step 3:确认哈希类型码(必做,错误则完全无法破解)
Hashcat通过-m参数指定哈希类型,必须和压缩包格式完全匹配,CTF高频压缩包类型码如下:
压缩包格式加密类型Hashcat类型码(-m参数)ZIP标准加密13600RAR5标准加密125007Z标准加密11600ZIPAES-256加密23001Step 4:字典攻击(复杂密码首选)
用GPU加速执行字典攻击,命令格式固定,替换类型码和哈希文件即可:- # Linux/macOS 核心命令(ZIP格式示例)
- hashcat -m 13600 -a 0 clean_hash.txt /usr/share/wordlists/rockyou.txt
- # Windows 核心命令
- hashcat.exe -m 13600 -a 0 clean_hash.txt rockyou.txt
- # RAR5格式示例
- hashcat -m 12500 -a 0 clean_hash.txt rockyou.txt
复制代码
- 参数解释:
- -m 13600:指定哈希类型码,必须和格式匹配;
- -a 0:指定攻击模式为字典攻击,固定写法。
- 成功输出示例:
- $zip2$*0*3*0*555...*123*:123456
- Session..........: hashcat
- Status...........: Cracked
- Hash.Type........: ZIP
- Hash.Target......: $zip2$*0*3*0*555...*123*
- Time.Started.....: Tue Feb 25 15:40:00 2026
- Time.Estimated...: Tue Feb 25 15:40:02 2026
- Guess.Base.......: File (rockyou.txt)
- Speed.#1.........: 2456.2 kH/s (0.42ms) @ Accel:32 Loops:1024 Thr:1024 Vec:1
- Recovered........: 1/1 (100.00%) Digests
复制代码 其中冒号后的123456就是明文密码。
Step 5:掩码攻击(已知密码格式,效率拉满)
已知密码格式时,用掩码攻击无需字典,GPU加速下每秒可跑百万次,命令格式如下:- # 核心格式:hashcat -m 类型码 -a 3 哈希文件 掩码规则
- # 场景1:4位纯数字密码
- hashcat -m 13600 -a 3 clean_hash.txt ?d?d?d?d
- # 场景2:3小写+2数字(共5位)
- hashcat -m 13600 -a 3 clean_hash.txt ?l?l?l?d?d
- # 场景3:固定前缀flag{,后接4位小写字母,后缀}
- hashcat -m 13600 -a 3 clean_hash.txt flag{?l?l?l?l}
- # 场景4:8位混合字符(大写+小写+数字)
- hashcat -m 13600 -a 3 clean_hash.txt ?a?a?a?a?a?a?a?a
复制代码
- 参数解释:-a 3 固定为掩码攻击模式,掩码语法和JtR完全通用。
Step 6:查看已破解的密码
- # 核心命令,替换对应的类型码和哈希文件
- hashcat -m 13600 clean_hash.txt --show
复制代码 3. 核心参数速查表
参数详细作用使用场景-m 类型码强制指定哈希类型,必须和压缩包格式匹配所有破解场景,必选参数-a 攻击模式指定破解的攻击模式,0=字典攻击,3=掩码攻击所有破解场景,必选参数-O启用优化内核,破解速度提升30%+短密码(16位以内)破解时使用--force忽略GPU驱动警告,强制启动破解驱动兼容报错、新手无法解决设备识别问题时使用--show查看已破解的密码结果破解完成后查看密码--restore恢复中断的破解会话,支持断点续跑长时间破解中途退出后,续跑任务-w 4启用最高性能模式,最大化占用GPU资源电脑无其他任务,追求最快破解速度时使用-I查看Hashcat识别到的所有计算设备(GPU/CPU)验证GPU是否被正常识别4. 避坑指南(新手必看)
- 哈希类型码必须100%正确,错误的类型码会导致完全无法破解,甚至误报结果。
- 哈希文件必须清理干净,仅保留纯哈希字符串,不能有文件名、空格、换行等冗余内容。
- 笔记本电脑破解时,建议插电源,否则GPU会降频,破解速度大幅下降。
- 破解中途按q正常退出,会自动保存会话,下次用--restore可直接续跑。
- 无GPU环境不要用Hashcat,CPU破解速度比JtR还慢,优先用JtR。
- 遇到RAR5格式,直接用Hashcat,不要用JtR。
三、bkcrack:ZIP明文攻击专属神器
核心定位
针对ZipCrypto加密ZIP的专项破解工具,利用ZIP流加密算法漏洞,仅需已知压缩包内文件的部分/全部明文内容,即可恢复加密密钥,无需暴力破解、无需字典,突破ARCHPR等图形化工具的限制,是CTF ZIP题型的进阶杀器。
关键限制:仅支持ZipCrypto加密的ZIP文件,不支持AES-256加密的ZIP。
1. 全平台详细安装步骤
平台详细安装&验证步骤Kali Linux1. 安装依赖:sudo apt update && sudo apt install cmake build-essential git -y
2. 克隆源码编译:
git clone https://github.com/kimci86/bkcrack.git
cd bkcrack && mkdir build && cd build
cmake .. && make && sudo make install
3. 验证:bkcrack --version,输出版本号即成功Windows(新手首选)1. 前往bkcrack GitHub Releases下载Windows预编译版
2. 解压到无中文、无空格的路径(如D:\Tools\bkcrack)
3. 按下Win+R,输入cmd打开命令提示符,执行cd D:\Tools\bkcrack进入目录
4. 验证:bkcrack.exe --version,输出版本号即成功macOS1. 安装:brew install bkcrack
2. 验证:bkcrack --version2. 核心操作1:完整明文攻击全流程(最常用,成功率100%)
前置场景说明
加密压缩包encrypted.zip内有2个文件:
- flag.txt:目标加密文件,需要破解;
- readme.txt:已知完整内容的文件,内容为Hello CTF 2026!,无任何修改。
Step 1:确认ZIP加密类型(必做,否则会失败)
- 用7-Zip打开encrypted.zip,右键点击文件→属性;
- 查看「加密方式」:必须显示ZipCrypto,如果是AES-256,此工具完全不支持,直接放弃。
Step 2:准备明文文件
- 新建文本文档,命名为known_readme.txt;
- 写入和压缩包内readme.txt完全一致的内容(包括换行、空格、编码、标点符号,一个字符都不能差);
- 保存文件,放到终端当前工作目录。
Step 3:提取加密密钥(核心步骤)
执行命令,关联加密包、包内已知文件、本地明文文件,提取加密密钥:- # Linux/macOS 核心命令
- bkcrack -C encrypted.zip -c readme.txt -p known_readme.txt
- # Windows 核心命令
- bkcrack.exe -C encrypted.zip -c readme.txt -p known_readme.txt
复制代码
- 参数解释:
- -C encrypted.zip:指定目标加密ZIP包的路径;
- -c readme.txt:指定压缩包内,内容已知的文件名;
- -p known_readme.txt:指定本地保存的明文文件路径。
- 成功输出示例:
- bkcrack 1.6.0 - (c) 2022-2024 Kimci86
- [i] Input: ZLIB compressed data
- [i] Minimum overlap: 8 bytes
- [i] Attack on 32 bytes of compressed data
- [+] Keys found!
- Key 0: 1a2b3c4d
- Key 1: 5e6f7g8h
- Key 2: 9i0j1k2l
- [i] Time elapsed: 00:00:02
复制代码 复制3个Key的值,后续步骤必须使用。
Step 4:用密钥生成无密码解密包
执行命令,用提取到的密钥,生成一个无密码的解密ZIP包,可直接解压:- # Linux/macOS 核心命令(替换3个Key为你自己的)
- bkcrack -C encrypted.zip -k 1a2b3c4d 5e6f7g8h 9i0j1k2l -U decrypted.zip
- # Windows 核心命令
- bkcrack.exe -C encrypted.zip -k 1a2b3c4d 5e6f7g8h 9i0j1k2l -U decrypted.zip
复制代码
- 参数解释:
- -k 密钥1 密钥2 密钥3:填入Step3提取到的3个密钥,空格分隔;
- -U decrypted.zip:指定生成的无密码ZIP包的名称。
Step 5:解压获取flag
直接解压生成的decrypted.zip,无需密码,即可打开flag.txt获取目标flag。
3. 核心操作2:部分明文攻击全流程(进阶场景,CTF高频)
前置场景说明
不知道压缩包内文件的完整内容,仅知道文件开头的固定内容(CTF最常见:flag.txt的固定前缀flag{,长度6个字符)。
详细操作步骤
- 确认加密类型为ZipCrypto,步骤同上;
- 新建明文文件partial_known.txt,写入已知的固定内容flag{,保存;
- 执行提取密钥命令,添加-x 0参数,指定明文从文件开头偏移0位开始:
- # 核心命令
- bkcrack -C encrypted.zip -c flag.txt -p partial_known.txt -x 0
复制代码 - 等待密钥提取成功,后续生成解密包、解压的步骤和完整明文攻击完全一致。
技巧:已知明文长度越长,密钥提取速度越快、成功率越高,优先找尽可能长的已知内容。
4. 核心参数速查表
参数详细作用使用场景-C 加密ZIP路径指定目标加密ZIP压缩包的路径所有场景,必选参数-c 包内已知文件名指定压缩包内,内容已知的文件名称(必须和压缩包里的文件名完全一致)所有场景,必选参数-p 本地明文文件路径指定本地保存的、已知内容的明文文件路径所有场景,必选参数-k 密钥1 密钥2 密钥3填入提取到的3个加密密钥生成无密码解密包时使用,必选参数-U 解密包输出路径指定生成的无密码ZIP包的路径和名称生成解密包时使用,必选参数-x 偏移量指定已知明文在包内文件中的起始字节位置,默认0部分明文攻击场景使用,必选参数5. 避坑指南(新手必看)
- 明文内容必须和压缩包内的文件100%一致,包括空格、换行、编码、标点符号,哪怕差一个字符都无法提取密钥。
- 仅支持ZipCrypto加密,AES-256加密完全不支持,先确认加密类型再操作。
- 压缩包内的文件必须是未压缩存储或ZLIB压缩,其他压缩格式不支持。
- 部分明文攻击时,已知明文长度至少8个字节,成功率才会有保障。
- 密钥输入时不要输错顺序,3个密钥的顺序不能调换,否则会生成不能调换,否则会生成损坏的压缩包。
四、crunch:定制化字典生成辅助神器
核心定位
轻量开源的密码字典生成工具,可精准控制密码的长度、字符集、前缀/后缀,生成高度定制化的密码字典,配合JtR、Hashcat使用,大幅提升已知密码规则场景的破解成功率。
1. 全平台详细安装步骤
平台详细安装&验证步骤Kali Linux(首选)1. 系统默认自带,验证:crunch --version,输出版本号即成功
2. 无自带则安装:sudo apt update && sudo apt install crunch -yWindows1. 前往SourceForge下载Windows版
2. 解压到无中文路径,CMD进入目录执行crunch.exe --version验证
3. 推荐用WSL(Linux子系统)运行,兼容性更好macOS1. 安装:brew install crunch
2. 验证:crunch --version2. 核心语法&详细使用方法
基础固定语法(必记)
- crunch <最小长度> <最大长度> [自定义字符集] [可选参数] -o 字典输出路径
复制代码
- 核心参数解释:
- :生成的密码的最小字符长度,必填;
- :生成的密码的最大字符长度,必填;
- [自定义字符集]:可选,指定密码包含的字符(如数字、字母、符号),不指定则默认用小写字母a-z;
- -o 字典输出路径:指定生成的字典文件的保存路径和名称,必填。
技巧:生成固定长度的密码时,最小长度和最大长度设为相同值即可。
3. CTF高频场景详细命令示例
所有示例均可直接复制使用,替换对应参数即可。
场景1:生成固定长度纯数字字典(最常用)
- 需求:生成4位纯数字密码字典(0000-9999),保存为4digit.txt
- # 核心命令
- crunch 4 4 0123456789 -o 4digit.txt
复制代码
- 解释:4 4=固定4位长度,0123456789=字符集为0-9数字,生成10000个密码。
场景2:生成小写字母+数字混合字典
- 需求:生成6位小写字母+数字混合的密码字典,保存为6mix.txt
- # 核心命令
- crunch 6 6 abcdefghijklmnopqrstuvwxyz0123456789 -o 6mix.txt
复制代码
- 扩展:需加大写字母,字符集添加ABCDEFGHIJKLMNOPQRSTUVWXYZ即可。
场景3:生成带固定前缀的字典(CTF高频)
- 需求:密码固定前缀为CTF,后接4位数字(如CTF1234),总长度7位,保存为ctf_prefix.txt
- # 核心命令
- crunch 7 7 0123456789 -p CTF -o ctf_prefix.txt
复制代码
- 关键:总长度必须包含前缀的长度(CTF3位+4位数字=7位),否则会报错。
场景4:生成带固定后缀的字典
- 需求:密码固定后缀为@2026,前接3位小写字母(如abc@2026),总长度8位,保存为suffix.txt
- # 核心命令
- crunch 8 8 abcdefghijklmnopqrstuvwxyz -s @2026 -o suffix.txt
复制代码 场景5:生成指定字符集的精简字典
- 需求:已知密码仅包含ctf1236个字符,长度5位,生成精简字典,避免冗余,提升破解速度
- # 核心命令
- crunch 5 5 ctf123 -o custom.txt
复制代码 场景6:限制字典大小,避免生成超大文件
- 需求:生成8位数字字典,限制字典最大为100M,避免占用过多磁盘空间
- # 核心命令
- crunch 8 8 0123456789 -b 100M -o 8digit.txt
复制代码 4. 核心参数速查表
参数详细作用使用场景-o 输出路径指定生成的字典文件的保存路径和名称所有场景,必选参数-p 固定前缀指定密码的固定前缀,前缀会自动添加到每个密码开头已知密码前缀时使用-s 固定后缀指定密码的固定后缀,后缀会自动添加到每个密码结尾已知密码后缀时使用-b 大小限制限制生成的字典文件的最大大小,单位K/M/G生成大字典时,避免磁盘占满-z 压缩格式生成字典后自动压缩,支持gzip/bzip2/7z保存大字典时节省磁盘空间5. 避坑指南&联动使用方法
避坑指南
- 不要盲目生成超大字典:8位混合字符(大小写+数字+符号)的字典体积超过100G,普通电脑根本跑不完,优先根据线索缩小字符集和长度。
- 前缀/后缀必须算入总长度,否则会报错或生成错误的密码。
- 字符集不要写错,比如需要小写字母却写了大写,会导致生成的字典完全无效。
- Windows平台优先用WSL运行,原生Windows版容易出现字符编码问题。
与JtR/Hashcat联动使用(核心)
生成字典后,直接替换破解命令中的rockyou.txt路径即可:- # 配合John使用
- john --wordlist=生成的字典.txt zip.hash
- # 配合Hashcat使用
- hashcat -m 13600 -a 0 clean_hash.txt 生成的字典.txt
复制代码 五、CTF压缩包破解工具选择决策树(新手必看)
拿到一个压缩包题目,按以下顺序操作,可90%以上的场景高效解决:
- 用7-Zip打开压缩包,判断是否为伪加密(能看到文件列表,解压提示加密)→ 用ZipCenOp/十六进制编辑器修复,无需破解;
- 确认是真加密后,查看加密方式:
- 是ZipCrypto加密的ZIP,且有已知明文线索 → 优先用bkcrack明文攻击,无需暴力破解;
- 是RAR5/AES加密,或无已知明文线索 → 进入下一步;
- 有密码格式/长度线索 → 用crunch生成定制化字典,配合HashcatGPU加速破解;
- 无任何线索,尝试通用密码 → 用John the Ripper配合rockyou.txt字典破解;
- John破解无果,且有GPU环境 → 换Hashcat重新跑字典/掩码攻击。
4款工具破解范围、哈希提取命令与可提取哈希场景全说明
先明确4款工具的核心定位边界,避免功能混淆:
- John the Ripper(JtR):通用型哈希破解工具,自带全场景哈希提取能力,是提取哈希的核心工具;
- Hashcat:极致GPU加速的哈希破解工具,本身不具备哈希提取能力,完全复用JtR提取的哈希,破解范围覆盖JtR所有场景,且支持更多高强度加密格式;
- bkcrack:ZipCrypto加密ZIP的专项破解工具,无需提取哈希、无需暴力破解,仅通过已知明文恢复加密密钥,破解范围极聚焦;
- crunch:纯字典生成辅助工具,无任何破解、哈希提取能力,仅为JtR/Hashcat提供定制化密码字典。
一、4款工具完整可破解范围
1. John the Ripper(JtR):全场景通用破解
JtR是CTF赛场的「万能破解工具箱」,支持超过400种加密格式,核心可破解范围覆盖CTF90%以上的密码类场景,具体如下:
场景分类可破解的具体格式/内容压缩包类(核心)ZIP、RAR3、7Z、ARJ、ACE、TAR.GZ、BZIP2、XZ、CAB、LZH等几乎所有主流压缩格式办公文档类(CTF高频)加密PDF、全系列Office文档(Word/Excel/PPT 97-2024)、WPS加密文档、RTF加密文档系统账户凭证类Linux /etc/shadow 系统用户密码、Windows SAM/NTLM哈希、macOS用户密码、Docker容器凭证、LDAP认证哈希网络认证类WiFi WPA/WPA2/WPA3握手包、SSH私钥加密密码、OpenVPN/PPTP VPN凭证、HTTP Basic/Digest认证哈希、FTP/SMB认证哈希加密容器类Keepass/KeePassXC数据库、TrueCrypt加密卷、VeraCrypt加密卷、BitLocker分区(基础支持)、ZIP加密分卷其他CTF高频场景加密Python脚本、Linux PAM认证、MySQL/PostgreSQL数据库密码、Apache .htpasswd凭证、压缩包伪加密修复辅助2. Hashcat:GPU加速高强度破解
Hashcat支持超过450种哈希类型,JtR能破解的场景它全部支持,且对高强度加密格式的兼容性、破解速度远超JtR,核心补充可破解范围:
- 完美支持RAR5格式(JtR对RAR5兼容性极差);
- 全系列AES加密格式(ZIP AES-256、7Z AES加密、Office 2016+高强度加密);
- 专业加密容器:BitLocker、VeraCrypt、LUKS全系列、FileVault2;
- 高迭代KDF算法加密:PBKDF2、bcrypt、scrypt、Argon2等现代加密算法;
- 无线类:WPA/WPA3 PMKID、WPA Enterprise、WEP密钥。
3. bkcrack:专项破解工具
破解范围极度聚焦,无任何扩展能力:
- 仅支持ZipCrypto(传统PKZIP流加密) 格式的ZIP压缩包;
- 不支持AES加密的ZIP、不支持RAR/7Z/ARJ等任何其他压缩格式;
- 核心破解逻辑:利用ZipCrypto加密算法漏洞,通过已知压缩包内文件的部分/全部明文,直接恢复加密密钥,无需暴力猜密码、无需提取哈希。
4. crunch:纯辅助工具
- 本身无任何破解、哈希提取能力,仅用于生成高度定制化的密码字典;
- 适配所有需要字典攻击的场景,生成的字典可直接给JtR、Hashcat等所有破解工具使用。
二、全场景哈希提取核心命令大全
核心前提说明
所有哈希提取工具,均为John the Ripper套件自带的*2john系列工具,安装JtR后即可直接使用:
- Linux/macOS:安装后全局直接调用;
- Windows:解压后在john/run目录下,用xxx2john.exe调用;
- Hashcat完全复用这些提取的哈希,仅需清理掉文件名等冗余内容,保留纯哈希字符串即可使用。
以下为CTF高频场景的提取命令,全部可直接复制使用:
1. 压缩包类(核心高频)
压缩格式核心提取命令补充说明ZIP(含分卷)zip2john encrypted.zip > zip.hash分卷包指定第一个分卷:zip2john encrypted.zip.001 > zip_split.hashRAR/RAR5(含分卷)rar2john encrypted.rar > rar.hash分卷包指定第一个分卷:rar2john encrypted.part01.rar > rar_split.hash;新版JtR完美支持RAR57Z7z2john encrypted.7z > 7z.hash支持LZMA2压缩、AES加密的7Z包ARJarj2john encrypted.arj > arj.hashCTF冷门考点,老压缩格式GZIPgzip2john encrypted.gz > gzip.hash支持gzip加密压缩包BZIP2bzip2john encrypted.bz2 > bz2.hash支持bzip2加密压缩包2. 办公文档类(CTF高频)
文档格式核心提取命令补充说明加密PDFpdf2john encrypted.pdf > pdf.hash支持所有版本PDF加密,包括用户密码、所有者密码Office 97-2003(.doc/.xls/.ppt)office2john encrypted.doc > office.hash老版Office二进制格式Office 2007+(.docx/.xlsx/.pptx)office2john encrypted.docx > office.hash新版Office OOXML格式,支持高强度加密WPS加密文档wps2john encrypted.wps > wps.hash支持WPS全系列加密文档3. 系统账户凭证类
凭证类型核心提取命令补充说明Linux系统用户密码unshadow /etc/passwd /etc/shadow > linux_hash.txtunshadow是JtR自带工具,需同时传入passwd和shadow文件Windows SAM哈希samdump2 SYSTEM SAM > windows_hash.txt需导出Windows的SYSTEM和SAM注册表文件macOS用户密码mac2john user.plist > mac_hash.txt需导出用户的plist配置文件.htpasswd Web凭证htpasswd2john .htpasswd > htpasswd.hashApache/Nginx Web认证凭证4. 网络认证类
认证类型核心提取命令补充说明SSH加密私钥ssh2john id_rsa > ssh_hash.txt支持RSA/ECDSA/ED25519加密私钥WiFi WPA/WPA2握手包hcx2john capture.hccapx > wifi_hash.txt需先用hcxpcapngtool将pcap包转为hccapx格式OpenVPN加密配置openvpn2john encrypted.ovpn > vpn_hash.txt支持带密码的OpenVPN配置文件加密RAR/RSA密钥rsa2john private.key > rsa_hash.txt支持加密的RSA私钥文件5. 其他CTF高频场景
加密类型核心提取命令补充说明Keepass数据库keepass2john database.kdbx > keepass.hash支持KeePass 1.x/2.x数据库TrueCrypt/VeraCrypt加密卷truecrypt2john volume.tc > tc_hash.txt支持TrueCrypt全系列、基础VeraCrypt格式加密Python脚本python2john encrypted.pyc > py.hash支持加密的Python字节码文件ZIP伪加密辅助zipinfo encrypted.zip非提取哈希,用于查看ZIP加密标志位,判断伪加密三、可提取哈希的全场景分类总结
*2john系列工具可提取哈希的核心逻辑:只要是「通过密码派生密钥完成加密/认证」的场景,几乎都能提取出用于暴力破解的哈希值,核心可提取的哈希分为5大类:
- 压缩包加密哈希:ZIP、RAR、7Z等所有主流压缩格式的加密验证数据;
- 文档加密哈希:PDF、Office、WPS等办公文档的密码验证哈希;
- 账户凭证哈希:操作系统、数据库、Web服务的用户密码哈希;
- 密钥/容器加密哈希:SSH私钥、VPN配置、加密数据库、加密磁盘卷的密码验证哈希;
- 网络认证哈希:WiFi、HTTP/FTP/SMB认证的密码哈希。
高频场景Hashcat对应类型码(破解必用)
提取哈希后,给Hashcat使用时需匹配对应的类型码,CTF高频场景速查表:
加密格式Hashcat类型码(-m参数)ZIP 标准加密13600ZIP AES-256加密23001RAR5 标准加密125007Z 标准加密11600PDF 1.4-1.6 加密10500PDF 1.7+ 加密10600Office 2007-20199600Linux shadow SHA5121800Windows NTLM哈希1000WiFi WPA/WPA22500SSH 私钥加密22911Keepass 数据库13400四、关键注意事项
- 哈希清理规则:给Hashcat使用的哈希,必须删除文件名:等前缀冗余内容,仅保留$xxx$开头的纯哈希字符串,否则会提示「无效哈希格式」;
- 格式匹配要求:Hashcat的-m类型码必须100%匹配加密格式,错误的类型码会导致破解失败、误报结果;
- 工具边界明确:bkcrack无需提取哈希,crunch不具备破解/提取哈希能力,不要混淆工具用途;
- 文件完整性要求:提取哈希时,必须保证源文件完整,损坏、分卷缺失的文件无法提取有效哈希;
- 加密类型限制:ZipCrypto加密的ZIP优先用bkcrack,AES加密、RAR5格式优先用Hashcat,通用场景优先用JtR。
分卷压缩包哈希提取全教程(CTF实战专用)
本文档针对CTF高频的分卷压缩包场景,提供零跳步、可直接复制、避坑拉满的哈希提取方法,覆盖RAR/ZIP/7Z全主流分卷格式,解决90%新手遇到的分卷识别失败、哈希无效、破解无结果等问题。
一、核心前提与必做前置准备(90%的失败都源于此)
1. 核心原理(新手必懂)
分卷压缩包的加密密钥、加密验证信息仅存储在第一个分卷中,其余分卷仅存储压缩数据。因此:
✅ 正确做法:提取哈希时,仅需指定第一个分卷文件,工具会自动识别同目录下的其余连续分卷;
❌ 绝对禁止:用cat/copy命令手动合并分卷后再提取哈希,会破坏分卷结构,导致提取的哈希完全无效、无法破解。
2. 必做前置检查(缺一不可)
(1)分卷完整性检查
- 所有分卷文件必须全部放在同一个文件夹内,不能缺卷、不能拆分目录;
- 分卷编号必须连续(如part01-part05、zip.001-zip.003),缺卷会导致工具无法识别完整结构,提取哈希失败。
(2)分卷命名规范检查(最容易踩坑)
分卷前缀必须100%完全一致,仅编号不同,否则工具无法识别关联分卷,CTF常见规范如下:
分卷格式正确命名示例错误命名示例RAR新版分卷flag.part01.rar、flag.part02.rar、flag.part03.rarflag.part1.rar、flag_02.rar、flag(2).rarRAR老版分卷flag.rar(主文件)、flag.r00、flag.r01、flag.r02flag.rar、flag01.r00、flag_1.r01ZIP/7Z分卷flag.zip.001、flag.zip.002、flag.zip.003flag_001.zip、flag.zip.01、flag(1).zip.001Windows用户额外注意:必须先打开「文件资源管理器→查看→显示→文件扩展名」,避免隐藏后缀导致实际文件名是flag.part01.rar.rar,工具无法识别。
(3)路径与文件有效性检查
- 所有分卷、工具所在路径不能有中文、空格、特殊符号(如括号、 emoji);
- 预验证分卷有效性:用7-Zip打开第一个分卷,能正常看到压缩包内的文件列表,说明分卷结构完整、可被识别;若提示“分卷缺失”“文件损坏”,先修复分卷再提取哈希。
(4)工具版本要求
必须使用最新版John the Ripper(JtR),老版本不支持RAR5分卷、7Z高强度分卷,会导致提取失败。
- Kali更新命令:sudo apt update && sudo apt install john -y
- Windows:从JtR官网下载最新OpenCL预编译版
二、分格式详细哈希提取命令(CTF高频全覆盖)
所有命令均为CTF实战可直接复制使用,区分Linux/macOS与Windows环境,永远仅指定第一个分卷文件。
1. RAR分卷(CTF最常考,分两种命名格式)
RAR分卷是CTF分卷题的绝对主流,分为新版partxx命名和老版rxx命名,提取命令有差异,必须对应使用。
场景1:新版RAR分卷(part01/part02命名,最常见)
- 分卷示例:flag.part01.rar、flag.part02.rar、flag.part03.rar
- 核心提取命令:
- # Linux/macOS 核心命令(指定第一个分卷part01)
- rar2john flag.part01.rar > rar_split.hash
- # Windows 核心命令(john/run目录下执行)
- rar2john.exe flag.part01.rar > rar_split.hash
复制代码 场景2:老版RAR分卷(r00/r01命名)
- 分卷示例:flag.rar(主文件,必选)、flag.r00、flag.r01、flag.r02
- 注意:老版分卷的主文件是.rar后缀的文件,不是.r00,必须指定.rar主文件,否则提取失败
- 核心提取命令:
- # Linux/macOS 核心命令(指定.rar主文件)
- rar2john flag.rar > rar_old_split.hash
- # Windows 核心命令
- rar2john.exe flag.rar > rar_old_split.hash
复制代码 补充说明
- 完美支持RAR5分卷,新版JtR可直接提取,无需额外参数;
- 提取成功后,哈希文件内会以$rar$/$rar5$开头,代表格式正确。
2. ZIP分卷(CTF次高频)
ZIP分卷通常为xxx.zip.001/xxx.zip.002命名格式,也有部分是xxx.z01/xxx.z02/xxx.zip格式,对应命令如下:
场景1:标准ZIP分卷(zip.001/zip.002命名)
- 分卷示例:flag.zip.001、flag.zip.002、flag.zip.003
- 核心提取命令:
- # Linux/macOS 核心命令(指定第一个分卷zip.001)
- zip2john flag.zip.001 > zip_split.hash
- # Windows 核心命令
- zip2john.exe flag.zip.001 > zip_split.hash
复制代码 场景2:老版ZIP分卷(z01/z02命名)
- 分卷示例:flag.zip(主文件)、flag.z01、flag.z02、flag.z03
- 核心提取命令:
- # Linux/macOS 核心命令(指定.zip主文件)
- zip2john flag.zip > zip_old_split.hash
- # Windows 核心命令
- zip2john.exe flag.zip > zip_old_split.hash
复制代码 补充说明
- 支持ZipCrypto、AES-256加密的ZIP分卷;
- 提取成功后,哈希文件内会以$zip2$开头,代表格式正确。
3. 7Z分卷(CTF冷门但必考)
7Z分卷命名格式为xxx.7z.001/xxx.7z.002,提取命令如下:
- 分卷示例:flag.7z.001、flag.7z.002、flag.7z.003
- 核心提取命令:
- # Linux/macOS 核心命令(指定第一个分卷7z.001)
- 7z2john flag.7z.001 > 7z_split.hash
- # Windows 核心命令
- 7z2john.exe flag.7z.001 > 7z_split.hash
复制代码 补充说明
- 支持LZMA2压缩、AES加密的7Z分卷;
- 提取成功后,哈希文件内会以$7z$开头,代表格式正确。
三、提取后哈希验证与清理(适配John/Hashcat破解)
1. 验证哈希提取是否成功
执行以下命令,若能正常识别哈希格式,说明提取有效:- # 验证RAR分卷哈希
- john --show rar_split.hash
- # 验证ZIP分卷哈希
- john --show zip_split.hash
- # 验证7Z分卷哈希
- john --show 7z_split.hash
复制代码
- 正常输出:提示0 password hashes cracked, 1 left,代表哈希有效,可正常破解;
- 异常输出:提示No password hashes loaded,代表提取失败,回头检查前置准备、分卷命名、命令是否正确。
2. 给Hashcat使用的哈希清理方法
Hashcat仅识别纯哈希字符串,必须清理冗余内容,步骤如下:
- 用vim/记事本打开提取的.hash文件;
- 删除行首的文件名+冒号(如flag.part01.rar:);
- 仅保留$rar$/$rar5$/$zip2$/$7z$开头,到行尾的完整哈希字符串;
- 保存为clean_split_hash.txt,即可给Hashcat使用。
3. 破解复用方法
清理后的哈希,破解方法和单文件压缩包完全一致,直接套用之前的命令即可:- # John破解分卷哈希
- john --wordlist=rockyou.txt rar_split.hash
- # Hashcat破解RAR5分卷哈希(-m 12500为RAR5类型码)
- hashcat -m 12500 -a 0 clean_split_hash.txt rockyou.txt
复制代码分卷哈希对应的Hashcat类型码,和单文件完全一致:ZIP=13600、RAR5=12500、7Z=11600。
四、CTF高频踩坑与解决方案
常见问题核心原因解决方案执行提取命令后,提示“找不到分卷”“分卷缺失”1. 分卷命名前缀不一致;2. 分卷未放在同一目录;3. 指定了错误的第一个分卷1. 统一所有分卷前缀,仅保留编号差异;2. 所有分卷放在同一文件夹;3. 新版分卷指定part01,老版RAR指定.rar主文件提取的哈希破解无结果,单密码测试也提示失败1. 手动合并了分卷,哈希无效;2. 分卷不完整,提取了错误哈希;3. 哈希清理错误,格式无效1. 禁止合并分卷,用原生分卷重新提取;2. 补全所有分卷,用7-Zip验证可正常打开;3. 严格按照步骤清理哈希,仅保留纯哈希字符串RAR5分卷提取失败,提示“不支持的格式”JtR版本过旧,不支持RAR5格式更新JtR到最新版,Kali执行sudo apt update && sudo apt install john --upgrade提取的哈希长度过短,John提示“无效哈希”分卷文件损坏,加密头信息丢失用7-Zip的“修复压缩包”功能修复分卷,或用MultiPar通过PAR2恢复记录修复分卷后缀名被篡改(如zip.001改成了zip.001.jpg)工具无法识别分卷格式先把所有分卷的后缀名改回标准格式(如flag.zip.001),保证命名规范,再执行提取五、CTF特殊场景处理
1. 分卷被嵌入到其他文件中
CTF常考“分卷藏在图片/其他文件里”的场景,处理步骤:
- 用binwalk -e 目标文件提取嵌入的分卷文件;
- 把提取出的所有分卷放在同一文件夹,修正命名规范;
- 用7-Zip打开第一个分卷,验证可正常识别文件列表;
- 按上述标准命令提取哈希。
2. 分卷缺失/损坏,有PAR2恢复记录
若题目提供了.par2恢复记录文件,可修复缺失/损坏的分卷:
- 用MultiPar(Windows)/par2(Linux)工具加载par2文件;
- 执行修复,补全缺失的分卷、修复损坏的分卷;
- 修复完成后,再按标准步骤提取哈希。
3. 分卷压缩包是伪加密
分卷压缩包也可能设置伪加密,特征:7-Zip打开能看到文件列表,解压提示加密,提取哈希后破解无结果:
- 把所有分卷文件用十六进制编辑器打开;
- 定位第一个分卷的目录区文件头50 4B 01 02,将其后第11位字节的09/01改为00;
- 保存修改后,直接解压即可,无需破解哈希。
来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作! |