当前位置: 首页 > article >正文

【学习记录】Office 和 WPS 文档密码破解实战

文章目录

    • 📌 引言
    • 📁 Office 与 WPS 支持的常见文件格式
      • Microsoft Office 格式
      • WPS Office 格式
    • 🛠 所需工具下载地址(Windows 官方编译版)
    • 🔐 破解流程详解
      • 步骤 1:提取文档的加密哈希值
      • 步骤 2:将正确的哈希值复制到 hash.txt 文件
      • 步骤 3:查找对应的 Hashcat 哈希模式 ID
      • 步骤 4:使用 Hashcat 破解哈希值
    • 📋 示例命令汇总
    • 💡 小结
    • ⚠️ 注意事项


📌 引言

在日常办公中,为了保护敏感信息,我们常常会对 Microsoft Office 或 WPS Office 的文档设置加密保护。然而,有时会因为时间久远或误操作而忘记密码,导致文档无法打开。

本文将详细介绍如何使用 John the Ripper 提取 Office 和 WPS 文档的加密哈希,并结合 Hashcat 实现高效密码找回。适用于以下文档格式:

  • ✅ Microsoft Office:.doc, .docx, .xls, .xlsx, .ppt, .pptx
  • ✅ WPS Office:.wps, .et, .dps

📌 注意:本教程仅限于找回你自己拥有或合法授权的加密文档密码,请勿用于非法用途。


📁 Office 与 WPS 支持的常见文件格式

Microsoft Office 格式

类型文件扩展名说明
Word 文档.doc, .docx文字处理文档
Excel 表格.xls, .xlsx电子表格文件
PowerPoint 演示文稿.ppt, .pptx幻灯片演示文件

WPS Office 格式

类型文件扩展名说明
WPS 文字.wps对应 Word 文档
WPS 表格.et对应 Excel 表格
WPS 演示.dps对应 PowerPoint 演示文稿

📌 WPS 自有格式(如 .wps/.et/.dps)也可直接用于提取哈希并进行破解,无需转换为 Office 格式。


🛠 所需工具下载地址(Windows 官方编译版)

工具名称功能下载地址
John the Ripper提取 Office/WPS 加密哈希https://www.openwall.com/john/g/john-1.9.0-jumbo-1-win64.zip
Hashcat高速 GPU 密码破解工具https://hashcat.net/files/hashcat-6.2.7.7z

🔐 破解流程详解

步骤 1:提取文档的加密哈希值

  1. 下载并解压 john-1.9.0-jumbo-1-win64.zip
  2. 进入 run 目录,找到 office2john.py 脚本
  3. 在 PowerShell 中运行以下命令提取哈希:
python office2john.py your_encrypted_file.docx

📌 示例(WPS 文档也适用):

python office2john.py report.wps

执行后你会看到类似如下输出:

在这里插入图片描述


步骤 2:将正确的哈希值复制到 hash.txt 文件

  1. 打开记事本或其他文本编辑器。
  2. 将步骤1中获取的完整哈希值粘贴进去。
  3. 保存文件为 hash.txt(建议保存在 Hashcat 同级目录下,便于调用)。

步骤 3:查找对应的 Hashcat 哈希模式 ID

访问 Hashcat 官方 Wiki - Example Hashes

搜索关键词 $office$ 或具体哈希前缀,例如:

  • Office <= 2003-m 9400
  • Office 2007-2010-m 9500
  • Office 2013+-m 9600
  • WPS 文档(兼容处理):可尝试使用上述 Office 模式

在这里插入图片描述


步骤 4:使用 Hashcat 破解哈希值

以 Office 2013 及以上文档为例,使用 -m 9600 模式进行掩码攻击:

hashcat -m 9600 -a 3 hash.txt ?a?a?a?a?a?a?a?a --increment --increment-min=4 --increment-max=8

📌 参数说明:

  • -m 9600:指定使用 Office 2013+ 加密算法;
  • -a 3:表示掩码攻击模式;
  • ?a:代表任意字符(小写字母、大写字母、数字、符号);
  • --increment:启用递增模式;
  • --increment-min=4--increment-max=8:设定密码长度范围。

📋 示例命令汇总

文档类型提取哈希命令Hashcat 模式 ID破解命令模板
Office 2003 及以下python office2john.py file.doc-m 9400hashcat -m 9400 -a 3 hash.txt ?d...
Office 2007-2010python office2john.py file.docx-m 9500hashcat -m 9500 -a 3 hash.txt ?d...
Office 2013+python office2john.py file.docx-m 9600hashcat -m 9600 -a 3 hash.txt ?d...
WPS 文档python office2john.py file.wps参考 Office 模式使用对应 -m 值进行破解

