找回密码
 立即注册
首页 业界区 安全 CTF压缩包题型4款核心工具使用方法总结

CTF压缩包题型4款核心工具使用方法总结

损注 6 天前
一、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不直接破解压缩包,需先提取和密码绑定的哈希值,剥离压缩包无关结构,提升破解效率。
  1. # 核心命令:提取ZIP压缩包哈希,保存到zip.hash文件
  2. zip2john encrypted.zip > zip.hash
  3. # 其他格式对应命令
  4. rar2john encrypted.rar > rar.hash  # RAR格式
  5. 7z2john encrypted.7z > 7z.hash      # 7Z格式
复制代码

  • 操作验证:执行cat zip.hash,能看到以encrypted.zipzip2$开头的长字符串,即提取成功。
  • 踩坑提示:若提示zip2john: 未找到命令,Kali执行sudo apt install john-data,Windows用完整路径zip2john.exe。
Step 2:字典攻击(CTF最常用,优先尝试)

用通用字典rockyou.txt破解哈希,60%的CTF压缩包密码可通过此方式破解。
  1. # Linux/macOS 核心命令
  2. john --wordlist=/usr/share/wordlists/rockyou.txt zip.hash
  3. # Windows 核心命令(run目录下执行)
  4. john.exe --wordlist=rockyou.txt zip.hash
复制代码

  • 成功输出示例:
    1. Using default input encoding: UTF-8
    2. Loaded 1 password hash (ZIP, WinZip [PBKDF2-SHA1 256/256 AVX2 8x])
    3. Cost 1 (iteration count) is 100000 for all loaded hashes
    4. Will run 4 OpenMP threads
    5. Press 'q' or Ctrl-C to abort, 'h' for help, almost any other key for status
    6. 123456         (encrypted.zip)
    7. 1g 0:00:00:01 DONE (2026-02-25 15:30) 0.8928g/s 10240p/s 10240c/s 10240C/s 123456
    8. Use the "--show" option to display all of the cracked passwords reliably
    9. Session completed
    复制代码
    其中123456就是压缩包的明文密码。
Step 3:查看已破解的密码

破解完成后,可随时查看历史破解结果,无需重新跑字典:
  1. # 核心命令
  2. john --show zip.hash
  3. # 对应格式
  4. john --show rar.hash
  5. john --show 7z.hash
复制代码

  • 成功输出示例:
    1. encrypted.zip:123456:secret.txt:encrypted.zip::encrypted.zip
    2. 1 password hash cracked, 0 left
    复制代码
Step 4:掩码攻击(已知密码格式时使用,精准高效)

若通过题目线索知道密码的格式/长度,无需大字典,用掩码模式精准破解,速度是字典攻击的10倍以上。
掩码语法(必记)

占位符对应字符集?l小写字母 a-z?u大写字母 A-Z?d数字 0-9?s特殊符号 !@#$%^&*()等?a所有字符(小写+大写+数字+符号)高频场景命令示例
  1. # 场景1:密码是4位纯数字(如1234)
  2. john --mask=?d?d?d?d zip.hash
  3. # 场景2:密码是3个小写字母+2个数字(如abc12)
  4. john --mask=?l?l?l?d?d zip.hash
  5. # 场景3:密码是大写开头+3个小写+2个数字(如Abcd12)
  6. john --mask=?u?l?l?l?d?d zip.hash
  7. # 场景4:密码固定前缀为CTF,后接4位数字(如CTF1234)
  8. 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完全通用:
  1. # 核心命令
  2. zip2john encrypted.zip > zip.hash    # ZIP格式
  3. rar2john encrypted.rar > rar5.hash   # RAR5格式
  4. 7z2john encrypted.7z > 7z.hash       # 7Z格式
复制代码
Step 2:清理哈希文件(关键步骤,决定破解成败)

Hashcat仅识别纯哈希字符串,必须删除哈希文件中的冗余内容,否则会提示“哈希格式无效”。
详细清理步骤


  • 用记事本/vim打开提取的zip.hash文件;
  • 找到行首的文件名:(如encrypted.zip:),将其完全删除;
  • 仅保留以$zip2$/$rar5$/$7z$开头,到行尾的完整哈希字符串
  • 保存清理后的文件为clean_hash.txt。


  • 清理前示例:encrypted.zipzip2$*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加速执行字典攻击,命令格式固定,替换类型码和哈希文件即可:
  1. # Linux/macOS 核心命令(ZIP格式示例)
  2. hashcat -m 13600 -a 0 clean_hash.txt /usr/share/wordlists/rockyou.txt
  3. # Windows 核心命令
  4. hashcat.exe -m 13600 -a 0 clean_hash.txt rockyou.txt
  5. # RAR5格式示例
  6. hashcat -m 12500 -a 0 clean_hash.txt rockyou.txt
