用Hashcat找回Office文档密码

发布于 14 天前  161 次阅读


原文地址

其他参照

Word 软件是目前世界上使用最为广泛的办公文字处理软件之一,政府、企业以及个人都喜欢用 Word 文件来处理工作和个人事务,在国内有超过 90% 的用户在使用它。

而在使用 Word 来保存文件内容时,根据不同的安全需要,对文件内容进行保护就需要进行加密,当需要阅读文件内容时就需要解密。

很多人都有记日记的习惯,可时间久了,往往会忘记自己的密码,如果不能找回密码,则无法查看文档内容。

目前网上有很多关于 Word 密码破解的软件,例如 Word Password Recovery Master 无限制版、Advanced Office Password Recovery。

它们主要的破解方式是采用暴力破解,破解成功后会显示原来的加密密码。如果密码设置的相对复杂,其破解时间特别长。

“Office Password Remover” 是国外一家单独做密码恢复软件的公司开发的,该公司还有许多其他密码恢复的软件。

原版 “Office Password Remover” 软件下载地址:http://www.rixler.com/download.htm

rixler 破解 “Office97/2000 兼容” 加密类型的 Word 加密文件,速度非常快,最慢不超过 1 分钟。

它的缺点是在破解时需要访问网络 http://www.rixler.com/,而且破解后不显示原来密码(联网破解需要付费购买其软件)。

通过笔者研究,发现 Hashcat 新版本增加了很多新功能,Hashcat 采用暴力破解和哈希值碰撞的方式进行破解,按照官方的说法,一个 Word 加密文件有可能有多个密码可以用来打开该文件。

Word 文件加密

加密 Word 文件

一般情况下,对 Word 文件加密是指采用 Word 字处理软件所自带的加密功能。

要使用该功能,可在 Word 文件编辑状态下,选择 “工具”-“选项”-“安全性”,就会出现如图 1 所示的界面:

pic_001.jpg
图 1:打开加密 Word 文件选项

设置加密密码

Word 文件加密常用的选项主要有二种,一种是打开权限,另一种是拥有修改权限可以对文件进行修改。

在对 Word 文件进行加密时可以根据需要,设置打开权限密码和修改权限密码,设置完毕后单击 “确定” 保存设置时,往往需要再次确认密码。

如图 2 所示,确认完毕,关闭 Word 文件后,再次打开时就需要输入密码。如果设置的是修改权限密码,再打开时会提示分别输入打开权限密码和修改权限密码。

pic_002.jpg

图 2:设置加密密码

目前也有单独针对 Word 文件开发的加解密软件,要解密这种 Word 文件非常困难。

在 Word 字处理软件中提供了多种加密算法类型,在图 3 中单击 “高级” 可以查看和选择不同的加密类型。

Word 默认的加密类型是 Office97/2000 兼容,该加密类型非常容易被破解,而如果要对 Word 文件进行较高等级的安全保护,建议采用其他加密类型。

除了 “Office97/2000 兼容” 加密类型外,其他加密类型均较难破解,对这些加密类型采取破解时多用暴力破解,其破解主要跟字典有关。

pic_003.jpg

图 3:选择 Word 加密类型

找回 Office 文档密码方法

对于加密的 Word 文件,笔者认为有三种方式可以找回:

暴力破解

这是最常用的方法,通过编程将字典中的值依次输入进行确认尝试,一旦尝试成功,则说明该值为破解值,其破解成功难度往往取决于字典的完善程度。

字典在网络安全中扮演非常重要的角色,不断的完善和更新字典是一个好习惯,一个高手往往有好多个字典,字典可以是以 .dic 和 .txt 结尾的文件,文件中每一个字符串为一行。

针对算法的破解

针对算法的破解,要求对加密算法非常熟悉,通过加密算法中的缺陷或者针对加密算法的破解算法进行编程,然后进行自动破解。

这种方法往往破解速度快,但是使用破解软件的技术难度大,这类软件往往是国外的网络安全大牛们写的,国内也有很多大牛,不过他们不怎么写。

另类破解

另类破解就是天才中的天才,也就是 “只有你想不到的,没有做不到的。” 他们往往采用常人所想不到的破解方式来进行破解,例如王晓芸教授破解 Md5 加密算法。

使用 Hashcat 软件找回密码

