Hashcat 和 John the Ripper(简称 JTR)是两款广受欢迎的密码破解工具。两者各有优缺点,适用于不同的使用场景。本文将从功能特点、优缺点以及实际使用体验等方面对它们进行对比和评测,帮助你选择适合的工具。
快速对比总结
如果你不想阅读完整的细节,可以参考以下关键点:
Hashcat
优点:
- 出色的 GPU 支持:能够充分利用显卡的计算能力,加快破解速度。
- 支持多种计算框架:包括 OpenCL、Apple Metal 等。
- 跨平台支持:兼容主流操作系统(Windows、Linux、macOS)。
- 支持多种哈希类型:几乎涵盖了主流的哈希算法(完整列表请查看官方文档)。
- 哈希类型检测功能:能够自动识别输入的哈希类型。
缺点:
- 哈希检测能力有限:在某些情况下对哈希类型的识别不够准确。
- 部分驱动影响性能:某些显卡驱动会导致性能下降(非 Hashcat 本身的问题)。
John the Ripper (JTR)
优点:
- 支持 Hashcat 不支持的哈希类型:例如三重 DES 加密(Triple DES)。
- 跨平台支持:同样兼容主流操作系统。
- 哈希检测功能:具备自动检测输入哈希类型的能力。
- CPU 优化:能够针对 CPU 指令集进行优化,提升性能。
缺点:
- GPU 支持有限:仅支持部分哈希类型的 GPU 加速。
- 需要转换哈希格式:某些哈希类型需要先转换为 JTR 兼容的格式。
- CUDA 配置复杂:在启用 NVIDIA CUDA 支持时,可能需要大量手动配置。
个人使用体验评测
以下是我在实际使用 Hashcat 和 JTR 时的一些经验和感受,可能与你的体验有所不同。
Hashcat 评测
Hashcat 是我主要使用的工具,原因之一是它对 GPU 的支持非常优秀。我主要用它来破解 NTLMv2 和 WPA 密码。
破解速度对比
- 使用字典攻击时,破解速度比暴力破解或规则攻击要慢。我认为这是由于从硬盘向 GPU 传输数据时存在带宽限制。
- 在暴力破解和规则攻击中,候选密码直接在 GPU 上生成,因此不存在带宽瓶颈,速度更快。
优化体验
- 优化内核选项让我在破解 NTLMv2 时的速度翻倍,但对 WPA 破解没有显著影响。
- 我关闭了硬件监控功能,因为温度达到 80°C 时进程会被强制终止。
工具与规则集
- 我使用了来自 Crackstation 的字典,以及 Kaonashi 项目的 kamaji34K 规则集,效果还不错。
跨平台表现
- 我在 Linux 和 Windows 系统上都测试了 Hashcat。
- AMD 显卡在 Linux 上的表现更好(两种系统都开启了计算模式)。
- NVIDIA CUDA 性能在两种系统上差别不大,但 NTLMv2 的破解速度在 Linux 上略胜一筹。
John the Ripper (JTR) 评测
在需要破解 三重 DES 加密的 RSA 密钥时,我选择了 JTR,因为 Hashcat 不支持这种类型的哈希。
格式转换
- 首先,我需要将哈希转换为 JTR 可识别的格式。
- 花了很长时间才意识到需要用到 ssh2john 工具,它可以将使用 RSA 证书加密的 SSH 密钥转换为 JTR 可用的格式。
性能表现
- 初次运行时,JTR 默认使用了 CPU,性能极差。
- 幸运的是,JTR 支持 OpenCL,我启用了 OpenCL 来使用 GPU 加速。
- 但 JTR 仍然会默认切换回 CPU,我不得不强制指定使用 GPU。
配置问题
- 在强制使用 GPU 时,JTR 报错。经过一番研究发现,NVIDIA 将 nvopencl64.dll 文件移动到了其他位置。
- 通过将该文件复制到
C:/Windows/System32/
目录后问题解决,性能提升了 100 倍(并非夸张)。
结论
Hashcat 和 John the Ripper 各有其独特的优势和适用场景:
- Hashcat:擅长 GPU 加速的密码破解,适用于支持的主流哈希类型。
- John the Ripper:在支持更多特殊哈希类型(如三重 DES)方面表现出色,且对 CPU 优化较好。
两者的选择取决于你的具体需求:
- 如果你需要快速破解常见哈希类型且显卡性能强大,Hashcat 是更好的选择。
- 如果你需要破解特殊哈希类型或依赖 CPU 性能,JTR 更为合适。
无论选择哪款工具,熟悉它们的特点和配置方法,都能极大提高你的效率和破解成功率。
文章评论