Hashcat的使用手册

Hashcat的使用手册
Linstars简介
Hashcat 是一款开源的密码破解工具,也是目前全球公认的最快、最先进的密码恢复工具之一。它支持多种哈希算法(如 MD5、SHA-1、SHA-256、NTLM、bcrypt 等),能够通过暴力破解(Brute-force)、字典攻击(Dictionary attack)、掩码攻击(Mask attack)、组合攻击(Combination attack)等多种方式破解密码哈希值。
核心特点
高性能:
Hashcat 利用 GPU(NVIDIA/AMD)和 CPU 的并行计算能力,通过 OpenCL 和 CUDA 技术实现
硬件加速,破解速度远超纯 CPU 工具(如 John the Ripper)。
- 示例:破解 NTLM 哈希时,高端 GPU 可达到每秒数亿次尝试。
支持多种哈希类型:
覆盖常见算法(如 MD5、SHA-1、SHA-256、SHA-512、NTLM、LM、bcrypt、PBKDF2 等)以及特定场景的哈希(如 WPA/WPA2-PSK、Office 密码、PDF 密码等)。灵活的攻击模式:
- 暴力破解(Brute-force):尝试所有可能的字符组合(如
a-z, 0-9
)。 - 字典攻击(Dictionary attack):使用预定义的密码字典(如
rockyou.txt
)。 - 掩码攻击(Mask attack):定义密码模式(如
?l?l?l?d
表示 3 小写字母 + 1 数字)。 - 组合攻击(Combination attack):组合多个字典文件。
- 规则攻击(Rule-based attack):通过规则(如大小写转换、添加数字)扩展字典。
- 暴力破解(Brute-force):尝试所有可能的字符组合(如
跨平台支持:
支持 Windows、Linux 和 macOS,且兼容多种硬件(NVIDIA GPU、AMD GPU、Intel CPU)。命令行工具:
通过命令行参数灵活配置,适合自动化脚本和大规模任务。
1 | GPU |
GPU的驱动要求
1 | AMD GPUs on Linux require "RadeonOpenCompute (ROCm)" Software Platform (1.6.180 or later) |
最新版hashcat下载地址:https://hashcat.net/files/hashcat-5.1.0.7z
GitHub地址:https://github.com/hashcat/hashcat
参数
下面使常见的参数,想了解更多的参数可以hashcat –help查看
1 | -a 指定要使用的破解模式,其值参考后面对参数。“-a 0”字典攻击,“-a 1” 组合攻击;“-a 3”掩码攻击。 |
攻击模式:
1 | # | Mode |
输出格式
1 | 1 = hash[:salt] |
Hash id类型对照表
这里列举一小部分,要想了解所有的参数可到hashcat的Wiki上去看,或者直接hashcat –help查看hash对照表
1 | - [ Hash modes ] - |
掩码设置
这里列一下常见的掩码字符集
1 | l | abcdefghijklmnopqrstuvwxyz 纯小写字母 |
下面举几个简单的例子来了解一下掩码的设置
1 | 八位数字密码:?d?d?d?d?d?d?d?d |
如果我们想设置字符集为:abcd123456!@-+,那该怎么做呢。这就需要用到自定义字符集这个参数了,hashcat支持用户最多定义4组字符集
1 | --custom-charset1 [chars]等价于 -1 |
再来举几个例子:
1 | --custom-charset1 abcd123456!@-+。然后我们就可以用"?1"去表示这个字符集了 |
例子
7位数字破解
1 | hashcat.exe -a 3 -m 0 --force 25c3e88f81b4853f2a8faacad4c871b6 ?d?d?d?d?d?d?d |
13位数字破解(知道部分内容的)
如果像破译c22a563acc2a587afbfaaaa6d67bc6e628872b00bd7e998873881f7c6fdc62fc
的哈希,并且已经知道了结果是13位数字,也知道开头7位数字,可以用下面的命令进行破解
1 | hashcat -m 1400 c22a563acc2a587afbfaaaa6d67bc6e628872b00bd7e998873881f7c6fdc62fc -a 3 8617091?d?d?d?d?d?d -o hcat c22a563acc2a587afbfaaaa6d67bc6e628872b00bd7e998873881f7c6fdc62fc |
-m
参数后面跟类型, 1400为类型SHA2-256
后面跟需要破译的哈希值
-a
参数表示攻击模式,3为掩码暴力破解
8617091?d?d?d?d?d?d
表示已知前面的七位数为8617091
后面还有不知道的6位数字需要破解
-o
参数用于指定输出文件(Output File),用于将破解成功的密码保存到指定文件中。将破解成功的密码保存到名为 hcat
的文件中
7位小写字母破解:
1 | hashcat64.exe -a 3 -m 0 --force 7a47c6db227df60a6d67245d7d8063f3 ?l?l?l?l?l?l?l |
1-8位数字破解:
1 | hashcat64.exe -a 3 -m 0 --force 4488cec2aea535179e085367d8a17d75 --increment --increment-min 1 --increment-max 8 ?d?d?d?d?d?d?d?d |
1-8位小写字母+数字破解
1 | hashcat64.exe -a 3 -m 0 --force ab65d749cba1656ca11dfa1cc2383102 --increment --increment-min 1 --increment-max 8 ?h?h?h?h?h?h?h?h |
特定字符集:123456abcdf!@+-
1 | hashcat64.exe -a 3 -1 123456abcdf!@+- 8b78ba5089b11326290bc15cf0b9a07d ?1?1?1?1?1 |
1-8为位符集:123456abcdf!@+-
1 | hashcat64.exe -a 3 -1 123456abcdf!@+- 9054fa315ce16f7f0955b4af06d1aa1b --increment --increment-min 1 --increment-max 8 ?1?1?1?1?1?1?1?1 |
1-8位数字+大小写字母+可见特殊符号
1 | hashcat64.exe -a 3 -1 ?d?u?l?s d37fc9ee39dd45a7717e3e3e9415f65d --increment --increment-min 1 --increment-max 8 ?1?1?1?1?1?1?1?1 |
字典破解
1 | -a 0是指定字典破解模式,-o是输出结果到文件中 |
批量破解
1 | hashcat64.exe -a 0 hash.txt password.txt -o result.txt |
字典组合破解:
1 | hashcat64.exe -a 1 25f9e794323b453885f5181f1b624d0b pwd1.txt pwd2.txt |
字典+掩码破解
1 | hashcat64.exe -a 6 9dc9d5ed5031367d42543763423c24ee password.txt ?l?l?l?l?l |
Mysql4.1/5的PASSWORD函数
1 | hashcat64.exe -a 3 -m 300 --force 6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 ?d?d?d?d?d?d |
sha512crypt $6$, SHA512 (Unix)破解
可以cat /etc/shadow获取
1 | hashcat64.exe -a 3 -m 1800 --force $6$mxuA5cdy$XZRk0CvnPFqOgVopqiPEFAFK72SogKVwwwp7gWaUOb7b6tVwfCpcSUsCEk64ktLLYmzyew/xd0O0hPG/yrm2X. ?l?l?l?l |
不用整理用户名,使用–username
1 | hashcat64.exe -a 3 -m 1800 --force qiyou:$6$QDq75ki3$jsKm7qTDHz/xBob0kF1Lp170Cgg0i5Tslf3JW/sm9k9Q916mBTyilU3PoOsbRdxV8TAmzvdgNjrCuhfg3jKMY1 ?l?l?l?l?l --username |
Windows NT-hash,LM-hash破解
可以用saminside获取NT-hash,LM-hash的值
1 | NT-hash: |
mssql
1 | hashcat64.exe -a 3 -m 132 --force 0x01008c8006c224f71f6bf0036f78d863c3c4ff53f8c3c48edafb ?l?l?l?l?l?d?d?d |
wordpress密码hash破解
具体加密脚本在./wp-includes/class-phpass.php
的HashPassword
函数
1 | hashcat64.exe -a 3 -m 400 --force $P$BYEYcHEj3vDhV1lwGBv6rpxurKOEWY/ ?d?d?d?d?d?d |
discuz用户密码hash破解
其密码加密方式md5(md5($pass).$salt)
1 | hashcat64.exe -a 3 -m 2611 --force 14e1b600b1fd579f47433b88e8d85291: ?d?d?d?d?d?d |
破解RAR压缩密码
首先rar2john获取rar文件hash值下载地址
1 | 获取rar文件的hash值:rar2john.exe 1.rar |
1 | hashcat64.exe -a 3 -m 13000 --force $rar5$16$639e9ce8344c680da12e8bdd4346a6a3$15$a2b056a21a9836d8d48c2844d171b73d$8$04a52d2224ad082e ?d?d?d?d?d?d |
注意:
1 | hashcat 支持 RAR3-hp 和 RAR5,官方示例如下: |
zip密码破解
1 | 用zip2john获取文件的hash值:zip2john.exe 1.zip |
1 | hashcat64.exe -a 3 -m 13600 $zip2$*0*3*0*554bb43ff71cb0cac76326f292119dfd*ff23*5*24b28885ee*d4fe362bb1e91319ab53*$/zip2$ --force ?d?d?d?d?d?d |
破解office密码
1 | 获取office的hash值:python office2john.py 11.docx |
1 | hashcat64.exe -a 3 -m 9600 $office$*2013*100000*256*16*e4a3eb62e8d3576f861f9eded75e0525*9eeb35f0849a7800d48113440b4bbb9c*577f8d8b2e1c5f60fed76e62327b38d28f25230f6c7dfd66588d9ca8097aabb9 --force ?d?d?d?d?d?d |
破解WIFI密码
首先先把我们的握手包转化为hccapx格式,现在最新版的hashcat只支持hccapx格式了,以前的hccap格式已经不支持了
1 | 官方在线转化https://hashcat.net/cap2hccapx/ |
Others
对于破解过的hash值,用
hashcat64.exe hash --show
查看结果所有的hash破解结果都在hashcat.potfile文件中
如果破解的时间太长,可以按s键可以查看破解的状态,p键暂停,r键继续破解,q键退出破解。
在使用GPU模式进行破解时,可以使用-O参数自动进行优化
在实际破解中的建议,如果我们盲目的去破解,会占用我们大量的时间和资源
1
2
3
41.首先走一遍常用的弱口令字典
2.组合密码,如:zhang1999,用姓氏和出生年组合,当然也可以用其它的组合,这里举个例子而已
3.把常用的掩码组合整理起来放在masks中的.hcmask文件中,然后让它自动加载破解
4.如果实在不行,你可以尝试低位数的所有组合去跑,不过不建议太高位数的组合去破解,因为如果对方设置的密码很复杂的话,到头来你密码没有破解到,却浪费了大量的时间和资源,得不偿失6.HashCat参数优化
考虑到hashcat的破解速度以及资源的分配,我们可以对一些参数进行配置
1.Workload tuning 负载调优。
该参数支持的值有1,8,40,80,160
1
--gpu-accel 160 可以让GPU发挥最大性能。
2.Gpu loops 负载微调
该参数支持的值的范围是8-1024(有些算法只支持到1000)。
1
--gpu-loops 1024 可以让GPU发挥最大性能。
3.Segment size 字典缓存大小
该参数是设置内存缓存的大小,作用是将字典放入内存缓存以加快字典破解速度,默认为32MB,可以根据自身内存情况进行设置,当然是越大越块了。
1
--segment-size 512 可以提高大字典破解的速度。
Hashcat Wiki