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

相关文章

使用Java解析JSON数据并提取特定字段的实现步骤(以提取mailNo为例)

《使用Java解析JSON数据并提取特定字段的实现步骤(以提取mailNo为例)》在现代软件开发中,处理JSON数据是一项非常常见的任务,无论是从API接口获取数据,还是将数据存储为JSON格式,解析... 目录1. 背景介绍1.1 jsON简介1.2 实际案例2. 准备工作2.1 环境搭建2.1.1 添加

如何使用celery进行异步处理和定时任务(django)

《如何使用celery进行异步处理和定时任务(django)》文章介绍了Celery的基本概念、安装方法、如何使用Celery进行异步任务处理以及如何设置定时任务,通过Celery,可以在Web应用中... 目录一、celery的作用二、安装celery三、使用celery 异步执行任务四、使用celery

使用Python绘制蛇年春节祝福艺术图

《使用Python绘制蛇年春节祝福艺术图》:本文主要介绍如何使用Python的Matplotlib库绘制一幅富有创意的“蛇年有福”艺术图,这幅图结合了数字,蛇形,花朵等装饰,需要的可以参考下... 目录1. 绘图的基本概念2. 准备工作3. 实现代码解析3.1 设置绘图画布3.2 绘制数字“2025”3.3

Jsoncpp的安装与使用方式

《Jsoncpp的安装与使用方式》JsonCpp是一个用于解析和生成JSON数据的C++库,它支持解析JSON文件或字符串到C++对象,以及将C++对象序列化回JSON格式,安装JsonCpp可以通过... 目录安装jsoncppJsoncpp的使用Value类构造函数检测保存的数据类型提取数据对json数

python使用watchdog实现文件资源监控

《python使用watchdog实现文件资源监控》watchdog支持跨平台文件资源监控,可以检测指定文件夹下文件及文件夹变动,下面我们来看看Python如何使用watchdog实现文件资源监控吧... python文件监控库watchdogs简介随着Python在各种应用领域中的广泛使用,其生态环境也

Python中构建终端应用界面利器Blessed模块的使用

《Python中构建终端应用界面利器Blessed模块的使用》Blessed库作为一个轻量级且功能强大的解决方案,开始在开发者中赢得口碑,今天,我们就一起来探索一下它是如何让终端UI开发变得轻松而高... 目录一、安装与配置:简单、快速、无障碍二、基本功能:从彩色文本到动态交互1. 显示基本内容2. 创建链

springboot整合 xxl-job及使用步骤

《springboot整合xxl-job及使用步骤》XXL-JOB是一个分布式任务调度平台,用于解决分布式系统中的任务调度和管理问题,文章详细介绍了XXL-JOB的架构,包括调度中心、执行器和Web... 目录一、xxl-job是什么二、使用步骤1. 下载并运行管理端代码2. 访问管理页面,确认是否启动成功

Java中的密码加密方式

《Java中的密码加密方式》文章介绍了Java中使用MD5算法对密码进行加密的方法,以及如何通过加盐和多重加密来提高密码的安全性,MD5是一种不可逆的哈希算法,适合用于存储密码,因为其输出的摘要长度固... 目录Java的密码加密方式密码加密一般的应用方式是总结Java的密码加密方式密码加密【这里采用的

使用Nginx来共享文件的详细教程

《使用Nginx来共享文件的详细教程》有时我们想共享电脑上的某些文件,一个比较方便的做法是,开一个HTTP服务,指向文件所在的目录,这次我们用nginx来实现这个需求,本文将通过代码示例一步步教你使用... 在本教程中,我们将向您展示如何使用开源 Web 服务器 Nginx 设置文件共享服务器步骤 0 —

Java中switch-case结构的使用方法举例详解

《Java中switch-case结构的使用方法举例详解》:本文主要介绍Java中switch-case结构使用的相关资料,switch-case结构是Java中处理多个分支条件的一种有效方式,它... 目录前言一、switch-case结构的基本语法二、使用示例三、注意事项四、总结前言对于Java初学者