Hashcat 使用手册(快速上手与进阶)¶
免责声明:请仅在你有权限的系统/样本上使用密码破解工具。未经授权破解他人密码是违法行为。
1. 概述¶
Hashcat 是目前最流行、功能最全的密码恢复/破解工具之一,支持 CPU 与 GPU(OpenCL/Metal/CUDA)的高性能破解。它把“hash type”(通过 -m 指定)和“attack mode”(通过 -a 指定)分离,支持规则、mask、字典、组合等混合攻击方式。
2. 基本命令结构¶
hashcat [options] -m <hash-type> -a <attack-mode> <hashfile> <dict_or_mask_or_stdin>
# 或简写
hashcat -m 0 -a 0 hashes.txt rockyou.txt
常用选项:
-m, --hash-type:hash 类型编号(如 MD5=0)。-a, --attack-mode:攻击模式编号(0=wordlist, 3=mask 等)。-o <outfile>:输出已破解结果文件。--show:显示已破解的密码(查看 potfile)。-I:列出可用设备信息(devices info)。-b或--benchmark:基准测试(benchmark)。-w <1..4>:工作负载(workload)驱动性能/响应权衡。-O:使用 optimized kernel(更快但限制最大密码长度)。-d <devIDs>:选择设备 ID(逗号分隔)。--session <name>:指定会话名以便恢复。--status/--status-timer:定时显示状态。--restore:从上次断点恢复会话。
更多帮助:hashcat --help。
3. 常见 hash 类型与 -m 模式编号(常用)¶
以下列出 CTF/渗透中最常见的 hash-mode(并非全表,更多请查看官方 wiki / cheatsheet)。
描述 |
hash-mode ( |
|---|---|
MD5 |
0 |
SHA1 |
100 |
SHA256 |
1400 |
SHA512 |
1700 |
MD4 |
900 |
NTLM |
1000 |
bcrypt (Blowfish, crypt(3) \(2y\)) |
3200 |
MD5(Unix: md5crypt) |
500 |
LM |
3000 |
MySQL323 |
200 |
MySQL411 |
300 |
注:Hash 模式编号会随着版本扩展,遇到不确定 hash 时可以查官方
example_hashes或hashcat --help。
4. 常见攻击模式(-a)¶
编号 |
attack mode |
说明 |
|---|---|---|
0 |
wordlist / straight |
字典/规则组合(最常用) |
1 |
combination |
组合两个字典(dict1 + dict2) |
3 |
brute-force / mask |
mask 暴力(高效) |
6 |
hybrid wordlist + mask |
字典前缀 + mask 后缀 |
7 |
hybrid mask + wordlist |
mask 前缀 + 字典后缀 |
例如:-a 0 表示用字典攻击;-a 3 表示用 mask 暴力。
5. 常用命令与示例¶
字典攻击(最常见)¶
hashcat -m 0 -a 0 hashes.txt /path/to/wordlists/rockyou.txt
带规则的字典攻击¶
hashcat -m 1000 -a 0 ntlm.hash rockyou.txt -r rules/best64.rule
Mask / 暴力破解(指定字符集和长度)¶
# 尝试所有 8 位小写字母密码
hashcat -m 0 -a 3 hashes.txt ?l?l?l?l?l?l?l?l
# 更短的例子:6 位,字母+数字
hashcat -m 0 -a 3 hashes.txt ?l?l?l?l?d?d
混合(字典 + mask)¶
# word + 2 digits 后缀(常用于密码为单词+两位数字)
hashcat -m 0 -a 6 hashes.txt rockyou.txt ?d?d
组合字典(两个字典拼接)¶
hashcat -m 0 -a 1 hashes.txt dict1.txt dict2.txt
尝试 NTLM 示例并把结果输出¶
hashcat -m 1000 -a 0 ntlm.hash rockyou.txt -o cracked.txt --show
6. Mask 语法(常用占位符)¶
?l:小写字母 (abcdefghijklmnopqrstuvwxyz)?u:大写字母 (ABCDEFGHIJKLMNOPQRSTUVWXYZ)?d:数字 (0123456789)?s:特殊字符(space + punctuation)?a:所有可打印字符(?l?u?d?s)?b:二进制(0x00..0xFF) — 少用?1 ?2 ...:自定义字符集(通过-1参数定义)
示例:
# 自定义第一个字符集为数字和小写字母
hashcat -m 0 -a 3 hash.txt -1 ?l?d ?1?1?1?1?1
7. 规则(rules)¶
规则文件存放在
rules/目录(安装包自带常用规则文件 likebest64.rule,rockyou-30000.rule等)。用法:
-r rules/best64.rule,规则逐条应用到字典单词上,能快速扩大命中空间(例如加数字、字符替换、大小写变化等)。示例:
hashcat -m 0 -a 0 hash.txt rockyou.txt -r rules/best64.rule
8. 设备、性能与调优¶
列出设备¶
hashcat -I
基准测试¶
hashcat -b # 或 hashcat --benchmark
常用调优参数¶
-w <1..4>:workload profile(1 最低、4 最高)。-O:启用 optimized kernel(更快但限制密码最大长度)。-n <value>:设置并行线程(tune for GPU)。-u <value>:设置迭代次数(loop-tuning)。-d <devIDs>:选择设备(多个设备时可指定)。--force:强制忽略某些警告(慎用)。
注意(mac / Apple Silicon)¶
在 macOS(尤其 Apple Silicon)上,OpenCL/Metal 驱动兼容性可能导致某些 kernel 编译失败或设备不被利用;遇到问题时可先用 CPU 模式或在 Linux + 专用 GPU 上执行高强度任务以稳定性能。
9. 会话管理、状态、恢复¶
指定 session 名:
--session myjob开启状态显示:
--status --status-timer=10(每 10s 显示状态)中断后恢复:使用
--restore(会读取.restore文件)查看已破解结果:
hashcat --show -m <mode> hashes.txt(从 potfile 显示)potfile 默认位置通常在当前工作目录或
~/.hashcat,可用--potfile-path指定
10. 常用实战案例(CTF 场景)¶
场景 A:已知是 MD5,直接用 rockyou¶
hashcat -m 0 -a 0 md5_hashes.txt rockyou.txt -o cracked.txt
场景 B:NTLM + 规则(windows 常见)¶
hashcat -m 1000 -a 0 ntlm.hash rockyou.txt -r rules/best64.rule -o ntlm_cracked.txt
场景 C:发现是 bcrypt(慢),先用字典尝试¶
hashcat -m 3200 -a 0 bcrypt.hash rockyou.txt --show
bcrypt 属于慢哈希(成本高),使用 GPU 仍然慢,CTF 中通常通过字典与规则优先尝试。
场景 D:针对密码由“单词 + 2位数字”构成¶
hashcat -m 0 -a 6 hash.txt rockyou.txt ?d?d
11. 常见问题与排查¶
没列出 GPU / 设备不可用:运行
hashcat -I检查驱动和平台;mac 上可能因为 OpenCL/Metal 支持问题;在 Linux 上驱动与 CUDA/OpenCL 一般更稳定。Kernel 编译或 CL_OUT_OF_RESOURCES 错误:尝试降低
-w,使用-O亦可能触发限制,或使用--backend相关选项;在 Windows 上需关闭 GPU driver timeout(不推荐在生产机做)。速度慢:先用
hashcat -b基准,确认是否启用优化内核和设备利用率;使用规则前先测试字典能否命中。AX/特殊格式报错(line length exception):通常是
-m模式与 hash 格式不匹配,检查 hash 长度/格式或用example_hashes对照。
12. 高级技巧与安全注意¶
分布式 / 多卡:使用
-d指定设备或在多台机器上分发不同 mask 区间。限制风险:在 Windows 上强制长时间 GPU 运行可能导致系统不稳定或黑屏(driver timeout)。
数据管理:使用
--session与--restore管理长任务,输出已破解用--show,并合理备份 potfile。效率优先策略:先字典+规则、再 hybrid、最后 mask 暴力(mask 用于找结构明确的短密码)。
法律合规:仅在授权范围内使用;CTF 实验环境除外。
13. 参考链接(便于你查更多细节)¶
Hashcat 官方 wiki / example_hashes(hash 模式例子)。
Hashcat Cheatsheet / 常用模式表(Black Hills InfoSec)—快速参考表。
FreeCodeCamp Hashcat 教程(实战示例)。
Hashcat 论坛(遇到特定错误可以搜索或发帖)。
如果你需要我把这个 Markdown 导出为 PDF,或生成一个一键运行的 bash 安装/检测脚本,我也可以直接做。