1、介绍
Hashcat是一款用于破解密码的工具,听说是世界上最快最中级的密码破解工具,支持LM哈希、MD5、SHA等系列的密码破解,同时也支持Linux、Mac、Windows平台。
工具地址:
项目地址:
2、安装Mac
Mac用户直接使用brew安装即可
brew install hashcat
对于Debain的Linux,例如Kali、Ubuntu可以直接使用apt进行安装
apt install hashcat
或则下载官方二补码文件进行安装
在里下载最新版压缩包,这儿以6.2.4版为例
tar zxvf hashcat-6.2.4.7z
cd hashcat-6.2.4
chmod +x hashcat.bin
./hashcat.bin
Windows
在里下载最新版压缩包,解压后可以看见hashcat.exe
3、使用
常用参数:
-r 使用自定义破解规则
-o 指定破解成功后的 hash 及所对应的明文密码的存放位置
-m 指定要破解的 hash 类型,如果不指定类型,则默认是 MD5
-a 指定要使用的破解模式,其值参考后面对参数。“-a 0” 字典攻击,“-a 1” 组合攻击;“-a 3” 掩码攻击
-D 指定 opencl 的设备类型
--show 显示已经破解的 hash 及该 hash 所对应的明文
--force 忽略破解过程中的警告信息,跑单条 hash 可能需要加上此选项
--remove 删除已被破解成功的 hash
--username 忽略 hash 文件中的指定的用户名,在破解 linux 系统用户密码 hash 可能会用到
--increment 启用增量破解模式,你可以利用此模式让 hashcat 在指定的密码长度范围内执行破解过程
--increment-min 密码最小长度,后面直接等于一个整数即可,配置 increment 模式一起使用
--increment-max 密码最大长度,同上
--outfile-format 指定破解结果的输出格式 id ,默认是 3
--self-test-disable 关闭启动自检
-a破解模式:
0 | Straight (字段破解)
1 | Combination (组合破解)
3 | Brute-force (掩码暴力破解)