💡 小结

通过本文你可以掌握以下技能:

  • 如何使用 office2john.py 提取 Office 和 WPS 文档的加密哈希;
  • 如何在 Hashcat 官方 Wiki 查找正确的 -m 模式 ID;
  • 如何编写 Hashcat 命令进行密码破解;
  • WPS 文档(如 .wps/.et/.dps)可以直接用于哈希提取与破解,无需转格式。

📌 关键点在于:准确识别文档版本并匹配对应的 Hashcat 模式 ID。


⚠️ 注意事项

  • 合法性提醒:请确保你有权破解目标文档,未经授权破解他人文件属违法行为。
  • 性能优化:推荐使用支持 CUDA 或 OpenCL 的 GPU 来加速破解过程。
  • 密码复杂度影响:密码越复杂(含大小写、特殊字符、长度长),破解时间越久。
  • 字典攻击更高效:如果能获得部分信息(如生日、姓名),建议结合字典进行攻击。

📌 如果你对密码破解技术感兴趣,或者正在学习渗透测试相关知识,这篇文章可以帮助你了解 Office 和 WPS 文档密码的提取与破解方法。

💬 欢迎留言交流你在项目中使用这些技术的经验,或者你遇到的相关问题,我们一起探讨安全技术的发展与实践!

相关文章:

【学习记录】Office 和 WPS 文档密码破解实战

文章目录 &#x1f4cc; 引言&#x1f4c1; Office 与 WPS 支持的常见文件格式Microsoft Office 格式WPS Office 格式 &#x1f6e0; 所需工具下载地址&#xff08;Windows 官方编译版&#xff09;&#x1f510; 破解流程详解步骤 1&#xff1a;提取文档的加密哈希值步骤 2&…...

AGV|无人叉车工业语音播报器|预警提示器LBE-LEX系列性能与接线说明

LBE-LEX系列AGV|无人叉车工业语音播报器|预警提示器&#xff0c;涵盖LBE-LEI-M-00、LBE-LESM-00、LBE-LES-M-01、LBE-LEC-M-00、LBE-KEI-M-00、LBE-KES-M-00、LBE-KES-M-01、LBE-KEC-M-00等型号&#xff0c;适用于各种需要语音提示的场景&#xff0c;主要有AGV、AMR机器人、无人…...

【电路笔记】-变压器电压调节

变压器电压调节 文章目录 变压器电压调节1、概述2、变压器电压调节3、变压器电压调节示例14、变压器电压调节示例25、变压器电压调节示例36、总结变压器电压调节是变压器输出端电压因连接负载电流的变化而从其空载值向上或向下变化的比率或百分比值。 1、概述 电压调节是衡量变…...

多层PCB技术解析:从材料选型到制造工艺的深度实践

在电子设备集成度与信号传输要求不断提升的背景下&#xff0c;多层PCB凭借分层布局优势&#xff0c;成为高速通信、汽车电子、工业控制等领域的核心载体。其通过导电层、绝缘层的交替堆叠&#xff0c;实现复杂电路的立体化设计&#xff0c;显著提升空间利用率与信号完整性。 一…...

(33)课54:3 张表的 join-on 连接举例,多表查询总结。数据库编程补述及游标综合例题。静态 sqL与动态sqL(可带参数)

&#xff08;112&#xff09;3 张表的 join-on 连接举例 &#xff1a; &#xff08;113&#xff09; 多表查询总结 &#xff1a; &#xff08;114&#xff09;数据库编程补述 &#xff1a; 综合例题 &#xff1a; 以上没有动手练习&#xff0c;不知道这样的语法是否…...

Vue3 hooks

export default function(){ let name; function getName(){ return name; } return {name,getName} } use it ----------------------------------------------- import useName from hooks/useName const {name,getName} useName(); 这段代码展示了一个自定义 Vue3钩…...

centos挂载目录满但实际未满引发系统宕机

测试服务器应用系统突然挂了&#xff0c;经过排查发现是因为磁盘“满了”导致的&#xff0c;使用df -h查看磁盘使用情况/home目录使用率已经到了100%,但使用du -sh /home查看发现实际磁盘使用还不到1G&#xff0c;推测有进程正在写入或占用已删除的大文件&#xff08;Linux 系统…...

KKCMS部署

目录 账号 网站目录 快看CMS使用手册 http://10.141.19.241/kkcms/install/ 常规思路&#xff1a;页面点点观察url变化&#xff0c;参数 常规思路&#xff1a;点一个功能模块抓包看什么东西&#xff0c;正确是什么样&#xff0c;错误的是什么样&#xff0c;构造参数。 账号…...

