Hashcat GPU 加速密码破解实战
Hashcat 是什么
Hashcat 被称为"世界上最快的密码破解工具",核心优势在于利用 NVIDIA/AMD GPU 的并行计算能力。相比 CPU 工具(如 John the Ripper 纯 CPU 模式),GPU 加速可以快 10~100 倍。
GPU 驱动前置要求
NVIDIA
安装闭源驱动 + CUDA 支持:
sudo apt update
sudo apt install -y nvidia-driver nvidia-cuda-toolkit
sudo reboot
验证:hashcat -I 应该列出 NVIDIA GPU。
AMD
sudo apt install -y rock-dkms rocm-opencl-sdk
sudo reboot
Hashcat 核心概念
哈希模式(-m 参数)
Hashcat 用数字编号标识哈希算法,最常用的几个:
| -m 值 | 算法 | 来源 |
|---|---|---|
| 0 | MD5 | 数据库、Web 应用 |
| 100 | SHA-1 | 老旧 Web 应用 |
| 1400 | SHA-256 | 现代 Web 应用 |
| 1700 | SHA-512 | 现代 Web 应用 |
| 3200 | bcrypt | WordPress 常用 |
| 1000 | NTLM | Windows 本地账户 |
| 5600 | NetNTLMv2 | Windows 网络认证 |
| 13100 | Kerberos TGS | Active Directory |
| 2500 | WPA/WPA2 | 无线网络握手包 |
| 18200 | AES-256-GCM | BitLocker |
| 13400 | KeePass | KeePass 密码库 |
查看完整列表:hashcat --help
四种攻击模式
| -a 值 | 模式 | 说明 |
|---|---|---|
| 0 | Straight | 字典直接跑(最常用) |
| 1 | Combination | 多字典两两组合(A+B) |
| 3 | Brute-force | 掩码攻击,覆盖已知模式 |
| 6 | Hybrid | 字典 + 掩码组合 |
实战示例
示例一:用 rockyou 破解 MD5 哈希
hashcat -m 0 -a 0 hash.txt /usr/share/wordlists/rockyou.txt
破解成功后可以加 --show 看历史记录:
hashcat -m 0 --show hash.txt
示例二:破解 WPA2 握手包
hashcat -m 2500 -a 0 capture-01.cap /usr/share/wordlists/rockyou.txt
重要:-m 2500(旧版)和 -m 22000(新版)的区别——新版可以直接从 .pcapng 文件提取握手包,不需要先 cap2hccapx。
示例三:掩码攻击破解邮箱密码(6位小写+数字)
hashcat -m 0 -a 3 hash.txt ?l?l?l?d?d?d
掩码说明:
?l—— 小写字母 (a-z)?u—— 大写字母 (A-Z)?d—— 数字 (0-9)?s—— 特殊符号?a—— 以上全部
示例四:组合攻击(用户名 + 数字后缀)
# 把 admin、root 等用户名和 001-999 组合
hashcat -m 0 -a 6 hash.txt /usr/share/wordlists/rockyou.txt ?d?d?d
性能优化
-O—— 启用内核优化(更快但可能不兼容所有哈希模式)-w 4—— 工作负载(1=省电,4=全速)--loopback—— 把破解出的密码回灌再尝试(处理加盐哈希)
会话恢复
中断后可以恢复:
hashcat --session mysession -m 0 hash.txt rockyou.txt
# 中断后:
hashcat --restore mysession
注意事项
- Hashcat 是单程序但会占满 GPU,破解过程中显卡温度会很高(80°C+ 很正常)
- 企业环境中跑 Hashcat 通常会被 EDR 检测到(哈希计算是典型攻击行为特征)
- 盐值(salt)的存在让纯暴力破解不现实——如果盐值未知,只能用彩虹表或时间-空间权衡攻击