您当前的位置:首页 > 计算机 > 精彩资源

【小白复盘】使用hashcat找回office文档密码

时间:10-30来源:作者:点击数:
CDSY,CDSY.XYZ
准备工具
  • python(主要会使用到的两个库:pandas、openpyxl、itertools(这个应该是内置的,无需另外安装))
  • office2john(office2john.py
  • hashcat(hashcat

00-背景

前段时间编辑了几份word文档,当时不知咋抽抽了,给文档设置了加密保护,导致文档打开需要密码。现如今,忘记了打开密码(害)……某次冲浪看到hashcat对于方面有一定的帮助,故想通过此来找回密码。

01-生成自定义wordlist.txt

因为之前设置密码通常有一定的规律,于是打算用关键词进行排列组合进行尝试。

1.打开excel,在第一行的每个单元格内,逐列放一个关键词;

2.通过python读取excel的第一行的内容,选取其中3-5个关键词进行排列组合(C(n,3)xP(3,3)+C(n,4)xP(4,4)C(n,5)xP(5,5)),输出结果得到wordlist.txt

import pandas as pd
from itertools import combinations, permutations

# 定义文件路径
excel_path = 'C:\\the\\ExcelFile\\Path\\keyword.xlsx'
output_path = 'C:\\the\\Output\\Path\\wordlist.txt'

# 尝试读取Excel文件
try:
    df = pd.read_excel(excel_path, engine='openpyxl', header=None)  # 假设第一行不是标题行

    # 检查DataFrame是否为空
    if df.empty:
        print("Excel文件是空的,请检查文件内容。")
    else:
        # 将第一行的数据转换为字符串列表,确保所有元素都是字符串类型
        keywords = df.iloc[0].dropna().astype(str).tolist()
        # 接下来是生成wordlist的代码...
        with open(output_path, 'w') as file:
            for r in range(3, 6):  # 选择3到5个关键词
                comb = combinations(keywords, r)
                perm = permutations(keywords, r)
                for item in comb:
                    comb_str = ''.join(item)
                    file.write(comb_str + '\n')
                for item in perm:
                    perm_str = ''.join(item)
                    file.write(perm_str + '\n')

except pd.errors.EmptyDataError:
    print("Excel文件是空的,请检查文件内容。")
except FileNotFoundError:
    print(f"文件未找到,请检查路径:{excel_path}")
except Exception as e:
    print(f"读取Excel文件时发生错误:{e}")

02-获取加密文档的hashhc.txt

这里提供两个方式,分别是在线获取离线本地获取

A.在线转换获取

这个比较简单,适合懒人吧~

1.打开<u>转换网址</u>(https://hashes.com/en/johntheripper/office2john

2.上传加密的文档(单个文档文件)

3.点击提交(submit)

4.在Result栏目会生成对应的值,复制生成的结果($开头的全部内容)

5.本地新建一个.txt文本文件,粘贴上述内容,保存。

6.重命名文件名为hashhc.txt

B.离线本地获取

1.下载office2john.py脚本文件(https://github.com/openwall/john/blob/bleeding-jumbo/run/office2john.py

2.通过脚本命令

python office2john.py C:\the\ExcelFile\Path\your_document.docx > C:\the\Output\Path\hash.txt

3.打开hash.txt文件,删除开头部分至第一个“:”,使得内容文本以“$”开头

4.另存为,hashhc.txt(注意此处重命名了)

03-使用hashcat尝试找回密码

现在我们拥有了两份文件:①自定义的wordlist.txt,②加密文档的hashch.txt

接下来要做的,其实就是通过命令行,让hashcat帮助我们逐个尝试,在wordlist.txt中哪个是正确的打开密码

hashcat.exe -m 9600 C:\the\HashhcTxtFile\Path\hashhc.txt C:\the\WordListFile\Path\wordlist.txt -o C:\the\Output\Path\found_passwords.txt

此段代码解释:

hashcat.exe |   应用程序名称

-m 9600 |   模式选择,9600对应的是office2016。(Office2010 对应 9500;Office2007 对应 9400)

几个路径的顺序 |   hashch.txt路径 - wordlist.txt路径 - 正确密码的输出路径


最后

祝君幸运常伴~

参考阅读

官方Wiki-hashcat

CDSY,CDSY.XYZ
方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门
本栏推荐