NamedParameterJdbcTemplate 使用方法及介绍

NamedParameterJdbcTemplate是 Spring 框架中用于数据库操作的核心类之一&#xff0c;它拓展了JdbcTemplate&#xff0c;通过封装实现命名参数特性&#xff0c;相比传统占位符?&#xff0c;命名参数可读性和维护性更强&#xff0c;能有效避免参数顺序混淆问题。 一、核心支持…...

【web笔记】JavaScript实现有动画效果的进度条

文章目录 1 实现效果2 实现代码 1 实现效果 2 实现代码 <!DOCTYPE html> <html lang"en"> <head><meta charset"utf-8"><style>#progress {width: 300px;height: 20px;border-radius: 0; /* 移除圆角 */-webkit-appearance…...

安装最新elasticsearch-8.18.2

1.环境我的环境是linux麒麟服务器 (安装 es 7.8以上 java环境必须11以上,可以单独配置es的java目录) 2.下载 官网的地址:下载 Elastic 产品 | Elastic Download Elasticsearch | Elastic Elasticsearch 入门 | Elasticsearch 中文文档 文档 3.我下载的是8.18的 Elasti…...

大数据学习(129)-Hive数据分析

&#x1f34b;&#x1f34b;大数据学习&#x1f34b;&#x1f34b; &#x1f525;系列专栏&#xff1a; &#x1f451;哲学语录: 用力所能及&#xff0c;改变世界。 &#x1f496;如果觉得博主的文章还不错的话&#xff0c;请点赞&#x1f44d;收藏⭐️留言&#x1f4dd;支持一…...

React 进阶特性

1. ref ref 是 React 提供的一种机制,用于访问和操作 DOM 元素或 React 组件的实例。它可以用于获取某个 DOM 元素的引用,从而执行一些需要直接操作 DOM 的任务,例如手动设置焦点、选择文本或触发动画。 1.1. 使用 ref 的步骤 1. 创建一个 ref:使用 React.createRef 或 …...

Polarctf2025夏季赛 web java ez_check

第一次自己做出一个java&#xff0c;值得小小的记录&#xff0c;polar的java真得非常友好 反编译jar包&#xff0c;一眼就看到有个/deserialize 路由&#xff0c;接受base64的序列化数据&#xff0c;base64解码后 经过一次kmp检查&#xff0c;再由SafeObjectInputStream来反序列…...

vue3+el-table 利用插槽自定义数据样式

<el-table-column label"匹配度" prop"baseMatchingLevel"><template #default"scope"><div :style"{ color: scope.row.baseMatchingLevel > 0.8 ? #00B578 : #FA5151 }">{{ scope.row.baseMatchingLevel }}&l…...

跑通 TrackNet-Badminton-Tracking-tensorflow2 项目全记录

&#x1f4dd; 跑通 TrackNet-Badminton-Tracking-tensorflow2 项目全记录 git clone https://github.com/Chang-Chia-Chi/TrackNet-Badminton-Tracking-tensorflow2.git TrackNet-Badminton-Tracking-tensorflow2 conda create --prefix /cloud/TrackNet-Badminton-Tracking-…...

从零开始打造 OpenSTLinux 6.6 Yocto 系统(基于STM32CubeMX)(八)

uboot启动异常及解决 网络问题及解决 打开STM32CubeMX选中ETH1 - A7NS&#xff08;Linux&#xff09;Mode&#xff1a;RGMII&#xff08;Reduced GMII&#xff09;勾选ETH 125MHz Clock Input修改GPIO引脚如图所示 Net: No ethernet found.生成代码后&#xff0c;修改u-boot下…...

CodeBuddy一腾讯内部已有超过 85% 的程序员正在使用de编程工具

大家好&#xff0c;我是程序员500佰&#xff0c;目前正在前往独立开发路线&#xff0c;我会在这里分享关于编程技术、独立开发、技术资讯以及编程感悟等内容。 如果本文能给你提供启发和帮助&#xff0c;还请留下你的一健三连&#xff0c;给我一些鼓励&#xff0c;谢谢。 本文直…...

PHP 表单 - 验证邮件和URL

PHP 表单 - 验证邮件和URL 引言 在Web开发中&#xff0c;表单是用户与网站交互的重要途径。一个功能完善的表单不仅可以收集用户数据&#xff0c;还能提高用户体验。在表单设计中&#xff0c;验证邮件地址和URL是常见的需求。本文将详细介绍如何在PHP中实现邮件和URL的验证&a…...

leetcode238-除自身以外数组的乘积

