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

背景

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

JohnTheRipper

摘自百度百科:

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

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

用户名 密码
abc123 password123

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

用户名 密码
abc123 7576f3a00f6de47b0c72c5baf2d505b0

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

但是不可逆不代表不可破解,简单理解就是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功能非常强大,今天介绍的只是它很小的一个功能。

你可能感兴趣的:(技术分享)