hashcat
2026/5/29工具工具hashcat哈希破解大约 4 分钟
hashcat
链接
是什么
hashcat 是密码哈希破解工具,支持大量哈希类型和 GPU 加速。
CTF 中常见用途:
- 破解弱口令哈希
- 字典攻击
- 掩码攻击
- ZIP/PDF/Office 等密码哈希破解
注意:hashcat 是离线破解工具,前提是你已经拿到了哈希。
安装与配置
Ubuntu/Kali:
sudo apt update
sudo apt install hashcatWindows 可以从官网或 GitHub Release 下载预编译版本。
验证:
hashcat --version基本用法
查看支持类型
hashcat --help | grep -i md5MD5 字典攻击
hashcat -m 0 hashes.txt rockyou.txtSHA1 字典攻击
hashcat -m 100 hashes.txt rockyou.txt查看结果
hashcat -m 0 hashes.txt --show掩码攻击
hashcat -m 0 hashes.txt ?l?l?l?l?d?d更多攻击模式
字典攻击(-a 0)
# 基本字典攻击
hashcat -m 0 hashes.txt wordlist.txt
# 多个字典
hashcat -m 0 hashes.txt wordlist1.txt wordlist2.txt
# 字典 + 规则
hashcat -m 0 hashes.txt wordlist.txt -r rules/best64.rule组合攻击(-a 1)
# 组合两个字典
hashcat -m 0 hashes.txt wordlist1.txt wordlist2.txt掩码攻击(-a 3)
# 小写字母 4 位
hashcat -m 0 hashes.txt ?l?l?l?l
# 数字 6 位
hashcat -m 0 hashes.txt ?d?d?d?d?d?d
# 混合
hashcat -m 0 hashes.txt ?u?l?l?l?d?d
# 自定义字符集
hashcat -m 0 hashes.txt -1 ?l?d ?1?1?1?1?1?1掩码字符集
?l — 小写字母 (a-z)
?u — 大写字母 (A-Z)
?d — 数字 (0-9)
?s — 特殊字符
?a — 所有字符 (?l?u?d?s)
?b — 0x00-0xff规则攻击(-a 0 -r)
# 使用规则文件
hashcat -m 0 hashes.txt wordlist.txt -r rules/best64.rule
# 多个规则
hashcat -m 0 hashes.txt wordlist.txt -r rules/best64.rule -r rules/toggles1.rule常用规则文件
rules/best64.rule — 常用规则
rules/d3ad0ne.rule — 更多规则
rules/toggles1.rule — 大小写切换
rules/rockyou-30000.rule — 复杂规则排列攻击(-a 5)
# 排列字典中的单词
hashcat -m 0 hashes.txt wordlist.txt -a 5常见哈希模式
常用模式号
0 MD5
100 SHA1
1400 SHA2-256
1700 SHA2-512
3200 bcrypt
1000 NTLM
1800 SHA-512 (Unix)
5600 NetNTLMv2
13100 Kerberos 5 TGS-REP
2500 WPA-EAPOL查看所有模式
hashcat --help模式号以本机 hashcat --help 为准。
文件格式保护
13400 KeePass
13600 WinZip
17200 PKZIP (Compressed)
17210 PKZIP (Uncompressed)
23001 SecureZIP
12500 RAR3
13000 RAR5输出和会话
保存结果
hashcat -m 0 hashes.txt wordlist.txt -o found.txt恢复会话
# 中断后恢复
hashcat --session=mytest --restore指定会话名
hashcat -m 0 hashes.txt wordlist.txt --session=crack1显示已破解
hashcat -m 0 hashes.txt --show显示未破解
hashcat -m 0 hashes.txt --leftCTF常用技巧
先识别哈希类型
看长度和字符集:
32 hex: 可能是 MD5
40 hex: 可能是 SHA1
64 hex: 可能是 SHA256
128 hex: 可能是 SHA512再结合题目语境判断,不要只凭长度下结论。
常用模式
0 MD5
100 SHA1
1400 SHA2-256
1700 SHA2-512
3200 bcrypt
1000 NTLM模式号以本机 hashcat --help 为准。
弱口令优先
CTF 入门题常用弱密码、题目名、用户名、日期、flag 前缀变体。先构造小字典,不必一开始跑大掩码。
ZIP 密码破解
# 使用 zip2john 或直接用 hashcat
# 1. 提取哈希
# 2. 使用对应模式
hashcat -m 13600 zip.hash wordlist.txt构造针对性字典
# 从题目信息构造
printf "admin\nctf\npassword\n123456\n%s\n" "$(date +%Y)" > custom.txt
hashcat -m 0 hashes.txt custom.txt使用规则变换
# 大小写变换
hashcat -m 0 hashes.txt wordlist.txt -r rules/toggles1.rule
# 添加数字
hashcat -m 0 hashes.txt wordlist.txt -r rules/append-digits.rule常见问题
Exhausted 是什么意思
当前字典或规则尝试完了,没破解出来。换字典、规则或攻击方式。
Token length exception
通常是 hash 模式选错,或输入格式不符合该模式。
CPU 很慢怎么办
hashcat 强项是 GPU。入门 CTF 如果只是小哈希,CPU 也够用;大规模破解不适合普通教学环境。
No OpenCL compatible
1. 安装 GPU 驱动
2. 安装 OpenCL 运行时
3. 使用 CPU 模式: hashcat -D 1哈希格式错误
1. 检查哈希是否完整
2. 检查是否有盐值
3. 检查模式号是否正确
4. 查看 hashcat 示例: hashcat --example-hashes关联
- 编码、哈希与加密
- 古典密码系统
- John the Ripper
- Python密码学库