跳转至

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文件),最后指定破解源(字典/掩码/目录)

常用参数说明(按功能分类)

  1. 基础配置参数

短参数/长参数

类型

描述

示例

-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. 攻击模式与字符集参数

短参数/长参数

类型

描述

示例

-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位结束)

  1. 输出与结果管理参数

短参数/长参数

类型

描述

示例

-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保存记录)

  1. 会话与性能优化参数

短参数/长参数

类型

描述

示例

–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

  1. 规则与字典参数

短参数/长参数

类型

描述

示例

-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 完整使用教程

  1. 基础字典破解(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:”(空密码)的破解结果。

  1. 掩码暴力破解(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

  1. 字典+规则破解(提升字典覆盖率)

场景

:破解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”等,可大幅提升字典对复杂密码的破解成功率。

  1. 混合模式破解(字典+掩码)

场景

:破解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

  1. 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密码。

  1. 会话管理(暂停与恢复破解)

场景

:破解大型哈希文件(含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/

目录下,包含破解进度、已尝试密码数量等信息。

  1. 结果管理(查看已破解/未破解哈希)

场景

:破解完成后,筛选大型哈希文件中的已破解和未破解哈希。

查看已破解哈希(对比哈希文件与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

通过对比该文件筛选结果。

  1. 性能测试(基准测试与设备选择)

场景

:测试当前设备对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

指定该设备。

  1. 自定义字符集与复杂掩码破解

场景

:破解已知格式为“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位特殊字符)

其他参数同前

  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:破解成功后自动从原哈希文件中移除已破解项

其他参数同前

  1. 规则生成与自定义规则破解

场景

:生成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:自定义规则文件

其他参数同前

  1. 脑功能(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, 密码破解, 掩码攻击, 自定义字符集, 渗透测试