前言
Hashcat系列软件是非常强大的开源的密码破译软件。号称世界上最快的密码破解软件。配合强大的字典,可以破译超过百分之九十的密码。
破解微软office系列密码需要用到2个东西.一个office2john.py,另一个就是hashcat
Hashcat下载
下载地址:https://hashcat.net/hashcat/
第一个是可执行程序,下面是源码需要自己编译
office2john.py下载
GitHub地址:https://github.com/magnumripper/JohnTheRipper
**这个项目包含了很多东西,我们只需要的是office2john.py **
下载地址:https://github.com/magnumripper/JohnTheRipper/blob/bleeding-jumbo/run/office2john.py
执行脚本需要python环境,我这里是在window下进行操作,需要自己安装python环境,linux下一般都自带python,我本地已经装好了python环境,这里不多说,下面开始测试
测试
新建一个Excel2013文件,随便输入点内容
然后设置密码123,测试一个简单的.
接下来使用office2john.py计算出hash密文,打开cmd执行命令: python office2john.py 1.xlsx > hash
把计算的结果保存到了hash这个文件里面,通过记事本等编辑器可以打开,当然也可以改成1.txt都行的,也可以不写入到文件,直接执行 <strong>
python office2john.py 1.xlsx这样会在控制台打印出来 </strong>
需要把前面无用的东西删除,只保留:后面的,所以这里需要删除1.xlsx:,最后保留需要破解的是$office$2013100000256164f91254ed3cc1ccf2f8f81cd71b357f65667d51118813078bc3e7d78ab0575ab*2951d0ea676bb9dff5ec6b47cd9110af678e2349d56f56c712ca09d900b8e1a5
通过这个可以看到,office版本是2013版本的,这里还要注意的是尽量用cmd,不要用powershell,powershell可能会存在编码文件,需要保证文件编码是ANSI
接下来打开hashcat神器,是一个压缩包,解压即可
我这里已经把hash文件放到这个目录了,里面有很多的example,很多示例,但是用到是字典破解
我这里直接采用暴力破解,这里需要提一下hashcat用法
破解 Office 加密 Offcie 版本对应哈希类型
- Office97-03(MD5+RC4,oldoffice$0,oldoffice$1):-m 9700
- Office97-03($0/$1, MD5 + RC4, collider #1):-m 9710
- Office97-03($0/$1, MD5 + RC4, collider #2):-m 9720
- Office97-03($3/$4, SHA1 + RC4):-m 9800
- Office97-03($3, SHA1 + RC4, collider #1):-m9810
- Office97-03($3, SHA1 + RC4, collider #2):-m9820
- Office2007:-m 9400
- Office2010:-m 9500
- Office2013:-m 9600
我这里是2013,所以我这里使用的命令是:hashcat64.exe -m 9600 hash -a 3 ?d?d?d?d -w 3 –O
我使用了?d?d?d?d一共四个,表示四位任意的数字,假设我们不知道密码是几位,我们先多给几位,正常情况密码不会这么短,我这里为了测试,先设置4位而实际我们密码是3位
在cmd执行命令:<strong>
hashcat64.exe -m 9600 hash -a 3 ?d?d?d?d -w 3 –O </strong>
我电脑配置都在这里显示了,hashcat支持显卡计算,一个好的显卡会大大提高破解速度
查看密码
这里已经开始计算了,因为我们这里很少,很快就计算完了,查看密码我还没研究清楚,目前只知道使用--show可以显示,所以我们修改命名,在后面加上--show
hashcat64.exe -m 9600 hash -a 3 ?d?d?d?d -w 3 –O --show
可以看到密码已经算出来了
这里在补充一些大神们的资料
Hashcat 中自定义破解含义值:
- ?l = abcdefghijklmnopqrstuvwxyz,代表小写字母。
- ?u = ABCDEFGHIJKLMNOPQRSTUVWXYZ,代表大写字母。
- ?d = 0123456789,代表数字。
- ?s = !"#$%&'()*+,-./:;<=>?@[]^_`{|}~,代表特殊字符。
- ?a = ?l?u?d?s,大小写数字及特殊字符的组合。
- ?b = 0x00 - 0xff
破解示例
8 位数字破解
Hashcat64 -m 9700 hash -a 3 ?d?d?d?d?d?d?d?d -w 3 –O
1-8 位数字破解
Hashcat -m 9700 hash -a 3 --increment --increment-min 1--increment-max 8 ?d?d?d?d?d?d?d?d
1 到 8 位小写字母破解
Hashcat -m 9700 hash -a 3 --increment --increment-min 1--increment-max 8 ?l?l?l?l?l?l?l?l
8 位小写字母破解
Hashcat -m 9700 hash -a 3 ?l?l?l?l?l?l?l?l -w 3 –O
1-8 位大写字母破解
Hashcat -m 9700 hash -a 3 --increment --increment-min 1--increment-max 8 ?u?u?u?u?u?u?u?u
8 位大写字母破解
Hashcat -m 9700 hash -a 3 ?u?u?u?u?u?u?u?u -w 3 –O
5 位小写+大写+数字+特殊字符破解
Hashcat -m 9700 hash -a 3 ?b?b?b?b?b -w 3
使用字典进行破解
使用 password.lst 字典进行暴力破解,-w 3 参数是指定电力消耗。
Hashcat -m9700 -a 0 -w 3 hash password.lst
破解时采取先易后难的原则,建议如下:
- 使用 1-8 位数字进行破解。
- 使用 1-8 位小写字母进行破解。
- 使用 1-8 位大写字母进行破解。
- 使用 1-8 位混合大小写+数字+特殊字符进行破解。
- 利用收集的公开字典进行破解。
hashcat常用命令
-m 指定哈希类型
-a 指定破解模式
-V 查看版本信息
-o 将输出结果储存到指定文件
--force 忽略警告
--show 仅显示破解的hash密码和对应的明文
--remove 从源文件中删除破解成功的hash
--username 忽略hash表中的用户名
-b 测试计算机破解速度和相关硬件信息
-O 限制密码长度
-T 设置线程数
-r 使用规则文件
-1 自定义字符集 -1 0123asd ?1={0123asd}
-2 自定义字符集 -2 0123asd ?2={0123asd}
-3 自定义字符集 -3 0123asd ?3={0123asd}
-i 启用增量破解模式
--increment-min 设置密码最小长度
--increment-max 设置密码最大长度
hashcat破解模式介绍
0 straight 字典破解
1 combination 将字典中密码进行组合(1 2>11 22 12 21)
3 brute-force 使用指定掩码破解
6 Hybrid Wordlist + Mask 字典+掩码破解
7 Hybrid Mask + Wordlist 掩码+字典破解
hashcat集成的字符集
?l 代表小写字母
?u 代表大写字母
?d 代表数字
?s 代表特殊字符
?a 代表大小写字母、数字以及特殊字符
?b 0x00-0xff