使用hashcat找回office文档密码

2023-10-08 17:30

本文主要是介绍使用hashcat找回office文档密码,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

原文已经发技术栈

Word软件是目前世界上使用最为广泛的办公文字处理软件之一,在国内应该有超过90%的用户在使用它。政府、企业公司以及个人都喜欢用Word文件来处理工作和个人事务,而在使用Word文件来保存文件的内容时,根据不同的安全需要,需要对文件内容进行保护时就需要进行加密,而需要阅读文件内容时就需要解密。很多个人都有记日记的习惯,可时间久了,往往会忘记自己的密码, 如果不能找回密码,则无法查看文档内容。

目前网上有很多关于Word密码破解的软件,例如Word Password Recvery Master无限制版、Advanced Office Password Recovery。其主要破解方式是采用暴力破解,破解成功后会显示原来的加密密码。如果密码设置的相对复杂,其破解时间特别长。“Office Password Remover” 是国外一家单独做密码恢复的软件的公司开发的,该公司还有许多其它密码恢复的软件,原版“Office Password Remover”软件下载地址http://www.rixler.com/download.htm。rixler破解“Office97/2000兼容”加密类型的word加密文件,其速度非常快,最慢不超过一分钟。其缺点是在破解时需要访问网络http://www.rixler.com/,而且破解后不显示原来密码(联网破解需要付费购买其软件)。通过笔者研究,发现hashcat新版本增加了很多新功能,hashcat采用暴力破解和哈希值碰撞方式进行暴力破解,按照其官方的说法,一个word加密文件有可能有多个密码可以用来打开该文件。

1.1.1word文件加密

1.加密Word文件

一般情况下说的对Word文件加密是指采用Word字处理软件所自带的加密功能,要使用该功能,可在word文件编辑状态下,选择“工具”-“选项”-“安全性”,就会出现如图1所示的界面。

1-打开word文件.JPG

1 打开加密Word文件选项

2.设置加密密码

Word文家加密常用的选项主要有二种,一种是打开权限,另外一种是拥有修改权限可以对文件进行修改。在对Word文件进行加密时可以根据需要,设置打开权限密码和修改权限密码,设置完毕后单击“确定”保存设置时,往往需要再次确认密码,如图2所示,确认完毕后,关闭Word文件后,再次打开时就需要输入密码。如果设置的是修改权限密码,这在打开时会提示分别输入打开权限密码和修改权限密码。

2-计算word哈希值.jpg

2 设置加密密码

目前也有单独针对Word文件开发的加解密软件,要解密这种Word文件非常困难。在Word字处理软件中提供了多种加密算法类型,在图3中单击“高级”可以查看和选择不同的加密类型。Word默认的加密类型是是Office97/2000兼容,该加密类型非常容易被破解,而如果要对Word文件进行较高等级的安全保护,建议采用其它加密类型,除了“Office97/2000兼容”加密类型外,其它加密类型均较难破解,对这些加密类型采取破解时多用暴力破解,其破解主要跟字典有关。

3-带摘要的哈希值.JPG

图3 选择Word加密类型

1.1.2找回office文档密码方法

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

1.暴力破解。这是最常用的,通过编程将字典中的值依次输入进行确认尝试,一旦尝试成功,则说明该值为破解值,其破解成功往往取决于字典的完善程度。字典在网络安全中扮演中非常重要的角色,不断的完善和更新字典是一个好习惯,一个高手往往有好多个字典,字典可以是以.dic.txt结尾的文件,文件中每一个字符串为一行。

2.针对算法的破解。 针对算法的破解,要求对加密算法非常熟悉,通过加密算法中的缺陷或者就是针对加密算法的破解算法进行编程,然后进行自动破解,这种方法往往破解速度快,但是使用破解软件的技术难度大,这类软件往往是国外的网络安全大牛们写的,国内也有很多大牛,不过他们不怎么写,看学论坛中有很多高手,大家可以去看看!

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

1.1.3使用hashcat软件进行密码找回

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

1.打开文件需要输入密码

   使用office软件打开某个被加密动word文件,需要输入密码,如图4所示,只有输入正确密码才能正常访问。

4-破解的哈希值.JPG

