如何在Kali Linux中使用John the Ripper使用蛮力破解PDF密码

本文概述

  • 1.生成JohnTheRipper二进制文件
  • 2.生成PDF哈希文件
  • 3.蛮力与约翰
开膛手约翰(John the Ripper)是一个快速的密码破解程序, 目前可用于Unix, macOS, Windows, DOS, BeOS和OpenVMS的多种形式(后者需要提供补丁)。其主要目的是检测弱Unix密码。除了在各种Unix风格上最常见的几种crypt(3)密码哈希类型外, 开箱即用地支持Kerberos / AFS和Windows LM哈希, 以及基于DES的tripcode, 以及” -jumbo” 中的数百个其他哈希和密码” 版本。
在本文中, 我们将向你介绍如何使用JohnTheRipper的强力攻击来破解带有密码的PDF。
1.生成JohnTheRipper二进制文件 我们将需要使用JohnTheRipper的Jumbo版本。这是《开膛手约翰》的社区增强版” 巨型” 版本。它具有用户社区提供的大量代码, 文档和数据。这不是开膛手约翰的官方代码。将新代码添加到巨型代码非常容易:质量要求低。这意味着你获得的许多功能不够” 成熟” , 或者对于正式的JtR而言是不合适的, 这又意味着该代码中的错误是可以预期的。
使用以下命令从Github的存储库中获取JohnTheRipper的源代码(” bleinging-jumbo” 分支(默认值基于1.8.0-Jumbo-1))(或下载包含内容的zip并解压缩到一些目录):
git clone https://github.com/magnumripper/JohnTheRipper.git

这将在当前目录中创建一个目录, 即JohnTheRipper。你可以在官方网站上阅读有关JohnTheRipper项目的” Jumbo” 版本的更多信息, 或在此处访问Github上的非正式代码存储库。使用以下命令切换到JohnTheRipper的src目录:
cd ./JohnTheRipper/src

使用以下命令继续从存储库下载软件包列表:
sudo apt-get update

并安装libssl:
sudo apt-get install libssl-dev

该库要求在你的系统中安装libssl(openssl), 因此如果你没有该库, 则可以使用前面的命令来完成此要求。克隆存储库后, 继续进入包含JohnTheRipper源代码的源目录:
cd ./JohnTheRipper/src

在此目录中, 我们将按照以下说明进行构建:
./configure & & make

此版本的Jumbo具有支持非常常见链的autoconf, 可让你在类Unix系统上编译源代码。构建过程完成后, 切换到JohnTheRipper目录内的运行目录:
cd ..cd ./run

在此目录中, 你可以找到(在构建之后)库必须提供的所有工具(包括john本身), 你可以列出要比较的目录:
ls

你将在此目录中看到JohnTheRipper的所有工具:
如何在Kali Linux中使用John the Ripper使用蛮力破解PDF密码

文章图片
现在你拥有继续使用的工具, 让我们开始进行暴力攻击。
2.生成PDF哈希文件 如本文开头所述, JohnTheRipper本身与PDF无关, 但与密码和安全性有关。这就是为什么你需要使用pdf2john.pl工具(从源代码编译后在运行目录中提供)创建PDF的哈希文件的原因。此工具使你可以通过此perl脚本获取文件的哈希(读取元信息), 可以使用以下命令将其提取到新文件中:
pdf2john.pl /root/Desktop/pdf_protected.pdf > /root/Desktop/pdf.hash

此命令将在定义的目录中创建一个.hash文件。这是我们将用于JohnTheRipper工具的文件:
如何在Kali Linux中使用John the Ripper使用蛮力破解PDF密码

文章图片
pdf.hash文件包含如下文本:
/root/Desktop/pdf_protected.pdf:$pdf$4*4*128*-4*1*16*d22933dd530666ced293ccf5f860214f*32*ab12d2e30eae3d43d69ac57efc2918c128bf4e5e4e758a4164004e56fffa0108*32*07419b7fe590bdc9926bb9750adeedb8c07b5407d9b5314c012d16e25e9e7f20

现在我们有了哈希文件, 我们可以使用john CLI工具进行暴力破解。
3.蛮力与约翰 现在我们有了要解锁的带有密码的PDF的.hash文件, 我们只需要将该文件作为参数传递给JohnTheRipper的CLI工具(在运行目录中):
john protected_pdf.hash

这将使用UTF-8作为默认输入编码, 并且将开始使用库的默认单词列表来猜测PDF文件的密码。如果找到, 它将显示密码和受保护的PDF的路径:
如何在Kali Linux中使用John the Ripper使用蛮力破解PDF密码

文章图片
如果你在猜测密码后尝试在同一文件上运行命令, 则会看到以下消息:” 未加载密码哈希” , “ 未加载密码哈希” 或” 没有密码哈希可破解(请参阅FAQ) )” 。破解后的密码将被打印到终端上, 并保存在名为$ JOHN / john.pot的文件中(在文档和John的配置文件中, ” $ JOHN” 指的是John的” 主目录” ;它的真实目录取决于有关如何安装John的信息)。 $ JOHN / john.pot文件还用于不加载下次运行John时已经破解的密码哈希。
如果是这样, 你将可以使用– show标志再次看到同一文件的密码:
john --show /root/Desktop/pdf.hash

【如何在Kali Linux中使用John the Ripper使用蛮力破解PDF密码】因此将显示密码(在我们的示例中为54321):
如何在Kali Linux中使用John the Ripper使用蛮力破解PDF密码

文章图片
使用自定义单词列表
如果你不想使用JohnTheRipper的默认password.lst文件, 只需使用– wordlist参数指定新文件的路径:
john --wordlist=password.lst protected_pdf.hash

作为最终建议, 该工具可以破解许多文件, 因此你可能需要阅读该库的文档。其余文档位于单独的文件中, 在此处按建议的阅读顺序列出:
  • 安装-安装说明
  • 选项-命令行选项和其他实用程序
  • 示例-使用示例-强烈建议
  • 模式-破解模式:它们是什么
  • 常见问题解答-常见问题
  • 错误-已知错误列表
  • 动态-如何在JtR中使用动态格式
  • 动态编译器格式-使用动态编译器构建的已知哈希格式列表
  • DYNAMIC_SCRIPTING-如何建立/优化使用动态格式
  • README.bash-completion-如何为JtR启用bash完成
  • 联系人(*)-如何联系作者或以其他方式获得支持
  • 配置(*)-如何自定义
  • EXTERNAL(*)-定义外部模式
  • 规则(*)-单词表规则语法
  • 变更(*)-变更记录
  • 学分(*)-学分
  • 许可-版权和许可条款
  • COPYING-GNU GPL第2版, 如上面的LICENSE所引用
(*)大多数用户可以安全地跳过这些。
骇客骇客!

    推荐阅读