6 | Hybrid Wordlist + Mask(字典+掩码破解)
7 | Hybrid Mask + Wordlist(掩码+字典破解)
-D指定设备类型
1 | CPU
2 | GPU
3 | FPGA, DSP, Co-Processor
通常使用-D2指定GPU破解
网段设置:
l | abcdefghijklmnopqrstuvwxyz 纯小写字母
u | ABCDEFGHIJKLMNOPQRSTUVWXYZ 纯大写字母
d | 0123456789 纯数字
h | 0123456789abcdef 十六进制小写字母和数字
H | 0123456789ABCDEF 十六进制大写字母和数字
s | !"#$%&'()*+,-./:;?@[]^_`{|}~ 特殊字符
a | ?l?u?d?s 键盘上所有可见的字符
b | 0x00 - 0xff 匹配密码空格
网段设置举例:
八位数字密码:?d?d?d?d?d?d?d?d
八位未知密码:?a?a?a?a?a?a?a?a
前四位为大写字母,后面四位为数字:?u?u?u?u?d?d?d?d
前四位为数字或者是小写字母,后四位为大写字母或者数字:?h?h?h?h?H?H?H?H
前三个字符未知,中间为admin,后三位未知:?a?a?aadmin?a?a?a
6-8位数字密码:--increment --increment-min 6 --increment-max 8 ?d?d?d?d?d?d?d?d
6-8位数字+小写字母密码:--increment --increment-min 6 --increment-max 8 ?h?h?h?h?h?h?h?h
自定义网段规则:
--custom-charset1 [chars]等价于 -1
--custom-charset2 [chars]等价于 -2
--custom-charset3 [chars]等价于 -3
--custom-charset4 [chars]等价于 -4
在网段中用?1、?2、?3、?4来表示
注意:
另外Hash模式与ID的对照表因为太长,这儿就不放了linux内存管理,可以直接hashcat-h进行查看
4、示例MD5
密码为8位数字
hashcat -a 3 --force d54d1702ad0f8326224b817c796763c9 ?d?d?d?d?d?d?d?d
密码为4位大写字母+数字
hashcat -a 3 --force 4575621b0d88c303998e63fc74d165b0 -1 ?l?d ?1?1?1?1
密码为1-4位小写字母+数字
hashcat -a 3 --force 8fb5a3e7338ce951971d69be27fc5210 -1 ?u?d ?1?1?1?1 --increment --increment-min 1 --increment-max 4
指定特定字符集:123456abcdf!@+-进行破解
hashcat -a 3 -1 123456abcdf!@+- 8b78ba5089b11326290bc15cf0b9a07d ?1?1?1?1?1
因为在终端里可能会把部份字符辨识为特殊字符linux rar破解,因而须要通配符一下
hashcat -a 3 -1 123456abcdf!@+- 8b78ba5089b11326290bc15cf0b9a07d ?1?1?1?1?1
若果不晓得目标密码的构成情况,可以直接使用?a表示使用所有字符进行破解
hashcat -a 3 19b9a36f0cab6d89cd4d3c21b2aa15be --increment --increment-min 1 --increment-max 8 ?a?a?a?a?a?a?a?a
使用字典破解
hashcat -a 0 e10adc3949ba59abbe56e057f20f883e password.txt
使用字典批量破解
hashcat -a 0 hash.txt password.txt
字典组合破解
hashcat -a 1 77b3e6926e7295494dd3be91c6934899 pwd1.txt pwd2.txt
经过测试,这儿的字典组合破解linux rar破解,不是说简单的将两个字典的内容合并去重产生1个字典进行去重,而是说字典1的内容加上字典2的内容组合成一个字典,比如:
pwd1.txt字典为:
admin
test
root
pwd2.txt字典为:
@2021
123
这么组合后的字典就是这样的:
admin@2021
admin123
test@2021
test123
root@2021
root123
字典+网段破解,也是和前面一样的组合方式,只不过pwd2.txt换成了网段
hashcat -a 6 e120ea280aa50693d5568d0071456460 pwd1.txt ?l?l?l
Mysql4.1/5
hashcat -a 3 -m 300 --force 6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 ?d?d?d?d?d?d
可以使用selectauthentication_stringfrommysql.user;查看当前数据库中的密码哈希值。
sha512crypt
,SHA512(Unix)
sha512crypt
,SHA512(Unix)破解,为了防止系统误辨识到特殊字符,这儿为哈希值加了单冒号
hashcat -a 3 -m 1800 --force '$6$mxuA5cdy$XZRk0CvnPFqOgVopqiPEFAFK72SogKVwwwp7gWaUOb7b6tVwfCpcSUsCEk64ktLLYmzyew/xd0O0hPG/yrm2X.' ?l?l?l?l
可通过cat/etc/shadow获取哈希值
或则不删掉用户名,直接使用--username参数
hashcat -a 3 -m 1800 --force 'qiyou:$6$QDq75ki3$jsKm7qTDHz/xBob0kF1Lp170Cgg0i5Tslf3JW/sm9k9Q916mBTyilU3PoOsbRdxV8TAmzvdgNjrCuhfg3jKMY1' ?l?l?l?l?l --username
NTLM
NTHash
hashcat -a 3 -m 1000 209C6174DA490CAEB422F3FA5A7AE634 ?l?l?l?l?l
LMHash
hashcat -a 3 -m 3000 F0D412BD764FFE81AAD3B435B51404EE ?l?l?l?l?l
NetNTLMHash
hashcat -a 3 -m 5500 teams.six::::822795daaf96s0a811fs6dd7b01dscssc601635cc1339basda6:e125cddcf51337asc7 -1 ?l?u ?1?1?1?1?d?d?d?d --force
MSSQL(2005)
hashcat -a 3 -m 132 --force 0x01008c8006c224f71f6bf0036f78d863c3c4ff53f8c3c48edafb ?l?l?l?l?l?d?d?d
WordPress密码hash
hashcat -a 3 -m 400 --force '$P$BYEYcHEj3vDhV1lwGBv6rpxurKOEWY/' ?d?d?d?d?d?d
具体加密脚本在./wp-includes/class-phpass.php的HashPassword函数
Discuz用户密码hash
hashcat -a 3 -m 2611 --force 14e1b600b1fd579f47433b88e8d85291: ?d?d?d?d?d?d
其密码加密方法md5(md5(
salt)
RAR压缩密码
首先获取rar文件的hash值,我们可以使用另一款哈希破解工具John提供的rar2john工具将rar文件里的hash提取下来。
rar2john下载地址:
# 获取 rar 文件 hash

rar2john.exe 1.rar
hashcat支持RAR3-hp和RAR5
对于RAR5,示例如下:
hashcat -a 3 -m 13000 --force '$rar5$16$b06f5f2d4c973d6235e1a88b8d5dd594$15$a520dddcc53dd4e3930b8489b013f273$8$733969e5bda903e4' ?d?d?d?d?d?d
对于RAR3-hp
hashcat -a 3 -m 12500 --force '$RAR3$*0*5ba3dd697a8706fa*919ad1d7a1c42bae4a8d462c8537c9cb' ?d?d?d?d
RAR3-hp哈希头为
*0*,而不是
*1*,中间的数值是0(-hp)而不是1(-p),-p仍未得到支持,只支持-hp
关于RAR参数-p和-hp的区别:
-p:只对RAR文件加密,上面的目录和文件名没加密;
-hp:对目录中的文件名和子目录都进行加密处理
ZIP压缩密码
和rar破解过程一样,我们须要先提取zip文件的哈希值鸟哥的linux私房菜,这儿可以使用zip2john进行获取,zip2john.exe在里面下载的rar2john.exe的同级目录下。
# 获取 zip 文件 hash
zip2john.exe 1.zip
hashcat -a 3 -m 13600 '$zip2$*0*3*0*18b1a7e7ad39cb3624e54622849b23c7*5b99*3*5deee7*a418cee1a98710adce9a*$/zip2$' --force ?d?d?d?d?d?d
这儿ZIP的加密算法使用的AES256
office密码
和rar与zip破解过程一样,我们须要先提取office文件的哈希值,这儿可以使用office2john.py进行获取,office2john.py在里面下载的rar2john.exe和zip2john.exe的同级目录下。
# 获取 office 文件 hash
python office2john.py 1.docx
测试中发觉python会出现告警信息,不过这个告警信息不会影响程序执行
hashcat -a 3 -m 9600 '$office$*2013*100000*256*16*cd8856416b1e14305a0e8aa8eba6ce5c*18cada7070f1410f3a836c0dfc4b9643*befcde69afeafb3e652719533c824413b00ce4a499589e5ac5bd7a7a0d3c4f3d' --force ?d?d?d?d?d?d
这儿哈希头为2013所以使用9600破解模式,倘若是2010则要使用9500破解模式,2007则使用9400破解模式。
WIFI密码
要破解WIFI密码,首先要抓到WIFI的握包包,要想得到WIFI的握包包,就须要在窃听时正好有设备联接了该WIFI,但这就须要运气加成,因而可以我们可以主动将该WIFI的设备踢下去,通常设备都会手动联接该WIFI,此时我们就抓到握包包了。
抓取WIFI握包包
1、将网卡处于窃听状态
airmon-ng check
airmon-ng check kill // 关闭影响监听状态的进程
airmon-ng start wlan0
wlan0是网卡名称,通常都是wlan0,倘若不是则须要依照自己的情况进行更改,可通过iwconfig进行查看网卡的名称
当使用iwconfig查看网卡名称变为wlan0mon说明此时网卡早已处于窃听模式了
2、扫描可用WIFI
airodump-ng wlan0mon
image
3、获取wifi的握包包
airodump-ng -c (上一步扫描的 CH ) --bssid (想要破解 WIFI 的 bssid ) -w (握手文件存放目录) wlan0mon
这儿以ssid为teamssix的WIFI为例
airodump-ng -c 1 --bssid 5E:C1:1B:A2:37:F1 -w ./ wlan0mon
为了顺利得到WIFI的握包包,可以将该WIFI下的设备强制踢下去
aireplay-ng -0 0 -a (要破解的 wifi 的 bssid ) -c (强制踢下的设备的 MAC 地址) wlan0mon
image
可以看见teamssix这个WIFI有一个设备正在联接,该设备的MAC地址为:38:26:2C:13:D3:33,使用以下命令可以将其强制踢下去
aireplay-ng -0 0 -a 5E:C1:1B:A2:37:F1 -c 38:26:2C:13:D3:33 wlan0mon
等待设备重新联接后,当右上角出现WPAhandshake的时侯说明获取成功
image
4、破解密码
使用aircrack-ng将握包包转换成hccapx格式
aircrack-ng 1.cap -j 1
hashcat -a 3 -m 2500 1.hccapx ?d?d?d?d?d?d?d?d --force
或则使用hashcat官网提供的在线工具进行格式转换:
hashcat -a 3 -m 22000 1.hc22000 ?d?d?d?d?d?d?d?d --force
image
5、其他
--gpu-accel 160 可以让GPU发挥最大性能
--gpu-loops 1024 可以让GPU发挥最大性能
--segment-size 512 可以提高大字典破解的速度
参考文章:
%E6%B8%97%E9%80%8F%E6%B5%8B%E8%AF%95/%E7%94%A8%20rar2john+hashcat%20%E7%A0%B4%E8%A7%A3%20RAR%20%E6%96%87%E4%BB%B6%E5%AF%86%E7%A0%81/
原文链接: