Kali Linux下使用John the Ripper破解Office与压缩文件密码实战
1. 项目概述为什么我们需要了解密码恢复技术在信息安全领域密码恢复Password Recovery或密码破解Password Cracking是一个既敏感又极具实用价值的话题。我从事网络安全工作多年经常遇到同事或客户因为忘记重要文档密码而束手无策的情况。一份关键的财务报告、一个包含历史数据的压缩包或者一份加密的项目计划书一旦密码丢失就可能意味着重要信息的永久封锁或巨大的时间成本。因此掌握一套合法、合规且高效的密码恢复方法对于IT从业者、安全研究人员乃至普通用户处理自己的数据都是一项宝贵的技能。Kali Linux作为业界领先的渗透测试和安全审计发行版内置了John the Ripper简称John这款久负盛名的密码安全审计工具。它并非为非法入侵而生其设计初衷是帮助系统管理员检测弱密码评估系统口令的安全性。今天我们就聚焦于一个非常具体的场景利用Kali Linux中的John工具集来尝试恢复或“破解”那些常见的、由我们自己创建但不幸遗忘密码的办公文档如Microsoft Office的.docx、.xlsx、.pptx和压缩文档如ZIP、RAR、7z的密码。请注意本文所有操作均假设你拥有对目标文件的合法操作权限例如处理自己遗忘密码的文件或在获得明确授权的安全评估范围内进行。任何未经授权的密码破解行为都是非法且不道德的。2. 核心工具与环境准备2.1 Kali Linux与John the Ripper简介Kali Linux是一个基于Debian的Linux发行版专为数字取证和渗透测试设计。它预装了数百种安全工具开箱即用省去了我们逐个安装配置的麻烦。对于密码破解任务它提供了近乎完美的环境。John the Ripper则是一款开源的密码破解软件支持多种加密算法和哈希类型。它的强大之处在于其模块化设计和高度的可定制性。John不仅支持传统的字典攻击和暴力破解还支持基于规则的智能攻击可以极大地提高破解效率。在Kali中John通常以john命令的形式存在并且其功能通过不同的“格式”format来支持各种文件类型。对于办公文档和压缩包我们需要使用特定的格式标识符来告诉John如何处理这些文件。2.2 环境准备与必要工具安装虽然Kali Linux预装了John但为了处理办公文档和压缩包我们通常需要一些额外的工具来先将这些文件转换为John能够理解的哈希格式。这个过程称为“提取哈希值”。首先确保你的Kali系统是最新的sudo apt update sudo apt upgrade -y接下来安装几个关键的工具zip2john/rar2john/office2john.py这些是John工具集的一部分用于从ZIP、RAR和Office文档中提取密码哈希。在较新的Kali中它们可能已经随john包安装。如果没有可以通过安装john的完整版本来获取sudo apt install john -y安装后你可以在/usr/share/john/目录下找到office2john.py等脚本。为了方便我们可以将其链接到系统路径或直接使用绝对路径调用。7z2john.pl用于提取7-Zip文件的哈希。它可能不默认包含在john包中。我们可以从John的GitHub仓库获取或者使用其他方法如hashcat的7z2hashcat。一个简单的方法是安装hashcat-utils它也包含许多有用的转换工具sudo apt install hashcat-utils -y安装后7z2john.pl通常位于/usr/share/hashcat-utils/目录下。它是一个Perl脚本需要Perl环境Kali已预装。注意不同版本的Kali或John这些工具的名称和位置可能略有差异。使用find或locate命令搜索*2john*是快速定位它们的好方法。例如find /usr -name *2john* 2/dev/null。3. 密码破解的核心原理与攻击模式在开始实操前理解John的工作原理至关重要。它本质上是一个“猜测-验证”引擎。它不会“解密”文件而是尝试无数个可能的密码用每个密码去生成一个哈希值然后与从目标文件中提取出来的那个正确的哈希值进行比对。如果两者匹配那么这个密码就是正确的。John支持几种主要的攻击模式我们将根据场景灵活运用字典攻击Dictionary Attack这是最常用、最高效的方法。它需要一个密码字典一个包含大量常见密码、短语、单词变体的文本文件。John会按顺序尝试字典中的每一个词。字典的质量直接决定了成功率。Kali自带了一些字典位于/usr/share/wordlists/例如著名的rockyou.txt需解压sudo gzip -d /usr/share/wordlists/rockyou.txt.gz。暴力破解Brute-force Attack尝试所有可能的字符组合。这是最彻底但也是最慢的方法因为随着密码长度和字符集的增加尝试次数呈指数级增长。通常作为最后的手段或用于已知密码格式如6位纯数字的情况。掩码攻击Mask Attack是暴力破解的智能变种。当你对密码的格式有一定了解时例如“已知以2024开头后跟4位小写字母”你可以定义一个掩码如2024?l?l?l?l让John只尝试符合该模式的密码从而大幅减少尝试空间提高效率。混合攻击Hybrid Attack结合字典和暴力破解。例如在字典中每个词的后面或前面添加几位数字或符号进行尝试。John的智能之处在于其“规则”Rules系统。它可以对字典中的单词进行各种变换如大小写转换、颠倒顺序、添加后缀/前缀、leet语替换如a换成e换成3等。这能从一个基础字典衍生出海量的密码变体极大地提高了命中弱密码的概率。4. 实战步骤从提取哈希到破解密码下面我们以最常见的ZIP和Office文件为例演示完整的破解流程。4.1 第一步提取密码哈希这是最关键的一步我们必须先从加密文件中提取出John能识别的哈希字符串。针对ZIP文件zip2john target.zip zip_hash.txt这条命令会分析target.zip文件将其中的加密哈希信息提取出来并保存到zip_hash.txt文件中。打开这个文件你会看到一串以$pkzip2$或类似开头的长字符串这就是ZIP文件的密码哈希。针对Office文件.docx .xlsx等python3 /usr/share/john/office2john.py document.docx office_hash.txt使用office2john.py脚本处理Office文档。注意现代Office文档2007及以上版本后缀为.docx.xlsx.pptx使用基于AES的强加密而旧版.doc.xls使用较弱的加密。脚本会自动识别并提取对应的哈希保存到office_hash.txt。哈希值通常以$office$*或$oldoffice$*开头。针对RAR文件rar2john archive.rar rar_hash.txtRAR格式的加密通常也比较强。提取的哈希以$RAR3$*或$RAR5$*开头分别对应RAR3和RAR5格式。针对7z文件perl /usr/share/hashcat-utils/7z2john.pl archive.7z 7z_hash.txt调用Perl脚本来处理7z文件。7z格式默认使用AES-256加密非常强。实操心得提取哈希的过程可能会因为文件损坏、不支持的加密算法或工具版本问题而失败。如果遇到错误首先检查文件是否完好其次确认使用的工具版本是否支持该文件类型。对于特别新的Office版本可能需要更新office2john.py脚本可以从John的GitHub项目页面获取最新版。4.2 第二步选择合适的攻击模式与字典哈希提取成功后我们就可以让John开始工作了。首先从字典攻击开始因为它最快。基本字典攻击john --wordlist/usr/share/wordlists/rockyou.txt zip_hash.txt--wordlist或-w指定使用的密码字典路径。最后是包含哈希的文件名。John会开始尝试rockyou.txt字典中的每一个密码。如果破解成功它会将结果输出到终端并默认保存到~/.john/john.pot文件中。你可以随时按CtrlC中断进程。使用规则增强字典攻击john --wordlist/usr/share/wordlists/rockyou.txt --rules zip_hash.txt添加--rules参数John会启用内置的规则集对字典中的每个单词进行智能变换尝试更多可能性。查看破解结果无论进程是否结束你都可以查看已破解的密码john --show zip_hash.txt这个命令会列出该哈希文件zip_hash.txt中所有已破解的密码及其对应的用户名对于多文件压缩包用户名可能是文件名。4.3 第三步进阶攻击策略如果字典攻击失败了我们还有更多策略。掩码攻击假设我们怀疑密码是8位纯数字例如生日。john --mask?d?d?d?d?d?d?d?d zip_hash.txt--mask定义掩码。?d表示一位数字0-9。其他常用掩码符号?l小写字母?u大写字母?s特殊符号?a所有可打印字符。例如密码格式是“大写字母6位数字感叹号”掩码可以写为--mask?u?d?d?d?d?d?d!增量模式纯暴力破解这是John最强大的暴力破解模式它会自动尝试所有字符组合并智能地先从短密码、常见字符开始。john --incremental zip_hash.txt--incremental模式非常耗时通常需要指定具体的字符集和长度限制否则可能永无止境。你可以使用预定义的增量模式如--incremental:Digits仅数字或自定义。恢复会话与多任务John支持会话恢复。如果你中断了破解进程再次运行相同的命令它会自动从上次停止的地方继续。 你还可以使用--sessionsession_name参数给任务命名方便管理多个破解任务。john --wordlistbig_dict.txt --sessionmy_task zip_hash.txt之后恢复该任务只需john --restoremy_task5. 性能优化与实战技巧密码破解是计算密集型任务效率至关重要。5.1 利用GPU加速John本身主要利用CPU。对于支持GPU加速的哈希类型如NTLM MD5可以使用john的--formatraw-md5等格式并配合--device1,2参数尝试指定GPU但John对GPU的支持不如另一款神器Hashcat。对于Office和ZIP的哈希CPU破解是主流方式。如果你的任务极其繁重考虑将哈希导出用Hashcat在GPU上运行可能会快几个数量级。不过本文聚焦JohnHashcat是另一个话题。5.2 字典的学问字典是字典攻击的灵魂。除了Kali自带的你可以合并字典cat dict1.txt dict2.txt combined_dict.txt排序去重sort combined_dict.txt | uniq final_dict.txt避免重复尝试。根据目标定制如果目标是某公司员工可以收集公司名、产品名、当地常见词汇等制作专属字典。使用密码生成工具如crunch、cewl爬取网站生成字典来创建针对性字典。5.3 规则自定义John的规则文件通常位于/etc/john/john.conf或~/.john/john.conf。你可以学习其语法创建自己的规则。例如一个简单的规则为每个单词尝试首字母大写并添加“123”后缀[List.Rules:MyRules] c $1 $2 $3在命令行中使用john --wordlistdict.txt --rulesMyRules hash.txt5.4 分布式破解如果单机性能不足John支持分布式破解。你需要将哈希文件和工作负载分割到多台机器上分别运行John并确保它们使用不同的--session名或--node参数来分配任务范围。这需要一些脚本和网络配置适合大型项目。6. 常见问题排查与注意事项在实际操作中你肯定会遇到各种问题。这里记录一些典型的“坑”和解决方法。问题1zip2john提取哈希失败提示“不是zip文件”或“加密方法不支持”。排查首先用file命令确认文件类型file target.zip。有时文件扩展名可能是误导。其次确认ZIP文件是否真的加密了可以用7z l -slt target.zip查看属性。最后某些使用非常见加密算法或极高压缩级别的ZIP可能不被支持。尝试使用7z2john.pl处理有时有奇效。问题2office2john.py运行时报Python语法错误或导入模块失败。排查这通常是Python环境或脚本版本问题。确保使用python3。如果提示缺少oletools模块需要安装pip3 install oletools。直接从John的GitHub仓库下载最新版的office2john.py脚本通常能解决大多数兼容性问题。问题3John运行后毫无进展CPU占用率很低。排查首先检查哈希格式是否正确。用john --listformats | grep -i zip查看John支持的格式并用john --formatxxx hash.txt指定格式。例如对于现代Office哈希可能需要明确指定john --formatoffice2016 hash.txt。使用--test参数可以测试破解速度john --test --formatoffice2016。问题4字典攻击很久都没结果如何判断是否有希望排查使用john --status可以查看当前任务的进度、尝试速度、已尝试密码数量等信息。如果速度极慢如每秒几个密码而字典有上亿条那可能需要考虑优化字典或转向掩码攻击。如果速度尚可但一直没结果很可能密码不在当前字典中需要更换或扩充字典。问题5破解出了密码但用密码仍然打不开文件。排查这是最令人沮丧的情况。首先用john --show再次确认破解出的密码。其次可能是文件本身已损坏。还有一种可能是文件使用了双重加密或非标准的加密方式例如某些国产软件加密的压缩包。John破解的是它从文件中成功提取的那个哈希如果提取过程不完整或加密机制特殊即使哈希破解成功密码也可能不对。重要注意事项与法律风险重申合法授权仅对您拥有合法权限的文件进行操作。未经授权破解他人密码是违法行为。数据备份在尝试破解前最好对原始加密文件进行备份。虽然John是只读的但防止误操作总是好的。复杂度认知对于强密码长于12位混合大小写字母、数字、符号且无规律即使使用John在有限时间内破解的可能性也微乎其微。这项技术主要针对弱密码和常见密码。资源消耗暴力破解会长时间占用大量CPU资源让电脑发烫、风扇狂转。请合理安排时间。道德用途最好的用途是审计自己的密码习惯或者在企业环境中经授权进行安全意识培训演示弱密码的风险。7. 从破解到防御提升自身密码安全经过一番实战我们深刻体会到弱密码在自动化工具面前是多么不堪一击。作为从业者我们更应该从中学习如何设置强密码长度优于复杂度一个14位的纯小写字母随机密码如correcthorsebattery其组合空间远大于一个8位混合复杂密码如Pssw0rd。优先考虑增加密码长度。使用密码短语用一串随机的单词组合成句子更容易记忆且强度高例如BlueCoffeeTableRainbow!。绝对避免常见模式生日、姓名、键盘连续键如qwerty、常见单词简单替换如Pssw0rd都在破解字典和规则覆盖范围内。使用密码管理器为每个网站和服务生成并保存唯一、复杂的长密码你只需要记住一个主密码即可。启用双因素认证在重要账户上开启2FA即使密码被破解还有第二道防线。最后我个人在多次密码恢复任务中的体会是技术工具再强大其效率也高度依赖于目标的“人性化弱点”。大部分成功的案例都源于用户使用了可预测的密码。因此这套技术不仅是一把钥匙更是一面镜子照出我们自身在密码安全习惯上的不足。花时间为自己建立一套科学的密码管理体系其长期价值远大于掌握破解工具。当你下次再遇到锁住的文件时希望你是那个从容不迫、知道如何合法合规解决问题的人而不是那个因为使用了123456作为密码而追悔莫及的人。