Hashcat 是一款强大的综合密码破解工具,它支持高达数百种加密算法的破解,以前有一个 Advanced Office Password Breaker 可以对 Office 密码进行恢复,下面介绍如何利用 Hashcat 进行 Office 文档的破解。

打开文件需要输入密码

使用 Office 软件打开某个被加密过的 Word 文件,需要输入密码才能正常访问,如图 4 所示:

pic_004.jpg

图 4:打开加密 Word 文件

Hashcat 号称宇宙最强密码破解工具,其是一款开源软件,有针对 Windows、Mac 和 Linux 的版本,支持 CPU、GPU、APU、DSP 和 FPGA 等多种计算核心,支持多种 hash 散列算法,支持对 rar、office、pdf、windows 账户、wifi 等多种密码的破解,本文以 Windows 10 系统下的 Hashcat 安装配置、具体密码破解方法和密码保护技巧等展开介绍。

计算加密 Word 文件的 Hash 值

pyhon 下载地址
office2john.py 下载地址
HashCat 下载地址,下载后是个压缩包,解压下就 ok

执行效果如图 5 所示,可以将执行结果定向到 Hash 文件:

office2john.py6.doc>hash

pic_005.jpg

图 5:计算 Word 文件 Hash 值

整理 Hash 文件

Hash 文件生成的内容如图 6 所示,该 Hash 文件无法直接进行计算,需要去掉一些无关信息。

pic_006.png

图 6:Hash 文件内容

对 Hash 文件进行整理,去掉6.doc:::: 第 6 章 入侵检测神话 渔樵 Normal 邓琦皓 2 Microsoft Word 9.0 YuQiao Studio::6.doc

比如:源文件内容为cc.xlsx:$office$*2013*100000*256*16*c2452356541d5c026b2040198fb74a6b*3511915654231c541760d4295329c351*6596f6c425d415cec340f5cd1426ed546aaa7872d2013aa1b6c858aaf2ae5947

把 cc.xls 去掉,只保留 符号到后面的数字,最终内容为: '符号到后面的数字,最终内容为: 符号到后面的数字,最终内容为:'office$_2013_ 100000_256_ 16_c2452356541d5c026b2040198fb74a6b_3511915654231c541760d4295329c351*6596f6c425d415cec340f5cd1426ed546aaa7872d2013aa1b6c858aaf2ae5947

如图 7 所示,获取正确的哈希值:

$oldoffice$1*ae8adb6a8b3aeb7c1bd3bb6bf6514ef4*5e4ffbe5034d9fa2bf05dce0a9d34bb7*db9ca3e3291f536620ad7c987ac6e514

pic_007.png

图 7:整理好的哈希值

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

使用 Hashcat 进行破解

Hashcat 中自定义破解含义值:

-a  指定要使用的破解模式,其值参考后面对参数。“-a 0”字典攻击,“-a 1” 组合攻击;“-a 3”掩码攻击。
-b 即可看到其针对各种 Hash 类型独立显卡 GeForce 940MX、核显 Graphics 630 以及 CPU Intel Core(TM) i7-7700HQ各自的算力。
-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       使用自定义破解规则
  • ?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 位混合大小写 + 数字 + 特殊字符进行破解。

  • 利用收集的公开字典进行破解。

如图 8 所示,对 Hash 文件通过数字破解完成后,继续进行 1-8 位小写字母的破解。

在该图中会显示掩码值,破解进度,破解开始时间,破解预计耗费时间,以及破解显卡或者 CPU 的温度,一般设置到 90 摄氏度就自动终止,以免烧坏计算机。

pic_008.jpg

图 8:开始破解

查看破解结果

在执行破解成功后,Hashcat 会自动终止破解,并显示破解状态为 Cracked,Recovered 中也会显示是否破解成功。

如图 9 所示,经过 34 分钟的破解,成功将某一个加密文档破解。

pic_009.jpg

图 9:破解 Word 文件成功

还可以通过查看 hashcat.potfile 以及执行破解命令后加 “--show” 命令查看。

即:

Hashcat64-m 9700 hash -a 3 --increment --increment-min 1 --increment-max 8?l?l?l?l?l?l?l?l –show

如图 10、图 11 所示,该 Word 文件密码为 shirley。

pic_010.jpg

图 10:查看 potfile 查看破解结果

pic_011.png

图 11:执行命令查看破解结果


或许明日太阳西下倦鸟已归时