leetcode 238 思路 可以在不使用除法的情况下&#xff0c;利用前缀积和后缀积来实现解答 前缀积&#xff1a;对每个位置&#xff0c;计算当前数字左侧的所有数字的乘积后缀积&#xff1a;对每个位置&#xff0c;计算当前数字右侧的所有数字的乘积 结合这两种思想&#xff0…...

论文阅读笔记——Large Language Models Are Zero-Shot Fuzzers

TitanFuzz 论文 深度学习库&#xff08;TensorFlow 和 Pytorch&#xff09;中的 bug 对下游任务系统是重要的&#xff0c;保障安全性和有效性。在深度学习&#xff08;DL&#xff09;库的模糊测试领域&#xff0c;直接生成满足输入语言(例如 Python )语法/语义和张量计算的DL A…...

matlab模糊控制实现路径规划

路径规划是机器人和自动驾驶系统中的重要问题之一&#xff0c;它涉及确定如何在给定环境中找到最优路径以达到特定目标。模糊控制是一种有效的控制方法&#xff0c;可以应用于路径规划问题。 路径规划算法的目标是在避免障碍物的情况下&#xff0c;找到机器人或车辆从起点到终…...

浅谈未来汽车电子电气架构发展趋势中的通信部分

目录 一、引入 1.1市场占比演化 1.2未来发展趋势 二、纯电动汽车与传统汽车的区别 2.1 纯电车和燃油车的架构&#xff08;干货&#xff09; 2.2 新能源汽车的分类 ⚡ 1. 纯电动汽车&#xff08;BEV&#xff09; &#x1f50b; 2. 插电式混合动力&#xff08;PHEV&#…...

基于 Transformer robert的情感分类任务实践总结之二——R-Drop

基于 Transformer robert的情感分类任务实践总结之一 核心改进点 1. R-Drop正则化 原理&#xff1a;通过在同一个输入上两次前向传播&#xff08;利用Dropout的随机性&#xff09;&#xff0c;强制模型对相同输入生成相似的输出分布&#xff0c;避免过拟合。实现&#xff1a…...

个人电脑部署本地大模型+UI

在这个AI飞速进步的时代&#xff0c;越来越多的大模型出现在市面上 本地大模型也越来越火爆&#xff01; 它完全免费&#xff0c;随时可以访问&#xff0c;数据仅存在本地&#xff0c;还可以自己微调&#xff0c;训练&#xff01; 今天我来教大家&#xff0c;如何在一台普通…...

Three.js + Vue3 加载GLB模型项目代码详解

本说明结合 src/App.vue 代码,详细解释如何在 Vue3 项目中用 three.js 加载并显示 glb 模型。 1. 依赖与插件导入 import {onMounted, onUnmounted } from vue import * as THREE from three import Stats from stats.js import {OrbitControls } from three/examples/jsm/co…...

MongoDB $type 操作符详解

MongoDB $type 操作符详解 引言 MongoDB 是一款流行的开源文档型数据库,它提供了丰富的查询操作符来满足不同的数据查询需求。在 MongoDB 中,$type 操作符是一个非常有用的查询操作符,它允许用户根据文档中字段的类型来查询文档。本文将详细介绍 MongoDB 的 $type 操作符,…...

Vue3项目实现WPS文件预览和内容回填功能

技术方案背景&#xff1a;根据项目需要&#xff0c;要实现在线查看、在线编辑文档&#xff0c;并且进行内容的快速回填&#xff0c;根据这一项目背景&#xff0c;最终采用WPS的API来实现&#xff0c;接下来我们一起来实现项目功能。 1.首先需要先准备好测试使用的文档&#xf…...

PySide6 GUI 学习笔记——常用类及控件使用方法(多行文本控件QTextEdit)

文章目录 PySide6.QtWidgets.QTextEdit 应用举例概述核心特性常用方法文本内容操作光标和选择操作格式和样式查找功能视图控制状态设置常用信号 代码示例示例说明1. 基本设置2. 文本格式化功能3. 功能按钮4. 信号处理 PySide6.QtWidgets.QTextEdit 应用举例 概述 QTextEdit 是…...

【版本控制】Git 和 GitHub 入门教程

目录 0 引言1 Git与GitHub的诞生1.1 Git&#xff1a;Linus的“两周奇迹”&#xff0c;拯救Linux内核1.2 GitHub&#xff1a;为Git插上协作的翅膀1.3 协同进化&#xff1a;从工具到生态的质变1.4 关键历程时间轴&#xff08;2005–2008&#xff09; 2 Git与GitHub入门指南2.1 Gi…...