复制代码

  • 参数解释:

    • -m 13600:指定哈希类型码,必须和格式匹配;
    • -a 0:指定攻击模式为字典攻击,固定写法。

  • 成功输出示例:
    1. $zip2$*0*3*0*555...*123*:123456
    2. Session..........: hashcat
    3. Status...........: Cracked
    4. Hash.Type........: ZIP
    5. Hash.Target......: $zip2$*0*3*0*555...*123*
    6. Time.Started.....: Tue Feb 25 15:40:00 2026
    7. Time.Estimated...: Tue Feb 25 15:40:02 2026
    8. Guess.Base.......: File (rockyou.txt)
    9. Speed.#1.........: 2456.2 kH/s (0.42ms) @ Accel:32 Loops:1024 Thr:1024 Vec:1
    10. Recovered........: 1/1 (100.00%) Digests
    复制代码
    其中冒号后的123456就是明文密码。
Step 5:掩码攻击(已知密码格式,效率拉满)

已知密码格式时,用掩码攻击无需字典,GPU加速下每秒可跑百万次,命令格式如下:
  1. # 核心格式:hashcat -m 类型码 -a 3 哈希文件 掩码规则
  2. # 场景1:4位纯数字密码
  3. hashcat -m 13600 -a 3 clean_hash.txt ?d?d?d?d
  4. # 场景2:3小写+2数字(共5位)
  5. hashcat -m 13600 -a 3 clean_hash.txt ?l?l?l?d?d
  6. # 场景3:固定前缀flag{,后接4位小写字母,后缀}
  7. hashcat -m 13600 -a 3 clean_hash.txt flag{?l?l?l?l}
  8. # 场景4:8位混合字符(大写+小写+数字)
  9. hashcat -m 13600 -a 3 clean_hash.txt ?a?a?a?a?a?a?a?a
复制代码

  • 参数解释:-a 3 固定为掩码攻击模式,掩码语法和JtR完全通用。
Step 6:查看已破解的密码
  1. # 核心命令,替换对应的类型码和哈希文件
  2. 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:提取加密密钥(核心步骤)

执行命令,关联加密包、包内已知文件、本地明文文件,提取加密密钥:
  1. # Linux/macOS 核心命令
  2. bkcrack -C encrypted.zip -c readme.txt -p known_readme.txt
  3. # Windows 核心命令
  4. bkcrack.exe -C encrypted.zip -c readme.txt -p known_readme.txt
复制代码

  • 参数解释:

    • -C encrypted.zip:指定目标加密ZIP包的路径;
    • -c readme.txt:指定压缩包内,内容已知的文件名;
    • -p known_readme.txt:指定本地保存的明文文件路径。

  • 成功输出示例:
    1. bkcrack 1.6.0 - (c) 2022-2024 Kimci86
    2. [i] Input: ZLIB compressed data
    3. [i] Minimum overlap: 8 bytes
    4. [i] Attack on 32 bytes of compressed data
    5. [+] Keys found!
    6. Key 0: 1a2b3c4d
    7. Key 1: 5e6f7g8h
    8. Key 2: 9i0j1k2l
    9. [i] Time elapsed: 00:00:02
    复制代码
    复制3个Key的值,后续步骤必须使用。
Step 4:用密钥生成无密码解密包

执行命令,用提取到的密钥,生成一个无密码的解密ZIP包,可直接解压:
  1. # Linux/macOS 核心命令(替换3个Key为你自己的)
  2. bkcrack -C encrypted.zip -k 1a2b3c4d 5e6f7g8h 9i0j1k2l -U decrypted.zip
  3. # Windows 核心命令
  4. 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位开始:
    1. # 核心命令
    2. 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. 核心语法&详细使用方法

基础固定语法(必记)
  1. crunch <最小长度> <最大长度> [自定义字符集] [可选参数] -o 字典输出路径
复制代码

  • 核心参数解释:

    • :生成的密码的最小字符长度,必填;
    • :生成的密码的最大字符长度,必填;
    • [自定义字符集]:可选,指定密码包含的字符(如数字、字母、符号),不指定则默认用小写字母a-z;
    • -o 字典输出路径:指定生成的字典文件的保存路径和名称,必填。

技巧:生成固定长度的密码时,最小长度和最大长度设为相同值即可。
3. CTF高频场景详细命令示例

所有示例均可直接复制使用,替换对应参数即可。
场景1:生成固定长度纯数字字典(最常用)


  • 需求:生成4位纯数字密码字典(0000-9999),保存为4digit.txt
  1. # 核心命令
  2. crunch 4 4 0123456789 -o 4digit.txt
