hashcat教程:破解特定格式MD5哈希及自定义字符集应用技巧
原文地址: https://88box.top 生成时间: 2026-05-20 01:01:53
hashcat使用教程 - hey99 知识搜索引擎
精选文章
hashcat使用教程
场景:破解已知格式为“2位大写字母+4位数字+1位特殊字符”的MD5哈希,需自定义字符集组合。# 命令u -2?d -3?s?1?1?2?2?2?2?# 参数说明# -1?u:自定义字符集1为大写字母(A-Z)# -2?d:自定义字符集2为数字(0-9)# -3?s:自定义字符集3为特殊字符(!@#等)1?1?2?2?2?2?3:掩码规则(2位大写+4位数字+1位特殊字符)# 其他参数同前场景:生成100条随机规则并应用于字典破解,提升对未知密码格式的破解概率。# 生成随机规则并保存到文件。
更新于 2026-05-19 16:47
hashcat 是一款功能强大、高速的密码恢复工具,支持多种哈希类型破解,兼容CPU、GPU(CUDA/OpenCL/HIP/Metal)等硬件加速,是渗透测试和密码安全领域的核心工具之一。它支持暴力破解、字典破解、掩码破解、混合破解等多种攻击模式,可处理数千种哈希算法(如MD5、SHA系列、Windows LM/NTLM、Linux影子密码、WiFi WPA/WPA2哈希等),并提供规则自定义、会话恢复、性能优化等丰富功能,适用于密码恢复、安全审计和渗透测试场景。
核心命令格式
命令格式
说明
hashcat [options]… hash|hashfile|hccapxfile [dictionary|mask|directory]…
基础执行格式:通过选项指定破解参数,后接目标哈希(单个哈希/哈希文件/WiFi hccapx文件),最后指定破解源(字典/掩码/目录)
常用参数说明(按功能分类)
- 基础配置参数
短参数/长参数
类型
描述
示例
-m, –hash-type
数字
指定哈希类型(未指定则自动检测,参考哈希类型编号)
-m 1000(对应NTLM哈希)
-a, –attack-mode
数字
指定攻击模式(参考攻击模式编号)
-a 3(掩码暴力破解)
-V, –version
–
显示工具版本
hashcat -V
-h, –help
–
显示帮助信息
hashcat -h
–quiet
–
抑制输出(仅显示关键结果)
hashcat –quiet -m 0 hash.txt dict.txt
–force
–
忽略警告信息(强制执行)
hashcat –force -m 0 hash.txt dict.txt
- 攻击模式与字符集参数
短参数/长参数
类型
描述
示例
-1, –custom-charset1
字符集
自定义字符集?1(可组合内置字符集)
-1 ?l?d?u(?1包含小写字母+数字+大写字母)
-2, –custom-charset2
字符集
自定义字符集?2
-2 ?l?d?s(?2包含小写字母+数字+特殊字符)
-3, –custom-charset3
字符集
自定义字符集?3
-3 ?A?0(?3包含大写字母+数字)
-4, –custom-charset4
字符集
自定义字符集?4
-4 !@#$%(?4包含指定特殊字符)
-i, –increment
–
启用掩码增量模式(按长度递增尝试)
hashcat -a 3 -i -m 0 hash.txt ?l?l?l
–increment-min
数字
增量模式起始长度
–increment-min=4(从4位开始)
–increment-max
数字
增量模式结束长度
–increment-max=8(到8位结束)
- 输出与结果管理参数
短参数/长参数
类型
描述
示例
-o, –outfile
文件
指定破解结果输出文件
-o result.txt(结果保存到result.txt)
–outfile-format
字符串
输出格式(多格式用逗号分隔)
–outfile-format=1,3(格式1:哈希:密码;格式3:密码)
–show
–
对比哈希列表与potfile(已破解记录文件),显示已破解哈希
hashcat –show -m 1000 hash.txt
–left
–
对比哈希列表与potfile,显示未破解哈希
hashcat –left -m 1000 hash.txt
–potfile-disable
–
禁用potfile(不保存破解记录)
hashcat –potfile-disable -m 0 hash.txt dict.txt
–potfile-path
文件
指定自定义potfile路径
–potfile-path=my.pot(使用my.pot保存记录)
- 会话与性能优化参数
短参数/长参数
类型
描述
示例
–session
字符串
定义会话名称(用于恢复会话)
–session=ntlm_crack(会话名:ntlm_crack)
–restore
–
从指定会话恢复破解(需配合–session)
hashcat –restore –session=ntlm_crack
-w, –workload-profile
数字
指定工作负载配置(1=低负载,2=中负载,3=高负载,默认3)
-w 2(中负载,平衡性能与系统占用)
-b, –benchmark
–
对指定哈希类型进行性能测试
hashcat -b -m 1000(测试NTLM哈希破解速度)
–backend-devices
字符串
指定使用的硬件设备(逗号分隔)
-d 1(使用第1个GPU设备)
-O, –optimized-kernel-enable
–
启用优化内核(提升速度,限制密码长度)
hashcat -O -m 1000 -a 3 hash.txt ?l?d?u?l?d?u
- 规则与字典参数
短参数/长参数
类型
描述
示例
-r, –rules-file
文件
指定规则文件(对字典单词应用规则变形)
-r rules/best64.rule(使用best64规则)
-j, –rule-left
规则
对字典单词应用单个左侧规则
-j ‘c’(首字母大写,如”test”→”Test”)
-k, –rule-right
规则
对字典单词应用单个右侧规则
-k ‘^-‘(在单词前加”-“,如”test”→”-test”)
-s, –skip
数字
跳过字典前X个单词
-s 10000(跳过前10000个单词)
-l, –limit
数字
限制字典读取数量(从跳过位置开始算)
-l 5000(仅读取5000个单词)
附:常用攻击模式(–attack-mode)
编号
攻击模式
描述
0
Straight(字典模式)
直接使用字典中的单词尝试破解
1
Combination(组合模式)
组合两个字典中的单词尝试破解
3
Brute-force(掩码暴力破解)
通过掩码定义字符集和长度,暴力尝试
6
Hybrid Wordlist + Mask(混合模式1)
字典单词 + 掩码后缀
7
Hybrid Mask + Wordlist(混合模式2)
掩码前缀 + 字典单词
附:常用哈希类型(–hash-type)
编号
哈希类型
描述
0
MD5
MD5哈希算法
100
SHA-1
SHA-1哈希算法
1000
NTLM
Windows NTLM哈希
3200
bcrypt
bcrypt哈希(Linux/网站密码常用)
2500
WPA/WPA2
WiFi WPA/WPA2握手包哈希(需hccapx文件)
附:内置字符集代码
代码
包含字符
?l
小写字母(a-z)
?u
大写字母(A-Z)
?d
数字(0-9)
?s
特殊字符(!@#$%^&*等)
?a
所有可打印字符(?l?u?d?s)
?h
十六进制字符(0-9, a-f)
?H
十六进制字符(0-9, A-F)
hashcat 完整使用教程
- 基础字典破解(Straight模式)
场景
:破解单个MD5哈希(哈希值:d41d8cd98f00b204e9800998ecf8427e,对应空密码),使用系统自带字典rockyou.txt。
命令
hashcat -a 0 -m 0 d41d8cd98f00b204e9800998ecf8427e /usr/share/wordlists/rockyou.txt -o md5_result.txt -v
参数说明
-a 0:字典模式
-m 0:MD5哈希类型
d41d8cd98f00b204e9800998ecf8427e:目标哈希
/usr/share/wordlists/rockyou.txt:Kali自带字典(需解压:gunzip rockyou.txt.gz)
-o md5_result.txt:结果保存到md5_result.txt
-v:详细输出
结果查看
:执行后打开md5_result.txt,可看到“d41d8cd98f00b204e9800998ecf8427e:”(空密码)的破解结果。
- 掩码暴力破解(Brute-force模式)
场景
:破解Windows NTLM哈希(哈希值:31d6cfe0d16ae931b73c59d7e0c089c0,对应空密码),尝试4-6位由“小写字母+数字”组成的密码,启用增量模式。
命令
hashcat -a 3 -m 1000 31d6cfe0d16ae931b73c59d7e0c089c0 -1 ?l?d -i --increment-min=4 --increment-max=6 ?1?1?1?1?1?1 -o ntlm_brute_result.txt -O -v
参数说明
-a 3:掩码暴力破解模式
-m 1000:NTLM哈希类型
31d6cfe0d16ae931b73c59d7e0c089c0:目标NTLM哈希
-1 ?l?d:自定义字符集?1为“小写字母+数字”
-i:启用增量模式(按密码长度递增尝试)
--increment-min=4:从4位密码开始尝试
--increment-max=6:到6位密码结束尝试
?1?1?1?1?1?1:掩码(6个位置,每个位置使用?1字符集,增量模式下会自动匹配4-6位长度)
-o ntlm_brute_result.txt:结果保存到指定文件
-O:启用优化内核(提升GPU破解速度)
-v:详细输出破解过程
补充说明
:若已知密码格式(如首字母大写、末尾含特殊字符),可自定义多字符集组合。例如破解“1位大写字母+4位数字+1位特殊字符”的密码,命令为:
hashcat -a 3 -m 0 md5_hash.txt -1 ?u -2 ?d -3 ?s ?1?2?2?2?2?3 -o custom_mask_result.txt
- 字典+规则破解(提升字典覆盖率)
场景
:破解SHA-1哈希(哈希值:da39a3ee5e6b4b0d3255bfef95601890afd80709,对应空密码),使用rockyou.txt字典并应用best64规则(对字典单词进行变形,如首字母大写、末尾加数字等)。
命令
hashcat -a 0 -m 100 da39a3ee5e6b4b0d3255bfef95601890afd80709 /usr/share/wordlists/rockyou.txt -r /usr/share/hashcat/rules/best64.rule -o sha1_rule_result.txt -v
参数说明
-a 0:字典模式
-m 100:SHA-1哈希类型
da39a3ee5e6b4b0d3255bfef95601890afd80709:目标SHA-1哈希
/usr/share/wordlists/rockyou.txt:基础字典
-r /usr/share/hashcat/rules/best64.rule:应用hashcat自带的best64规则(Kali默认路径)
-o sha1_rule_result.txt:结果输出文件
-v:详细输出
规则作用
:best64规则包含64种常见密码变形逻辑,例如将“test”变为“Test”“test1”“TEST”等,可大幅提升字典对复杂密码的破解成功率。
- 混合模式破解(字典+掩码)
场景
:破解Linux bcrypt哈希(哈希值:$2a$10$xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx,假设密码格式为“字典单词+2位数字后缀”),使用混合模式(字典+掩码)。
命令
hashcat -a 6 -m 3200 bcrypt_hash.txt /usr/share/wordlists/rockyou.txt ?d?d -o bcrypt_hybrid_result.txt -w 2 -v
参数说明
-a 6:混合模式(字典单词+掩码后缀)
-m 3200:bcrypt哈希类型
bcrypt_hash.txt:存储目标bcrypt哈希的文件(每行一个哈希)
/usr/share/wordlists/rockyou.txt:基础字典(提供前缀单词)
?d?d:掩码后缀(2位数字,匹配密码末尾的数字组合)
-w 2:中负载工作模式(平衡CPU/GPU占用与破解速度)
-o bcrypt_hybrid_result.txt:结果输出文件
-v:详细输出
反向混合模式
:若密码格式为“2位数字前缀+字典单词”,可使用
-a 7
(掩码前缀+字典单词),命令为:
hashcat -a 7 -m 3200 bcrypt_hash.txt ?d?d /usr/share/wordlists/rockyou.txt -o bcrypt_hybrid_rev_result.txt
- WiFi WPA/WPA2哈希破解(hccapx文件)
场景
:破解WiFi WPA/WPA2握手包生成的hccapx文件(需提前用aircrack-ng等工具捕获握手包并转换为hccapx格式),使用字典暴力破解。
步骤1:确认hccapx文件有效性
file wifi_handshake.hccapx # 输出应包含“hccapx file”
步骤2:执行破解命令
hashcat -a 0 -m 2500 wifi_handshake.hccapx /usr/share/wordlists/rockyou.txt -o wifi_result.txt --status --status-timer=10 -v
参数说明
-a 0:字典模式
-m 2500:WPA/WPA2哈希类型(对应hccapx文件)
wifi_handshake.hccapx:目标WiFi握手包hccapx文件
/usr/share/wordlists/rockyou.txt:WiFi密码字典(建议使用专用WiFi字典如wifi.txt)
-o wifi_result.txt:破解结果(包含WiFi名称、BSSID、密码)
--status:启用状态自动更新
--status-timer=10:每10秒更新一次破解状态(进度、速度等)
-v:详细输出
结果解读
:破解成功后,wifi_result.txt中会显示类似“wifi_ssid:password”的内容,直接获取WiFi密码。
- 会话管理(暂停与恢复破解)
场景
:破解大型哈希文件(含1000个NTLM哈希),需中途暂停,后续恢复破解进度。
步骤1:启动带会话名的破解任务
hashcat -a 0 -m 1000 large_ntlm_hashes.txt /usr/share/wordlists/rockyou.txt -o large_ntlm_result.txt --session=ntlm_large -v
步骤2:中途暂停破解(在另一个终端执行)
hashcat --session=ntlm_large --force --quit # 或直接按Ctrl+C(hashcat会自动保存会话)
步骤3:恢复会话
hashcat --restore --session=ntlm_large -v
参数说明
--session=ntlm_large:定义会话名为“ntlm_large”(用于标识和恢复任务)
--restore:从指定会话恢复破解(自动读取会话保存的进度文件)
--quit:主动暂停会话(可选,Ctrl+C更便捷)
会话文件位置
:默认会话文件保存在
~/.hashcat/sessions/
目录下,包含破解进度、已尝试密码数量等信息。
- 结果管理(查看已破解/未破解哈希)
场景
:破解完成后,筛选大型哈希文件中的已破解和未破解哈希。
查看已破解哈希(对比哈希文件与potfile)
hashcat --show -m 1000 large_ntlm_hashes.txt -o cracked_ntlm.txt
查看未破解哈希
hashcat --left -m 1000 large_ntlm_hashes.txt -o uncracked_ntlm.txt
参数说明
--show:显示已破解的哈希(格式:哈希:密码)
--left:显示未破解的哈希(仅输出哈希值)
-m 1000:指定哈希类型(需与破解时一致)
cracked_ntlm.txt:已破解哈希输出文件
uncracked_ntlm.txt:未破解哈希输出文件
potfile说明
:hashcat默认将破解记录保存在
~/.hashcat/hashcat.potfile
中,
--show
和
--left
通过对比该文件筛选结果。
- 性能测试(基准测试与设备选择)
场景
:测试当前设备对NTLM哈希的破解速度,选择最优硬件(CPU/GPU)。
步骤1:查看系统支持的硬件设备
hashcat -I # 列出所有可用的后端设备(CPU、GPU等),记录设备ID(如GPU设备ID为1)
步骤2:对NTLM哈希进行基准测试(默认使用所有设备)
hashcat -b -m 1000 -v
步骤3:指定单个GPU设备进行测试(如设备ID=1)
hashcat -b -m 1000 -d 1 -v
参数说明
-I:显示硬件设备信息(后端类型、设备ID、名称等)
-b:基准测试模式(测试指定哈希类型的破解速度)
-m 1000:测试NTLM哈希类型
-d 1:指定使用设备ID=1的硬件(如独立显卡)
-v:详细输出测试结果(含每秒尝试密码数[H/s])
结果应用
:根据测试结果选择速度最快的设备(通常GPU速度远高于CPU),后续破解时用
-d 设备ID
指定该设备。
- 自定义字符集与复杂掩码破解
场景
:破解已知格式为“2位大写字母+4位数字+1位特殊字符”的MD5哈希,需自定义字符集组合。
命令
hashcat -a 3 -m 0 target_hash.txt -1 ?u -2 ?d -3 ?s ?1?1?2?2?2?2?3 -o custom_charset_result.txt -v
参数说明
-1 ?u:自定义字符集1为大写字母(A-Z)
-2 ?d:自定义字符集2为数字(0-9)
-3 ?s:自定义字符集3为特殊字符(!@#等)
?1?1?2?2?2?2?3:掩码规则(2位大写+4位数字+1位特殊字符)
其他参数同前
- 批量哈希文件破解
场景
:破解包含多个不同类型哈希的文件(需提前确认所有哈希类型一致),如批量破解多个MD5哈希。
准备哈希文件(hashes.txt,每行一个哈希)
echo "d41d8cd98f00b204e9800998ecf8427e" > hashes.txt
echo "5f4dcc3b5aa765d61d8327deb882cf99" >> hashes.txt
执行批量破解
hashcat -a 0 -m 0 hashes.txt /usr/share/wordlists/rockyou.txt -o batch_result.txt --remove
参数说明
--remove:破解成功后自动从原哈希文件中移除已破解项
其他参数同前
- 规则生成与自定义规则破解
场景
:生成100条随机规则并应用于字典破解,提升对未知密码格式的破解概率。
生成随机规则并保存到文件
hashcat -g 100 --generate-rules-seed 123 > custom_rules.rule
使用自定义规则破解
hashcat -a 0 -m 1000 ntlm_hashes.txt /usr/share/wordlists/rockyou.txt -r custom_rules.rule -o custom_rule_result.txt -v
参数说明
-g 100:生成100条随机规则
--generate-rules-seed 123:指定随机种子(保证规则可复现)
custom_rules.rule:自定义规则文件
其他参数同前
- 脑功能(Brain)分布式破解
场景
:多设备协同破解同一批哈希,避免重复计算(需多设备网络互通)。
设备1(服务器端)启动脑服务
hashcat --brain-server --brain-password mypass --session brain_session -v
设备2(客户端)连接服务器
hashcat --brain-client --brain-host 192.168.1.100 --brain-port 13743 --brain-password mypass --session brain_session -a 0 -m 0 hashes.txt dict.txt -v
参数说明
--brain-server:启用脑服务器模式
--brain-client:启用脑客户端模式
--brain-host/--brain-port:服务器IP和端口
--brain-password:脑服务认证密码
其他参数同前
适用场景
:大规模哈希破解任务,多设备分工协作提升效率。
常见问题与注意事项
哈希类型识别
:若不确定哈希类型,可先用
hashid
工具识别,再用
-m
指定类型,或让hashcat自动检测(不推荐,可能误判)。
字典准备
:Kali默认字典路径为
/usr/share/wordlists/
,建议优先使用rockyou.txt(需解压:
gunzip /usr/share/wordlists/rockyou.txt.gz
)。
性能优化
:GPU破解速度远高于CPU,建议安装对应显卡驱动(NVIDIA需安装CUDA,AMD需安装OpenCL);使用
-O
启用优化内核(限短密码)。
密码长度限制
:启用优化内核(
-O
)时,部分哈希类型有密码长度限制(如NTLM限15位以内),长密码需禁用
-O
。
法律风险
:仅可对授权的哈希或自己的系统进行破解,未经授权的密码破解可能违反法律法规。
查看原文
🏷 标签: hashcat, 密码破解, 掩码攻击, 自定义字符集, 渗透测试