最近,有一位读者向鸭哥提问。他在整理文档时发现几个PDF文档被加密了,但他忘记了密码,只记得大概是由6位以内的字母和数字组成,但具体已经记不清了。他希望我能推荐一款暴力破解工具给他。这对鸭哥来说难不倒,因为我经常使用kali,里面有很多暴力破解工具。所以,我想向大家推荐一款密码暴力破解的神器——Hashcat,它被称为世界上最快的hash破解工具,我以前经常使用它。
-a 指定要使用的破解模式,其值参考后面对参数。“-a 0”字典攻击,“-a 1” 组合攻击;“-a 3”掩码攻击。
-m 指定要破解的hash类型,如果不指定类型,则默认是MD5
-o 指定破解成功后的hash及所对应的明文密码的存放位置,可以用它把破解成功的hash写到指定的文件中
--force 忽略破解过程中的警告信息,跑单条hash可能需要加上此选项
--show 显示已经破解的hash及该hash所对应的明文
--increment 启用增量破解模式,你可以利用此模式让hashcat在指定的密码长度范围内执行破解过程
--increment-min 密码最小长度,后面直接等于一个整数即可,配置increment模式一起使用
--increment-max 密码最大长度,同上
--outfile-format 指定破解结果的输出格式id,默认是3
--username 忽略hash文件中的指定的用户名,在破解linux系统用户密码hash可能会用到
--remove 删除已被破解成功的hash
-r 使用自定义破解规则?
0 | Straight(字段破解)
1 | Combination(组合破解)
3 | Brute-force(掩码暴力破解)
6 | Hybrid Wordlist + Mask(字典+掩码破解)
7 | Hybrid Mask + Wordlist(掩码+字典破解)
1 = hash[:salt]
2 = plain
3 = hash[:salt]:plain
4 = hex_plain
5 = hash[:salt]:hex_plain
6 = plain:hex_plain
7 = hash[:salt]:plain:hex_plain
8 = crackpos
9 = hash[:salt]:crackpos
10 = plain:crackpos
11 = hash[:salt]:plain:crackpos
12 = hex_plain:crackpos
13 = hash[:salt]:hex_plain:crackpos
14 = plain:hex_plain:crackpos
15 = hash[:salt]:plain:hex_plain:crackpos
l | abcdefghijklmnopqrstuvwxyz 纯小写字母
u | ABCDEFGHIJKLMNOPQRSTUVWXYZ 纯大写字母
d | 0123456789 纯数字
h | 0123456789abcdef 常见小写子目录和数字
H | 0123456789ABCDEF 常见大写字母和数字
s | !"#$%&'()*+,-./:;?@[]^_`{|}~ 特殊字符
a | ?l?u?d?s 键盘上所有可见的字符
b | 0x00 - 0xff 可能是用来匹配像空格这种密码的
官网链接:# 基本配置 常用参数 攻击模式 输出格式 Hash对应表。简单来说,你需要选择破解的类型,比如在本文中我们需要破解PDF,所以我需要指定相应的PDF加密类型,详见下图。掩码设置 这里列举了一些常见的掩码设置。
hashcat -a 3 -m 0 --force DC483E80A7A0BD9EF71D8CF973673924 "?l?d?d?d?d?d?d"
如何使用呢?比如说,我要暴力破解一个7位数的md5散列值:DC483E80A7A0BD9EF71D8CF973673924。接下来,我们来破解PDF文件。1、提取pdf文件的hash值。通常可以使用kali linux提供的john脚本(路径:/usr/share/john/)来获取。也可以使用在线网站来获取,网站地址:
hashcat -m 10700 -a 3 $pdf$4*4*128*-4*1*16*69dfb0ee23d9b1a651dce01c07e1065e*32*f417c2fc6afe23c93c7ccae8c97e87d728bf4e5e4e758a4164004e56fffa0108*32*e4b444b43f5d433efa864b85850446433e2262cf81b960000abdc210f73fb0de ?l?d?d?d?d?d?d
往期推荐
点击阅读原文,获得编程视频资料!