密码破解是安全审计的重要环节。商业工具如Elcomsoft Distributed Password Recovery年费 $599,Hashcat本身是免费开源的,但很多安全团队不知道如何发挥其最大威力。本文从GPU选型到实战破解,手把手教你搭建专业级密码审计平台。
为什么Hashcat是最佳选择
| 工具 | 功能 | GPU支持 | 规则引擎 | 价格 |
|---|---|---|---|---|
| Hashcat | 全格式破解 | 多GPU | 强大规则 | 免费 |
| John the Ripper | 全格式破解 | 有限 | 有限 | 免费 |
| Elcomsoft | 商业破解 | 支持 | 有限 | $599+ |
| Passware | 商业破解 | 支持 | 有限 | $799+ |
Hashcat支持300+种哈希格式,支持多GPU并行,规则引擎和掩码攻击组合可以覆盖绝大多数密码策略测试需求。
硬件选型
GPU选择
| GPU | Hashcat速度(MD5) | 功耗 | 价格 | 推荐度 |
|---|---|---|---|---|
| RTX 4090 | 165 GH/s | 450W | $1,599 | 顶级 |
| RTX 4080 | 100 GH/s | 320W | $899 | 推荐 |
| RTX 3090 | 95 GH/s | 350W | $700(二手) | 性价比 |
| RTX 3080 | 75 GH/s | 320W | $500(二手) | 性价比 |
| RX 7900 XTX | 80 GH/s | 355W | $799 | AMD方案 |
建议:4x RTX 3090(二手)组合,总成本约 $2,800,MD5速度 380 GH/s。
服务器配置
# 操作系统
Ubuntu 22.04 LTS
# 驱动安装
apt install -y nvidia-driver-535 nvidia-utils-535
# 或使用官方.run文件
# 验证GPU
nvidia-smi
# 安装CUDA Toolkit
apt install -y nvidia-cuda-toolkit
Hashcat安装
# Ubuntu/Debian
apt install -y hashcat
# 或从源码编译(获取最新版)
git clone https://github.com/hashcat/hashcat.git
cd hashcat
make -j$(nproc)
make install
# 验证安装
hashcat -I # 列出所有GPU设备
hashcat --benchmark # 性能基准测试
实战破解指南
1. 基础哈希破解
# 创建哈希文件
echo "5f4dcc3b5aa765d61d8327deb882cf99" > hashes.txt # MD5(password)
# 字典攻击
hashcat -m 0 -a 0 hashes.txt /usr/share/wordlists/rockyou.txt
# 带规则的字典攻击(推荐)
hashcat -m 0 -a 0 hashes.txt /usr/share/wordlists/rockyou.txt -r /usr/share/hashcat/rules/best64.rule
# 掩码攻击(8位小写字母+数字)
hashcat -m 0 -a 3 hashes.txt ?l?l?l?l?l?l?d?d
# 混合攻击(字典+掩码)
hashcat -m 0 -a 6 hashes.txt /usr/share/wordlists/rockyou.txt ?d?d?d?d
2. 常见哈希类型速查
# NTLM (Windows密码)
hashcat -m 1000 -a 0 ntlm_hashes.txt rockyou.txt -r best64.rule
# NetNTLMv2 (网络捕获)
hashcat -m 5600 -a 0 netntlmv2.txt rockyou.txt
# Kerberos TGT (AS-REP Roasting)
hashcat -m 18200 -a 0 asrep.txt rockyou.txt
# Kerberos TGS (Kerberoasting)
hashcat -m 13100 -a 0 tgs.txt rockyou.txt
# bcrypt
hashcat -m 3200 -a 0 bcrypt.txt rockyou.txt
# SHA-512 Linux密码
hashcat -m 1800 -a 0 shadow.txt rockyou.txt
# MySQL 5.x
hashcat -m 300 -a 0 mysql.txt rockyou.txt
# WordPress (phpass)
hashcat -m 400 -a 0 wp.txt rockyou.txt
# 7-Zip加密
hashcat -m 11600 -a 0 7z.txt rockyou.txt
# BitLocker
hashcat -m 22100 -a 0 bitlocker.txt rockyou.txt
# LUKS加密磁盘
hashcat -m 14600 -a 0 luks.txt rockyou.txt
# SSH私钥密码
hashcat -m 22911 -a 0 ssh.txt rockyou.txt
# PDF密码
hashcat -m 10700 -a 0 pdf.txt rockyou.txt
# Office文档密码
hashcat -m 9600 -a 0 office.txt rockyou.txt
3. 高级规则引擎
# 使用预置规则组合(推荐)
hashcat -m 0 -a 0 hashes.txt rockyou.txt \
-r /usr/share/hashcat/rules/toggles1.rule \
-r /usr/share/hashcat/rules/append-s.rule
# 自定义规则文件
cat > /opt/hashcat-rules/custom.rule << 'EOF'
# 追加年份
$2$0$2$4
$2$0$2$5
$2$0$2$6
# 追加常见后缀
$!
$@
$#
$1$2$3
$a$d$m$i$n
# 首字母大写
c
# Leet speak替换
sa@ se3 si1 so0 ss$ st7
# 追加数字
$0$0$0$0 $1$1$1$1 $2$0$2$4
# 多规则组合
c $2$0$2$4
c $!
c sa@ se3
EOF
# 使用自定义规则
hashcat -m 0 -a 0 hashes.txt rockyou.txt -r /opt/hashcat-rules/custom.rule
4. 掩码攻击详解
# 掩码字符集
# ?l = abcdefghijklmnopqrstuvwxyz
# ?u = ABCDEFGHIJKLMNOPQRSTUVWXYZ
# ?d = 0123456789
# ?s = special chars
# ?a = ?l?u?d?s
# ?b = 0x00-0xff
# 常用掩码模式
# 8位密码:首字母大写+5小写+2数字
hashcat -m 0 -a 3 hashes.txt ?u?l?l?l?l?l?d?d
# 6-8位纯数字
hashcat -m 0 -a 3 hashes.txt --increment --increment-min 6 --increment-max 8 ?d?d?d?d?d?d?d?d
# 自定义字符集
hashcat -m 0 -a 3 hashes.txt -1 ?l?d ?1?1?1?1?1?1?1?1
# 键盘模式
hashcat -m 0 -a 3 hashes.txt ?l?l?l?l?l?d?d?d --markov-threshold=50
5. 多GPU并行
# 指定GPU设备
hashcat -m 0 -a 0 -d 1,2,3,4 hashes.txt rockyou.txt
# GPU负载均衡
hashcat -m 0 -a 0 -d 1,2,3,4 --backend-vector-width=128 hashes.txt rockyou.txt
# 温度监控(防止过热)
watch -n 1 nvidia-smi
实战场景
场景1:企业AD密码审计
# 1. 使用secretsdump提取NTLM哈希
secretsdump.py DOMAIN/user:password@dc_ip
# 2. 准备哈希文件(只取NTLM部分)
cat ntds.dit | awk -F: '{print $4}' > ntlm_hashes.txt
# 3. 使用常见密码字典+规则
hashcat -m 1000 -a 0 ntlm_hashes.txt \
/usr/share/wordlists/rockyou.txt \
-r /usr/share/hashcat/rules/d3ad0ne.rule \
--potfile-path=ad_audit.pot
# 4. 掩码攻击破解剩余
hashcat -m 1000 -a 3 ntlm_hashes.txt \
--increment --increment-min 6 --increment-max 10 \
?u?l?l?l?l?d?d \
--potfile-path=ad_audit.pot
# 5. 生成报告
hashcat --show ntlm_hashes.txt --potfile-path=ad_audit.pot | wc -l
echo "破解率: $(hashcat --show ntlm_hashes.txt --potfile-path=ad_audit.pot | wc -l) / $(wc -l < ntlm_hashes.txt)"
场景2:WiFi WPA2密码破解
# 1. 捕获握手包
airmon-ng start wlan0
airodump-ng wlan0mon -c 6 --bssid AA:BB:CC:DD:EE:FF -w capture
aireplay-ng -0 5 -a AA:BB:CC:DD:EE:FF wlan0mon
# 2. 转换格式
aircrack-ng capture-01.cap -J wpa_capture
hashcat -m 22000 wpa_capture.hccapx rockyou.txt
# 3. 使用规则
hashcat -m 22000 wpa_capture.hccapx \
/usr/share/wordlists/rockyou.txt \
-r /usr/share/hashcat/rules/best64.rule
场景3:密码策略合规检测
cat > /opt/password-audit.sh << 'SCRIPT'
#!/bin/bash
HASH_FILE="$1"
HASH_TYPE="$2" # 1000=NTLM, 1800=SHA-512
WORDLIST="/usr/share/wordlists/rockyou.txt"
POT="/tmp/audit.pot"
echo "[*] Phase 1: 字典攻击"
hashcat -m $HASH_TYPE -a 0 $HASH_FILE $WORDLIST \
-r /usr/share/hashcat/rules/best64.rule \
--potfile-path=$POT --quiet
echo "[*] Phase 2: 常见模式"
hashcat -m $HASH_TYPE -a 0 $HASH_FILE \
/opt/wordlists/common-passwords.txt \
--potfile-path=$POT --quiet
echo "[*] Phase 3: 掩码(6-8位数字)"
hashcat -m $HASH_TYPE -a 3 $HASH_FILE \
--increment --increment-min 6 --increment-max 8 \
?d?d?d?d?d?d?d?d \
--potfile-path=$POT --quiet
echo "[*] Phase 4: 掩码(简单字母+数字)"
hashcat -m $HASH_TYPE -a 3 $HASH_FILE \
--increment --increment-min 6 --increment-max 8 \
?l?l?l?l?l?d?d?d \
--potfile-path=$POT --quiet
TOTAL=$(wc -l < $HASH_FILE)
CRACKED=$(hashcat --show $HASH_FILE --potfile-path=$POT 2>/dev/null | wc -l)
echo "========================================="
echo "审计完成"
echo "总计: $TOTAL 个哈希"
echo "已破解: $CRACKED 个"
echo "破解率: $(echo "scale=2; $CRACKED*100/$TOTAL" | bc)%"
echo "========================================="
SCRIPT
chmod +x /opt/password-audit.sh
Hashcat性能优化
# 强制使用特定OpenCL内核
hashcat -m 0 -a 0 hashes.txt rockyou.txt --force
# 工作负载配置
# -n 1: 低负载(桌面使用)
# -n 2: 正常
# -n 3: 高负载(专用服务器)
# -n 4: 失速(远程SSH使用)
hashcat -m 0 -a 0 hashes.txt rockyou.txt -n 3
# 调试模式(只测试少量候选)
hashcat -m 0 -a 0 hashes.txt rockyou.txt --limit 10000
对比表
| 功能 | Hashcat | Elcomsoft | Passware |
|---|---|---|---|
| 哈希格式 | 300+ | 200+ | 150+ |
| GPU加速 | 多GPU | 支持 | 支持 |
| 规则引擎 | 极强 | 有限 | 有限 |
| 掩码攻击 | 完整 | 支持 | 支持 |
| 分布式 | 支持 | 支持 | 支持 |
| 价格 | 免费 | $599+ | $799+ |
Hashcat的规则引擎是其最大优势——一个精心设计的规则文件可以将破解率从30%提升到70%以上。这比花 $599 买商业软件有意义得多。
评论