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

news/2024/11/24 4:26:23/

背景

对加密的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功能非常强大,今天介绍的只是它很小的一个功能。


http://www.ppmy.cn/news/903653.html

相关文章

实验二:文件破解(zip密码/zip伪加密/doc密码)

一、实验目的 学会使用Advanced ZIP Password Recovery、Free Word Excel password recovery wizard等工具,了解并掌握DOC、ZIP文件破解的方法 二、实验题目 2.1 破解zip密码 破解压缩包 01.zip 的密码,获取压缩包中 flag.txt 中的内容 提示&#xf…

exew文件加密:利用破解版exe文件加密器对exe文件进行加密保护(图文教程)

exew文件加密:利用破解版exe文件加密器对exe文件进行加密保护(图文教程) 目录 加密过程步骤 解密过程步骤 加密过程步骤 解密过程步骤

【每日一题Day262】LC1911最大子序列交替和 | dp

最大子序列交替和【LC1911】 一个下标从 0 开始的数组的 交替和 定义为 偶数 下标处元素之 和 减去 奇数 下标处元素之 和 。 比方说,数组 [4,2,5,3] 的交替和为 (4 5) - (2 3) 4 。 给你一个数组 nums ,请你返回 nums 中任意子序列的 最大交替和 &am…

fpga4fun.com/Music box

1.Simple beep 先做一个简单地蜂鸣器,原理是晶振通过不同的分频器分成不同的频率,通过电路发出音调不同的声音。 例子中Pluto FPGA板子有25Mhz的时钟频率,采用16位计数器(可以产生65536个不同的数值),则最…

WITH( NOLOCK)

在select查询的时候,有时为了提高查询的效率会引用入 WITH( NOLOCK) ,但是这样会引起脏读数据 eg:SELECT * FROM table1 WITH( NOLOCK) LEFT JOIN table2 WITH( NOLOCK) ON table1.atable2.b 这篇感觉不错http://www.cnblogs.com/hsapph…

锁+LOCK

--锁 总结锁(LOCKING)是最常用的并发控制机构。是防止其他事务访问指定的资源控制、实现并发控制的一种主要手段。锁是事务对某个数据库中的资源(如表和记录)存取前,先向系统提出请求,封锁该资源&#xff0…

关于Lock锁

Synchronized锁的缺陷 Synchronized不会手动释放锁资源,当线程发生阻塞后,其他线程只能眼睁睁的等着,不会分别是读线程和写线程,读问题并不会引发高并发,但是synchronized锁不能识别是读线程还是锁线程 ,遇…

KeyLock

在这篇文章https://bbs.csdn.net/topics/390523873基础上改进的 public class KeyLock<K> {// 保存所有锁定的KEY及其信号量private final ConcurrentMap<K, Semaphore> map new ConcurrentHashMap<K, Semaphore>();// 保存每个线程锁定的KEY及其锁定计数p…