使用JohnTheRipper对有密码加密的ZIP压缩包文件进行暴力破解

本文介绍如何使用JohnTheRipper破解ZIP压缩包的密码,包括软件的安装、配置及使用方法,并对比了另一款软件fcrackzip。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

背景

对加密的ZIP压缩包进行密码破解的方式有很多,网上也有很多文章,今天只介绍一种——JohnTheRipper。

JohnTheRipper

摘自百度百科:

John the Ripper,是一个快速的密码破解工具,用于在已知密文的情况下尝试破解出明文的破解密码软件,支持目前大多数的加密算法。如DES、MD4、MD5等。它支持多种不同类型的系统架构,包括Unix、Linux、Windows、DOS模式、BeOS和OpenVMS,主要目的是破解不够牢固的Unix/Linux系统密码。

其实JohnTheRipper的主要功能是破解经过加密的密码,这里简单的举个例子。
比如你在某网站的账户名是:abc123,密码是:password123。

用户名密码
abc123password123

网站是不可能明文保存你的密码password123的,它会对你的这个密码进行加密,比如储存password123的md5值(实际中不会这么简单,这里涉及到很多加密的知识,不做展开)。
实际储存的是:

用户名密码
abc1237576f3a00f6de47b0c72c5baf2d505b0

这样即使该网站的数据库被黑了,黑客也不能反向推测出你的密码。

但是不可逆不代表不可破解,简单理解就是JohnTheRipper是一款可以通过你储存的这组hash值能够反向算出你的密码的软件。

ZIP破解

但是我们今天用到的是JohnTheRipper的另一个功能,破解ZIP文件。

fcrackzip

在介绍JohnTheRipper的使用前,顺便提一下fcrackzip,也是一款对ZIP文件进行暴力破解的软件,用法简单,但是早已不维护,而且效率远低于JohnTheRipper。不过我当时正是由fcrackzip才发现JohnTheRipper的,感谢这些真正牛逼的人为开源世界作出的贡献~~~

下面言归正传…

源码下载

下载地址:https://github.com/magnumripper/JohnTheRipper

git clone https://github.com/magnumripper/JohnTheRipper.git
安装依赖

编译前需要先安装依赖的库,我们可以先看官方安装说明:

The Jumbo versions requires OpenSSL 0.9.7 or later. To get all functionality
you need 1.0.1. For building, not only the run-time libs are needed but also
“devel” stuff like header files. This is often a separate package, so, e.g.,
for Ubuntu you need “libssl-dev” as well as “libssl”
A few helper tools need C++. Some helper tools are written in Python. A couple
helper tools (vncpcap2john and SIPdump) need libpcap. A couple of formats need
extra libraries in order to get included:

mozilla     libnss
krb5-18/23  libkrb5
wowsrp      libgmp (will build without it, but is slower then)

Again, you also need e.g. libnss-dev, libkrb5-dev and libgmp-dev in order to
build.

这里因为我需要的库都已经安装,就不另外写安装说明了,没有的库可以自行安装 。
ubuntu安装库的命令一般是:

apt-get install libxxx-dev

这样同时包含链接库和需要的头文件。

编译

这里演示的是最基本功能的编译,还有很多可配置项,具体可以阅读INSTALL文件。

cd JohnTheRipper-bleeding-jumbo
cd src
./configure && make -sj4

不出意外的话,很快就能编译完成,下面就是破解阶段了!

暴力破解

我们首先自己先创建一个有密码的zip压缩包,命名为target.zip
将target.zip拷贝至JohnTheRipper-bleeding-jumbo目录
这时候运行下面的代码:

./run/zip2john target.zip > hash
./run/john hash

下面就静静地等待密码破解即可!
比如我这次设的密码是shang
JohnTheRipper破解后显示的信息是:

0g 0:00:00:07  3/3 0g/s 21199p/s 21199c/s 21199C/s 123456
shang            (target.zip)
1g 0:00:00:08 DONE 3/3 (2018-01-01 21:35) 0.1206g/s 23319p/s 23319c/s 23319C/s 123456..013355

需要注意的是,纯暴力破解的话8位以内的密码相对快一点,8位以上的话就基本很难了。

软件还有很多其他选项,比如使用字典,知道密码长度,给出密码的部分字符串加速等待。感兴趣的可以深入研究,毕竟JohnTheRipper功能非常强大,今天介绍的只是它很小的一个功能。

### CTF竞赛中的ZIP文件处理 在CTF竞赛中,ZIP文件通常被用来隐藏秘密信息或作为挑战的一部分。这些文件可能经过特别设计,使得参赛者需要运用特定的技术来提取有用的信息。 #### 特殊格式与使用方法 有时,在CTF比赛中遇到的ZIP文件并非普通的压缩文档。它们可能会包含额外的数据流或者故意损坏的部分以增加难度。例如,当面对一个看似正常的图像文件却被告知其内部藏有RAR档案时[^1],这表明文件结构可能是复合型的——即在一个文件内嵌入了另一个不同类型的文件。对于这种情况,可以借助十六进制编辑器如WinHex查看并操作原始二进制数据,从而识别出潜在的目标部分,并将其分离出来转换成正确的格式以便进一步处理。 针对上述提到的例子,通过观察到图片结尾处存在类似于RAR头部特征的内容,能够合理推测该区域实际上代表了一个完整的RAR压缩包实体。此时只需截取这部分数据单独存储为`.rar`扩展名的新文件即可尝试正常读取其中所含有的资源[^2]。 #### 解密技巧 如果获取到了疑似加密后的ZIP/RAR文件,则需考虑采用合适的手段来进行解码: - **字典攻击**:利用预先准备好的常见密码列表快速测试; - **暴力破解**:适用于知道密码模式的情况下(比如纯数字),尽管效率较低但理论上总能成功; - **社会工程学线索解析**:从题目描述或其他关联材料里寻找暗示性的文字说明帮助缩小猜测范围; 值得注意的是,在某些情况下,即使获得了正确形式的压缩包也可能因为设置了复杂的保护机制而难以立即访问内容。这时就需要仔细阅读比赛给出的所有提示以及充分利用各种开源工具辅助分析解决问题。 ```bash # 使用John the Ripper进行字典/暴力破解示例命令 john --wordlist=/path/to/dictionary.txt archive.zip ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值