本文将详细介绍如何使用 Hashcat 并结合 GPU 破解 ZIP、RAR 的压缩包密码的完整过程。

1. 核心工具安装

2. 环境变量配置

将以下路径添加到系统PATH:

  • Hashcat解压目录
  • John the Ripper的run目录

3. 安装验证

1
2
3
4
5
# 验证Hashcat
.\hashcat.exe -V

# 验证CUDA安装
nvcc --version

4. 破解流程

4.1 提取压缩包哈希值

1
2
3
4
5
6
7
8
# 使用 John the Ripper 提取 RAR 压缩包的 Hash
rar2john secret.rar > rar_hash.txt

# 使用 John the Ripper 提取 ZIP 压缩包的 Hash
zip2john.exe "重要文件.zip" > zip_hash.txt

# 清理哈希格式(移除文件名前缀)
(Get-Content rar_hash.txt) -replace "^.*?:", "" | Set-Content clean_hash.txt

4.2 准备密码字典

字典来源推荐

  1. 常用密码库:https://github.com/danielmiessler/SecLists/tree/master/Passwords

  2. 针对性生成(使用 crunch)

1
crunch 6 8 0123456789 -o num_dict.txt
  1. 泄露密码集合:https://haveibeenpwned.com/Passwords

如果存在很多个密码 txt 文件,可以使用下面的命令将多个文件进行合并。

1
2
3
4
5
6
7
8
9
10
11
# 基本合并 - Linux/macOS
cat /路径/到/字典文件夹/*.txt > combined_dict.txt

# 合并并去重 - Linux/macOS
cat *.txt | sort -u > final_dict.txt

# 基本合并 - Windows (PowerShell)
Get-Content -Path "C:\路径\到\字典文件夹\*.txt" | Set-Content combined_dict.txt

# 基本去重并保留原始顺序 - Windows (PowerShell)
Get-Content .\raw_dict.txt | Sort-Object -Unique > unique_dict.txt

4.3 执行 GPU 加速破解

1
hashcat.exe -m 13000 -a 0 .\clean_hash.txt .\dict.txt -O -w 3

关键参数说明:

  • -m 13000:指定哈希模式(RAR5使用-m 13000,ZIP使用-m 13600)
  • -a 0:字典攻击模式
  • -O:启用内核优化
  • -w 3:最大化GPU负载

4.4 监控破解状态

典型输出解读(只列了部分核心输出):

1
2
3
4
5
6
7
8
Status...........: Running 				# 任务状态
Time.Started.....: Sat Jun 21 14:55:32 2025 (27 secs) # 任务开始时间 + 已运行时间
Time.Estimated...: Sat Jun 21 15:00:28 2025 (4 mins, 29 secs) # 预计完成时间 + 剩余时间
Speed.#1.........: 97350 H/s # GPU每秒尝试次数:97350 次/秒
Rejected.........: 0/2260992 (0.00%) # 被拒绝的密码数(格式错误等)
Progress.........: 2260992/28493617 (7.94%) # 进度
Recovered........: 0/1 (0.00%) Digests (total) # 破解结果:0个成功(共1个哈希)
Candidates.#1....: 2 mecool -> 3 sojourners # 当前尝试的密码范围(字典中的连续密码)

4.5 查看破解结果

破解完成时,在命令行界面输出内容中会出现成功破解的密码,也可以使用下面的命令进行查看。

1
2
# 显示成功破解的密码
hashcat.exe -m 13000 .\clean_hash.txt --show

5. 常见问题解决

问题1:BOM头部错误

1
.\hash.txt: Byte Order Mark (BOM) was detected

解决方案:

1
(Get-Content .\hash.txt -Raw) -replace "\xEF\xBB\xBF", "" | Set-Content fixed_hash.txt

问题2:CUDA初始化失败

1
Failed to initialize NVIDIA RTC library

解决方案:

安装匹配的 CUDA Toolkit 版本

应用内核超时补丁:https://hashcat.net/q/timeoutpatch

问题3:哈希格式不识别

1
Signature unmatched

解决方案:

检查RAR版本:RAR5使用-m 13000,ZIP使用-m 13600

重新提取哈希并移除无关字符。

6. 破解性能对比

硬件配置破解速度8位数字时间8位混合密码时间
CPU i7-12700K1,200 H/s23小时超过10年
RTX 407097,350 H/s17分钟约2年
4x RTX 4090集群520,000 H/s3分钟约6个月

注意:复杂密码的实际破解时间可能远超理论值

7. 法律与伦理声明

  • 仅限合法用途:对自己的文件进行密码恢复
  • 禁止未授权破解:尊重他人隐私和数字资产
  • 数据安全:破解完成后立即删除敏感文件
  • 遵守当地法律:了解并遵守所在地区相关法律法规

8. 总结

通过本文介绍的方法,你可以:

  1. 使用John the Ripper正确提取RAR哈希
  2. 配置GPU环境实现百倍加速
  3. 选择合适的攻击模式和字典
  4. 实时监控破解状态并优化性能

重要提示:密码强度仍然是安全的核心。建议使用:

  • 12位以上混合密码(大小写+数字+符号)
  • 密码管理器生成唯一密码
  • 启用双因素认证

技术有界,安全无价。请始终将技术用于正当合法的场景,共同维护网络空间的安全与秩序。