图4打开加密word文件

2.计算加密word文件的hash值

下载http://www.openwall.com/john/j/john-1.8.0-jumbo-1.tar.gz,从其压缩包中获取office2john.py文件,然后执行:

office2john.py 6.doc

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

office2john.py 6.doc >hash

5-执行破解.jpg

图5计算word文件hash值

3.整理hash文件

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

6-破解结束.JPG

图6hash文件内容

   对hash文件进行整理,去掉“6.doc:”和“:::第6章 ***检测神话 渔樵 Normal 邓琦皓 2 Microsoft Word 9.0 YuQiao Studio::6.doc”,如图7所示,获取正确的哈希值:

$oldoffice$1*ae8adb6a8b3aeb7c1bd3bb6bf6514ef4*5e4ffbe5034d9fa2bf05dce0a9d34bb7*db9ca3e3291f536620ad7c987ac6e514

7-hashcat破解结果文件.JPG

图7整理好的哈希值

4.破解Office加密Offcie版本对应哈希类型

Office 97-03(MD5+RC4,oldoffice$0,oldoffice$1):   -m 9700  

Office 97-03($0/$1, MD5 + RC4, collider #1):   -m 9710 

Office 97-03($0/$1, MD5 + RC4, collider #2):   -m 9720 

Office 97-03($3/$4, SHA1 + RC4):   -m 9800 

Office 97-03($3, SHA1 + RC4, collider #1):   -m 9810 

Office 97-03($3, SHA1 + RC4, collider #2):   -m 9820 

Office 2007:   -m 9400  

Office 2010:  -m 9500 

Office 2013:   -m 9600

5.使用hashcat进行破解

(1)Hashcat中自定义破解含义值

   ?l = abcdefghijklmnopqrstuvwxyz 代表小写字母

   ?u = ABCDEFGHIJKLMNOPQRSTUVWXYZ 代表大写字母

   ?d = 0123456789 代表数字

   ?s =  !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~  代表特殊字符

   ?a = ?l?u?d?s 大小写数字及特殊字符的组合

   ?b = 0x00 - 0xff

6.破解示例

(1)8位数字破解

Hashcat64 -m 9700 hash -a 3 ?d?d?d?d?d?d?d?d -w 3 –O

(2)1-8位数字破解

Hashcat -m 9700 hash -a 3 --increment --increment-min 1 --increment-max 8 ?d?d?d?d?d?d?d?d

(3)18位小写字母破解

Hashcat -m 9700 hash -a 3 --increment --increment-min 1 --increment-max 8 ?l?l?l?l?l?l?l?l

(4)8小写字母破解

Hashcat -m 9700 hash -a 3 ?l?l?l?l?l?l?l?l -w 3 –O

51-8位大写字母破解

Hashcat -m 9700 hash -a 3 --increment --increment-min 1 --increment-max 8 ?u?u?u?u?u?u?u?u

68大写字母破解

Hashcat -m 9700 hash -a 3 ?u?u?u?u?u?u?u?u -w 3 –O

75位小写+大写+数字+特殊字符破解

Hashcat -m 9700 hash -a 3 ?b?b?b?b?b -w 3

(8)使用字典进行破解

使用password.lst字典进行暴力破解,-w 3参数是指定电力消耗

Hashcat  -m 9700 -a 0  -w 3 hash  password.lst

   破解时采取先易后难的原则,建议如下:

1)使用1-8位数字进行破解。

(2)使用1-8位小写字母进行破解

3)使用1-8位大写字母进行破解

4)使用1-8位混合大小写+数字+特殊字符进行破解

5)利用收集的公开字典进行破解

   如图8所示,对hash文件通过数字破解完成后,继续进行1-8位小写字母的破解,在该图中会显示掩码值,破解进度,破解开始时间,破解预计耗费时间,以及破解显卡或者CPU的温度,一般设置到90摄氏度就自动终止,以免烧坏计算机。

8-查看破解结果.jpg

图8开始破解

7.查看破解结果

   在执行破解成功后,hashcat会自动终止破解,并显示破解状态为Cracked,Recvoered中也会显示是否破解成功,如图9所示,经过34分钟的破解,成功将某一个加密文档破解。

