使用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

相关文章

使用Python构建智能BAT文件生成器的完美解决方案

《使用Python构建智能BAT文件生成器的完美解决方案》这篇文章主要为大家详细介绍了如何使用wxPython构建一个智能的BAT文件生成器,它不仅能够为Python脚本生成启动脚本,还提供了完整的文... 目录引言运行效果图项目背景与需求分析核心需求技术选型核心功能实现1. 数据库设计2. 界面布局设计3

使用IDEA部署Docker应用指南分享

《使用IDEA部署Docker应用指南分享》本文介绍了使用IDEA部署Docker应用的四步流程:创建Dockerfile、配置IDEADocker连接、设置运行调试环境、构建运行镜像,并强调需准备本... 目录一、创建 dockerfile 配置文件二、配置 IDEA 的 Docker 连接三、配置 Do

Android Paging 分页加载库使用实践

《AndroidPaging分页加载库使用实践》AndroidPaging库是Jetpack组件的一部分,它提供了一套完整的解决方案来处理大型数据集的分页加载,本文将深入探讨Paging库... 目录前言一、Paging 库概述二、Paging 3 核心组件1. PagingSource2. Pager3.

Python操作PDF文档的主流库使用指南

《Python操作PDF文档的主流库使用指南》PDF因其跨平台、格式固定的特性成为文档交换的标准,然而,由于其复杂的内部结构,程序化操作PDF一直是个挑战,本文主要为大家整理了Python操作PD... 目录一、 基础操作1.PyPDF2 (及其继任者 pypdf)2.PyMuPDF / fitz3.Fre

python使用try函数详解

《python使用try函数详解》Pythontry语句用于异常处理,支持捕获特定/多种异常、else/final子句确保资源释放,结合with语句自动清理,可自定义异常及嵌套结构,灵活应对错误场景... 目录try 函数的基本语法捕获特定异常捕获多个异常使用 else 子句使用 finally 子句捕获所

kkFileView在线预览office的常见问题以及解决方案

《kkFileView在线预览office的常见问题以及解决方案》kkFileView在线预览Office常见问题包括base64编码配置、Office组件安装、乱码处理及水印添加,解决方案涉及版本适... 目录kkFileView在线预览office的常见问题1.base642.提示找不到OFFICE组件

C++11右值引用与Lambda表达式的使用

《C++11右值引用与Lambda表达式的使用》C++11引入右值引用,实现移动语义提升性能,支持资源转移与完美转发;同时引入Lambda表达式,简化匿名函数定义,通过捕获列表和参数列表灵活处理变量... 目录C++11新特性右值引用和移动语义左值 / 右值常见的左值和右值移动语义移动构造函数移动复制运算符

Python对接支付宝支付之使用AliPay实现的详细操作指南

《Python对接支付宝支付之使用AliPay实现的详细操作指南》支付宝没有提供PythonSDK,但是强大的github就有提供python-alipay-sdk,封装里很多复杂操作,使用这个我们就... 目录一、引言二、准备工作2.1 支付宝开放平台入驻与应用创建2.2 密钥生成与配置2.3 安装ali

C#中lock关键字的使用小结

《C#中lock关键字的使用小结》在C#中,lock关键字用于确保当一个线程位于给定实例的代码块中时,其他线程无法访问同一实例的该代码块,下面就来介绍一下lock关键字的使用... 目录使用方式工作原理注意事项示例代码为什么不能lock值类型在C#中,lock关键字用于确保当一个线程位于给定实例的代码块中时

MySQL 强制使用特定索引的操作

《MySQL强制使用特定索引的操作》MySQL可通过FORCEINDEX、USEINDEX等语法强制查询使用特定索引,但优化器可能不采纳,需结合EXPLAIN分析执行计划,避免性能下降,注意版本差异... 目录1. 使用FORCE INDEX语法2. 使用USE INDEX语法3. 使用IGNORE IND