Hashcat 简介与核心优势
在网络安全领域,密码往往是系统防护的第一道屏障,但也常成为薄弱环节。Hashcat 作为全球领先的开源命令行密码恢复工具,支持超过 300 种哈希算法,利用 GPU 等硬件加速实现高效离线破解。它不仅是安全专业人士评估密码强度的利器,也是数字取证中恢复凭证的关键手段。
注意:Hashcat 仅用于合法目的,如授权渗透测试或个人密码恢复。非法使用可能违反法律,请确保遵守道德规范和当地法规。
相比 John the Ripper,Hashcat 在 GPU 优化上表现更强。它专注于离线哈希破解,无法直接用于在线攻击(如网站登录)。核心优势包括高性能(GPU 加速下可达数亿哈希/秒)、多算法支持(MD5、SHA 系列、bcrypt、NTLM、WPA2 等)以及多样的攻击模式。
环境准备与安装
系统要求
- 操作系统:Linux (推荐 Kali/Ubuntu)、Windows、macOS。
- 硬件:优先选择 GPU(NVIDIA RTX 系列最佳),建议至少 4GB VRAM。
- 依赖:OpenCL/CUDA 驱动,7-Zip(用于解压)。
安装步骤
Linux (Debian/Ubuntu/Kali)
Kali 默认预装;若需手动安装:
sudo apt update
sudo apt install hashcat
hashcat --version
检查版本应显示 v7.1.2+。若需最新版,可从 GitHub 编译。
RHEL/CentOS
wget https://hashcat.net/files/hashcat-7.1.2.7z
sudo yum install epel-release p7zip 7za x
7za x hashcat-7.1.2.7z
cd hashcat-7.1.2/
./hashcat --version
国内用户可更换镜像加速下载。
Windows
下载预编译版(.7z),解压后运行 hashcat.exe。确保已安装 NVIDIA/AMD 显卡驱动。
驱动与后端检查
使用 hashcat --backend-info 检查后端状态。未安装驱动时,仅 CPU 可用。
- NVIDIA:安装 CUDA Toolkit (v12.9+)。Linux:
sudo apt install nvidia-cuda-toolkit;Windows:GeForce Experience。 - AMD:ROCm (v5.0+),参考官方文档。
- Intel:OpenCL 运行时,从官网下载。
常见错误'无设备找到'通常因驱动不兼容导致,尝试重启或添加 --force 参数强制运行。
基准测试
安装后建议先运行基准评估硬件性能:
hashcat -b
输出将显示各算法的预估速度(如 MD5:10 GH/s)。
命令语法与基础用法
通用语法结构
hashcat [选项]... <哈希文件> [字典/掩码/目录]...
- -m :指定哈希类型(例如 0=MD5,1000=NTLM)。
- -a :选择攻击模式(0=字典)。
- -o :指定输出文件。
- --show:显示已破解的哈希结果。
- -V:查看版本;-h:获取帮助。
完整帮助可通过 hashcat -h | grep <关键词> 查询。
常见哈希类型速查
| 模式 | 名称 | 示例 |
|---|---|---|
| 0 | MD5 | 8743b52063cd84097a65d1633f5c74f5 |
| 100 | SHA1 | da39a3ee5e6b4b0d3255bfef95601890afd80709 |
| 1000 | NTLM | b4b9b02e6f09a9bd760f388b67351e2b |
| 3200 | bcrypt | $2y$12$12$12KixfckDjul0d7/9F1Q2e4u… |
| 17220 | ZIP | $pkzip2$3110… |
| 22000 | WPA2 | WPA02… |
词典与规则管理
- 词典文件:如 rockyou.txt(包含 14M 常见密码),可从 SecLists 仓库获取。
- 规则引擎:修改词典词生成变体,如 best64.rule(添加数字/符号)。路径通常在
/usr/share/hashcat/rules/。
攻击模式详解
Hashcat 支持多种攻击策略,覆盖不同场景需求。
字典攻击 (-a 0)
逐词尝试词典内容,适合弱密码。
hashcat -m 0 -a 0 hashes.txt rockyou.txt
配合规则增强效果:
hashcat -m 0 -a 0 hashes.txt rockyou.txt -r rules/best64.rule
示例:破解 MD5 哈希 e99a18c428cb38d5f260853678922e03(对应密码:password)。
组合攻击 (-a 1)
合并两个词典生成多词密码(如 'admin' + '123' = 'admin123')。
hashcat -m 0 -a 1 hashes.txt dict1.txt dict2.txt
暴力/掩码攻击 (-a 3)
尝试所有字符组合。使用占位符定义字符集:
- ?l:小写字母 a-z
- ?u:大写字母 A-Z
- ?d:数字 0-9
- ?s:符号
- ?a:全 ASCII
- ?h:十六进制小写
示例:破解 6 位纯数字密码:
hashcat -m 0 -a 3 hashes.txt ?d?d?d?d?d?d
自定义字符集并设置增量长度:
hashcat -m 0 -a 3 hashes.txt ?1?1?1?1 -i --increment-min=4 --increment-max=8
混合攻击 (-a 6/7)
- 字典 + 掩码 (-a 6):词典后缀掩码。如
hashcat -m 0 -a 6 hashes.txt rockyou.txt ?d?d - 掩码 + 字典 (-a 7):前缀词典。
关联攻击 (-a 9)
针对特定哈希,结合用户名或提示生成候选,适用于个性化密码场景。
高级技巧与优化
性能调优
- -O:启用优化内核(限制 32 字符以内)。
- --force:忽略警告强制运行。
- --self-test-disable:跳过自检以节省时间。
- 多设备:
-d 1,2指定特定 GPU 设备。 - 分布式:配合 Hashtopolis 管理多机集群。
会话管理与恢复
- 会话:
--session=session1命名当前任务。 - 恢复:
hashcat --session=session1 --restore从中断处继续。 - Potfile:默认存储结果至
~/.local/share/hashcat/hashcat.potfile。禁用可加--potfile-disable。
与其他工具集成
- John the Ripper:可配合进行混合攻击。
- Hash-Identifier:自动检测哈希类型。
- 脚本自动化:通过 Python
subprocess调用 Hashcat 命令。
实战案例
1. 破解 ZIP 文件密码
哈希格式:$pkzip2$... (模式 17220)。
hashcat -m 17220 zip.hash rockyou.txt -r rules/best64.rule -o cracked.txt
执行后将明文密码写入 cracked.txt。
2. WPA2 Wi-Fi 破解
捕获握手包(aircrack-ng),转换为 hccapx 格式。
hashcat -m 22000 wpa.hccapx rockyou.txt
常见弱口令如 'password123' 可被快速识别。
3. NTLM 域密码
哈希格式:user:b4b9b02e6f09a9bd760f388b67351e2b (模式 1000)。
hashcat -m 1000 ntlm.hash ?a?a?a?a?a?a?a?a -i
对 8 字符复杂密码进行暴力破解。
最佳实践与常见问题
操作建议
- 策略顺序:先字典,后混合,再暴力。避免盲目全暴力消耗算力。
- 规则优先:使用 best64.rule 等扩展词典,效率提升显著。
- 监控温度:GPU 过热时使用
--hwmon-temp-abort=80自动停止保护硬件。 - 合规性:仅授权使用,发现弱密码应及时报告修复。
常见错误排查
| 错误信息 | 原因 | 解决方案 |
|---|---|---|
| No devices found | 驱动缺失 | 安装 CUDA/OpenCL,重启系统 |
| Invalid attack mode | 参数值错误 | 检查 -h 输出确认模式编号 |
| Mask too short | 增量无效 | 确保掩码长度 >= --increment-max |
| Slow speed | 未优化 | 添加 -O 参数,检查 GPU 负载 |
| Hash not recognized | 格式错误 | 使用 hash-identifier 验证哈希格式 |
结语
Hashcat 是网络安全从业者的必备工具。通过本指南,你可以从安装配置到高级应用全面掌握其用法。记住:强大工具的双刃剑属性——用它强化防御,而非破坏。建议定期基准测试硬件,并关注官方 GitHub 更新以获取最新功能。