相关新闻

Kali Linux中dsniff/arpspoof安装失败排查与解决方案全指南

Kali Linux中dsniff/arpspoof安装失败排查与解决方案全指南

1. 项目概述:当arpspoof在Kali Linux中“消失”时如果你正在学习网络安全,特别是网络渗透测试中的中间人攻击(MITM)技术,那么arpspoof这个工具对你来说一定不陌生。它作为经典的ARP欺骗工具,是dsniff套件中…

2026/7/27 23:21:46阅读更多 →
详解 Kafka 核心架构(核心流程):分区分布、消息路由与消费分配原理(三)

详解 Kafka 核心架构(核心流程):分区分布、消息路由与消费分配原理(三)

最近在总结Kafka的核心流程,对于生产者如何选择分区、分区在集群中如何摆放、消费者组又如何分配分区等问题容易混淆。这篇文章把Kafka的Topic、分区、生产者路由、集群分布以及消费者组机制彻底讲清楚。 一、Topic:只是逻辑上的“频道” 在Kafka中&…

2026/7/27 23:21:46阅读更多 →
TI DSP/BIOS渐进式集成:从裸机到实时系统的平滑升级实战

TI DSP/BIOS渐进式集成:从裸机到实时系统的平滑升级实战

1. 项目概述与核心价值 在嵌入式DSP开发领域,尤其是处理音频、通信或控制这类强实时性任务时,一个常见的困境是:项目初期为了快速验证算法和功能,往往采用一个简单的“超级循环”(Super Loop)架构。这种架构…