复制代码

  • 解释:4 4=固定4位长度,0123456789=字符集为0-9数字,生成10000个密码。
场景2:生成小写字母+数字混合字典


  • 需求:生成6位小写字母+数字混合的密码字典,保存为6mix.txt
  1. # 核心命令
  2. crunch 6 6 abcdefghijklmnopqrstuvwxyz0123456789 -o 6mix.txt
复制代码

  • 扩展:需加大写字母,字符集添加ABCDEFGHIJKLMNOPQRSTUVWXYZ即可。
场景3:生成带固定前缀的字典(CTF高频)


  • 需求:密码固定前缀为CTF,后接4位数字(如CTF1234),总长度7位,保存为ctf_prefix.txt
  1. # 核心命令
  2. crunch 7 7 0123456789 -p CTF -o ctf_prefix.txt
复制代码

  • 关键:总长度必须包含前缀的长度(CTF3位+4位数字=7位),否则会报错。
场景4:生成带固定后缀的字典


  • 需求:密码固定后缀为@2026,前接3位小写字母(如abc@2026),总长度8位,保存为suffix.txt
  1. # 核心命令
  2. crunch 8 8 abcdefghijklmnopqrstuvwxyz -s @2026 -o suffix.txt
复制代码
场景5:生成指定字符集的精简字典


  • 需求:已知密码仅包含ctf1236个字符,长度5位,生成精简字典,避免冗余,提升破解速度
  1. # 核心命令
  2. crunch 5 5 ctf123 -o custom.txt
复制代码
场景6:限制字典大小,避免生成超大文件


  • 需求:生成8位数字字典,限制字典最大为100M,避免占用过多磁盘空间
  1. # 核心命令
  2. 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路径即可:
  1. # 配合John使用
  2. john --wordlist=生成的字典.txt zip.hash
  3. # 配合Hashcat使用
  4. 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.001
Windows用户额外注意:必须先打开「文件资源管理器→查看→显示→文件扩展名」,避免隐藏后缀导致实际文件名是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
  • 核心提取命令:
  1. # Linux/macOS 核心命令(指定第一个分卷part01)
  2. rar2john flag.part01.rar > rar_split.hash
  3. # Windows 核心命令(john/run目录下执行)
  4. rar2john.exe flag.part01.rar > rar_split.hash
复制代码
场景2:老版RAR分卷(r00/r01命名)


  • 分卷示例:flag.rar(主文件,必选)、flag.r00、flag.r01、flag.r02
  • 注意:老版分卷的主文件是.rar后缀的文件,不是.r00,必须指定.rar主文件,否则提取失败
  • 核心提取命令:
  1. # Linux/macOS 核心命令(指定.rar主文件)
  2. rar2john flag.rar > rar_old_split.hash
  3. # Windows 核心命令
  4. 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
  • 核心提取命令:
  1. # Linux/macOS 核心命令(指定第一个分卷zip.001)
  2. zip2john flag.zip.001 > zip_split.hash
  3. # Windows 核心命令
  4. zip2john.exe flag.zip.001 > zip_split.hash
复制代码
场景2:老版ZIP分卷(z01/z02命名)


  • 分卷示例:flag.zip(主文件)、flag.z01、flag.z02、flag.z03
  • 核心提取命令:
  1. # Linux/macOS 核心命令(指定.zip主文件)
  2. zip2john flag.zip > zip_old_split.hash
  3. # Windows 核心命令
  4. 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
  • 核心提取命令:
  1. # Linux/macOS 核心命令(指定第一个分卷7z.001)
  2. 7z2john flag.7z.001 > 7z_split.hash
  3. # Windows 核心命令
  4. 7z2john.exe flag.7z.001 > 7z_split.hash
复制代码
补充说明


  • 支持LZMA2压缩、AES加密的7Z分卷;
  • 提取成功后,哈希文件内会以$7z$开头,代表格式正确。
三、提取后哈希验证与清理(适配John/Hashcat破解)

1. 验证哈希提取是否成功

执行以下命令,若能正常识别哈希格式,说明提取有效:
  1. # 验证RAR分卷哈希
  2. john --show rar_split.hash
  3. # 验证ZIP分卷哈希
  4. john --show zip_split.hash
  5. # 验证7Z分卷哈希
  6. 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. 破解复用方法

清理后的哈希,破解方法和单文件压缩包完全一致,直接套用之前的命令即可:
  1. # John破解分卷哈希
  2. john --wordlist=rockyou.txt rar_split.hash
  3. # Hashcat破解RAR5分卷哈希(-m 12500为RAR5类型码)
  4. 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;
  • 保存修改后,直接解压即可,无需破解哈希。

来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

相关推荐

您需要登录后才可以回帖 登录 | 立即注册