图9破解word文件成功.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。

10.jpg

图10查看potfile查看破解结果


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

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


这篇关于使用hashcat找回office文档密码的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/166883

相关文章

解决Maven项目idea找不到本地仓库jar包问题以及使用mvn install:install-file

《解决Maven项目idea找不到本地仓库jar包问题以及使用mvninstall:install-file》:本文主要介绍解决Maven项目idea找不到本地仓库jar包问题以及使用mvnin... 目录Maven项目idea找不到本地仓库jar包以及使用mvn install:install-file基

Windows 上如果忘记了 MySQL 密码 重置密码的两种方法

《Windows上如果忘记了MySQL密码重置密码的两种方法》:本文主要介绍Windows上如果忘记了MySQL密码重置密码的两种方法,本文通过两种方法结合实例代码给大家介绍的非常详细,感... 目录方法 1:以跳过权限验证模式启动 mysql 并重置密码方法 2:使用 my.ini 文件的临时配置在 Wi

Python使用getopt处理命令行参数示例解析(最佳实践)

《Python使用getopt处理命令行参数示例解析(最佳实践)》getopt模块是Python标准库中一个简单但强大的命令行参数处理工具,它特别适合那些需要快速实现基本命令行参数解析的场景,或者需要... 目录为什么需要处理命令行参数?getopt模块基础实际应用示例与其他参数处理方式的比较常见问http

C 语言中enum枚举的定义和使用小结

《C语言中enum枚举的定义和使用小结》在C语言里,enum(枚举)是一种用户自定义的数据类型,它能够让你创建一组具名的整数常量,下面我会从定义、使用、特性等方面详细介绍enum,感兴趣的朋友一起看... 目录1、引言2、基本定义3、定义枚举变量4、自定义枚举常量的值5、枚举与switch语句结合使用6、枚

使用Python从PPT文档中提取图片和图片信息(如坐标、宽度和高度等)

《使用Python从PPT文档中提取图片和图片信息(如坐标、宽度和高度等)》PPT是一种高效的信息展示工具,广泛应用于教育、商务和设计等多个领域,PPT文档中常常包含丰富的图片内容,这些图片不仅提升了... 目录一、引言二、环境与工具三、python 提取PPT背景图片3.1 提取幻灯片背景图片3.2 提取

Android实现在线预览office文档的示例详解

《Android实现在线预览office文档的示例详解》在移动端展示在线Office文档(如Word、Excel、PPT)是一项常见需求,这篇文章为大家重点介绍了两种方案的实现方法,希望对大家有一定的... 目录一、项目概述二、相关技术知识三、实现思路3.1 方案一:WebView + Office Onl

使用Python实现图像LBP特征提取的操作方法

《使用Python实现图像LBP特征提取的操作方法》LBP特征叫做局部二值模式,常用于纹理特征提取,并在纹理分类中具有较强的区分能力,本文给大家介绍了如何使用Python实现图像LBP特征提取的操作方... 目录一、LBP特征介绍二、LBP特征描述三、一些改进版本的LBP1.圆形LBP算子2.旋转不变的LB

Maven的使用和配置国内源的保姆级教程

《Maven的使用和配置国内源的保姆级教程》Maven是⼀个项目管理工具,基于POM(ProjectObjectModel,项目对象模型)的概念,Maven可以通过一小段描述信息来管理项目的构建,报告... 目录1. 什么是Maven?2.创建⼀个Maven项目3.Maven 核心功能4.使用Maven H

Python中__init__方法使用的深度解析

《Python中__init__方法使用的深度解析》在Python的面向对象编程(OOP)体系中,__init__方法如同建造房屋时的奠基仪式——它定义了对象诞生时的初始状态,下面我们就来深入了解下_... 目录一、__init__的基因图谱二、初始化过程的魔法时刻继承链中的初始化顺序self参数的奥秘默认

SpringBoot使用GZIP压缩反回数据问题

《SpringBoot使用GZIP压缩反回数据问题》:本文主要介绍SpringBoot使用GZIP压缩反回数据问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录SpringBoot使用GZIP压缩反回数据1、初识gzip2、gzip是什么,可以干什么?3、Spr