2026/7/27 23:21:46阅读更多 →
Ubuntu安装GCC完整指南:从基础编译环境到进阶配置

Ubuntu安装GCC完整指南:从基础编译环境到进阶配置

1. 项目概述:为什么要在Ubuntu上安装GCC?如果你刚接触Linux,尤其是选择了Ubuntu作为你的第一个发行版,并且想在上面学习或开发C语言程序,那么安装GCC(GNU Compiler Collection)几乎是你的第一步…

2026/7/28 0:42:52阅读更多 →
HarmonyOS应用开发实战:猫猫大作战-bindSheet 的使用方式

HarmonyOS应用开发实战:猫猫大作战-bindSheet 的使用方式

前言 底部抽屉(Bottom Sheet)是移动应用中常见的交互模式——从屏幕底部弹出一个面板,展示设置项或更多操作。HarmonyOS 提供了 bindSheet 方法,以半模态方式弹出可拖拽的底部面板。 本文以「猫猫大作战」的设置抽屉为锚点&…

2026/7/28 0:42:52阅读更多 →
HarmonyOS应用开发实战:猫猫大作战-Stack 叠层布局实现全屏覆盖遮罩、暂停/恢复交互控制

HarmonyOS应用开发实战:猫猫大作战-Stack 叠层布局实现全屏覆盖遮罩、暂停/恢复交互控制

