前段时间编辑了几份word文档,当时不知咋抽抽了,给文档设置了加密保护,导致文档打开需要密码。现如今,忘记了打开密码(害)……某次冲浪看到hashcat对于方面有一定的帮助,故想通过此来找回密码。
因为之前设置密码通常有一定的规律,于是打算用关键词进行排列组合进行尝试。
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}")
这里提供两个方式,分别是在线获取和离线本地获取。
这个比较简单,适合懒人吧~
1.打开<u>转换网址</u>(https://hashes.com/en/johntheripper/office2john)
2.上传加密的文档(单个文档文件)
3.点击提交(submit)
4.在Result栏目会生成对应的值,复制生成的结果($开头的全部内容)
5.本地新建一个.txt文本文件,粘贴上述内容,保存。
6.重命名文件名为hashhc.txt
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(注意此处重命名了)
现在我们拥有了两份文件:①自定义的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路径 - 正确密码的输出路径
祝君幸运常伴~
参考阅读