前言 在游戏应用中,暂停遮罩是常见的交互模式——玩家点击暂停按钮时,游戏画面被半透明遮罩覆盖,并显示暂停菜单。HarmonyOS 的 Stack 组件天然适合实现这种叠层覆盖效果。 本文以「猫猫大作战」的暂停遮罩为锚点,讲解 Stack 叠…

2026/7/28 0:42:52阅读更多 →
04-模型与Provider-300+模型自由切换

04-模型与Provider-300+模型自由切换

04 模型与Provider——300+模型自由切换 开场场景:一个任务,需要不同的脑子 上午写代码时,你需要逻辑严谨、代码生成质量高的模型;下午写文档时,你需要文字优美、表达清晰流畅的模型;通宵调试时,你希望有一个快的模型能快速反馈;做安全审计时,你可能需要用本地部署…

2026/7/28 0:42:52阅读更多 →
扒开 HTTP/1.1 的底裤:报文结构、状态码与连接管理一次讲透

扒开 HTTP/1.1 的底裤:报文结构、状态码与连接管理一次讲透

扒开 HTTP/1.1 的底裤:报文结构、状态码与连接管理一次讲透实验环境:远程服务器 Ubuntu 24.04、nginx 1.24.0、curl 8.5.0、tcpdump 4.99.4 服务器公网 IP:120.46.193.105(下文中 127.0.0.1 为服务器本机回环) 所有 cu…

2026/7/28 0:42:52阅读更多 →
如何用XXMI启动器5分钟搞定多游戏模组管理:告别繁琐配置的终极指南

如何用XXMI启动器5分钟搞定多游戏模组管理:告别繁琐配置的终极指南

如何用XXMI启动器5分钟搞定多游戏模组管理:告别繁琐配置的终极指南 【免费下载链接】XXMI-Launcher Modding platform for GI, HSR, WW and ZZZ 项目地址: https://gitcode.com/gh_mirrors/xx/XXMI-Launcher 还在为管理不同游戏的模组而烦恼吗?每…

2026/7/28 0:40:52阅读更多 →
覆盖国产 + 海外 + 开源模型,OpenClaw 2.7.9 Windows/Mac 双端部署详解

覆盖国产 + 海外 + 开源模型,OpenClaw 2.7.9 Windows/Mac 双端部署详解

🔹 工具基础介绍 OpenClaw 是开源生态中一款实用性较强的本地智能工具,凭借本地离线运行、可视化图形操作和任务自动化三大核心特性,赢得了众多用户的青睐。与普通在线对话AI工具不同,它属于能够直接操控本机软硬件的智能数字员工…

2026/7/27 1:14:34阅读更多 →
伺服阀焊完微漏毁整机?精密激光焊接三关锁住高压

伺服阀焊完微漏毁整机?精密激光焊接三关锁住高压

所谓液压伺服阀体的精密激光焊接,是用激光束对阀座壳体(通常为不锈钢或铝合金)进行密封焊接,使阀体在21-35MPa的高压液压油或压缩气体中长期运行而不发生介质泄漏。液压伺服阀是高端液压系统的"大脑"。从航空航天飞行控…

2026/7/27 1:14:52阅读更多 →
D2DX:三步实现《暗黑破坏神2》高清宽屏体验的终极指南

D2DX:三步实现《暗黑破坏神2》高清宽屏体验的终极指南

D2DX:三步实现《暗黑破坏神2》高清宽屏体验的终极指南 【免费下载链接】d2dx D2DX is a complete solution to make Diablo II run well on modern PCs, with high fps and better resolutions. 项目地址: https://gitcode.com/gh_mirrors/d2/d2dx 你是否还在…

2026/7/27 1:14:56阅读更多 →
告别臃肿!3步让你的暗影精灵笔记本重获新生

告别臃肿!3步让你的暗影精灵笔记本重获新生

告别臃肿!3步让你的暗影精灵笔记本重获新生 【免费下载链接】OmenSuperHub Control Omen laptop performance, fan speeds, and keyboard lighting, and unlock power limits. 项目地址: https://gitcode.com/gh_mirrors/om/OmenSuperHub 你是否也曾为官方Om…

2026/7/28 0:00:29阅读更多 →
RAG必踩坑!财报法规检索不准?这款开源工具让答案浮出水面,准确率飙升98.7%!

RAG必踩坑!财报法规检索不准?这款开源工具让答案浮出水面,准确率飙升98.7%!

做 RAG 的人应该都踩过这个致命的坑:把几百页的财报、法规、技术手册扔给向量库,问一个具体问题,搜出来的全是沾边但没用的内容 —— 关键信息要么被硬切块拆碎了,要么藏在几十条结果的最下面。语义相似≠真正相关,这个…

2026/7/28 0:00:29阅读更多 →
抖音视频文案提取工具全指南:免费2026版、手机App、在线工具一网打尽

抖音视频文案提取工具全指南:免费2026版、手机App、在线工具一网打尽

2026年做短视频运营,从抖音上扒文案早就不是偷偷抄笔记的事了。我刚开始做内容的时候,每天刷半小时抖音,手动把爆款视频的口播敲进备忘录,一条2分钟的视频得花十来分钟,碰到语速快的还要反复回听。后来试了一圈工具&am…

2026/7/28 0:00:29阅读更多 →
YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

如果你在部署 YOLOv8 时,发现推理速度只有可怜的 1-2 FPS,而别人的演示视频却能跑到 30 FPS 以上,那么问题很可能不在模型本身,而在于你的整个处理链路。很多开发者拿到一个训练好的 YOLOv8 模型后,会直接使用官方示例…

2026/7/27 16:57:54阅读更多 →
Coze与Dify对比指南:低代码AI应用开发从入门到实战

Coze与Dify对比指南:低代码AI应用开发从入门到实战

1. 从零到一:为什么你需要了解 Coze 和 Dify?如果你对 AI 应用开发感兴趣,但一看到“大模型”、“智能体”、“工作流”这些词就头疼,觉得门槛太高,那这篇文章就是为你准备的。很多开发者,包括我自己&#…

2026/7/26 19:05:21阅读更多 →
AI生图工具怎么选?2026年6月版实测对比

AI生图工具怎么选?2026年6月版实测对比

做自媒体的朋友应该都有体会:配图一直是个让人头疼的问题。2026年,AI生图工具已经非常成熟了,但工具太多反而不知道怎么选。以下是截至2026年6月我对主流AI生图工具的实测对比。Midjourney V8.1:速度之王2026年6月11日&#xff0c…

2026/7/26 19:05:21阅读更多 →