v1nn0

天行健,君子以自强不息。

John The Ripper && Crunch 破解zip密码

相信大家一定遇到过好不容易下载到的非常棒的项目源码等资源,想立刻部署来玩一玩,可是源码需要密码才能解压的这种情况,今天说说怎么破解它
纯文字教程

需要准备

  • Kali(物理机或虚拟机都可以)
  • John The Ripper和Zip2john模块
  • 一个待破解的zip压缩包
  • Crunch

Kali Linux是基于Debian的Linux发行版, 设计用于数字取证操作系统,并且预装了许多渗透测试软件,John和Crunch就是其中的两个小工具,主要用于密码的爆破,zip2john是john的zip破解模块,也是kali自带的,无需手动安装

破解过程

将你要破解的zip压缩包放到一个方便你找到的地方
并打开终端cd到该目录,我把它放在了桌面,我建议你也这么做,那么就直接右键桌面选择在此处打开终端即可

1
2
3
4
5
6
7
┌──(v1nny㉿v1nny)-[~/桌面]
└─$ ls
code.desktop Pycharm.desktop rockyou.txt test.zip

┌──(v1nny㉿v1nny)-[~/桌面]
└─$

这个test.zip就是我们待破解的压缩包,他的密码已经提前进行了设置,这个密码我也不知道,是我闭上眼随便写的,下面我们对它进行破解操作

1
2
3
4
5
6
7
8
──(v1nny㉿v1nny)-[~/桌面]
└─$ zip2john test.zip > test.hash
ver 1.0 test.zip/test/ is not encrypted, or stored with non-handled compression type

┌──(v1nny㉿v1nny)-[~/桌面]
└─$ ls
code.desktop rockyou.txt test.zip
Pycharm.desktop test.hash

输入
zip2john 待破解的zip文件名 > 生成hash值后存入的文件名
这个hash值得存放文件得后缀你可以写hashtxt
回车后会在桌面生成一个与你输入同名的xxx.hash文件,那里面就是这个zip的哈希值了
你可以输入

1
cat hash文件名.hash

来查看内容是否正确,正不正确咱们光看也看不出来,你只需要看看里面有没有东西就可以

1
2
3
┌──(v1nny㉿v1nny)-[~/桌面]
└─$ cat test.hash
test.zip/test/test.txt:$zip2$*0*3*0*f8b779326ab33928aabc35732200a01e*1663*41*9845267a7d8c5dbf725ba89bfd85219c7163539471ddfcd21ecfd1dd9463ac258395fb68e1cc4272f5d22b253652c17db7c0cbe420d581f8095fd3bedba5346b0a*dbcd543a497351da6218*$/zip2$:test/test.txt:test.zip:test.zip

成功录入的效果↑
这时就可以开始正式的破解了
输入

1
john 你的hash文件名

即可进行破解,现在他进行字典爆破的字典在

1
/usr/share/john/password.lst

的位置,这是john的默认字典
但是这种直接输入john的方法只适合破解弱密码,如果是复杂一点或者长一点的可能就解不出来了

1
2
3
4
5
6
7
8
9
10
11
┌──(v1nny㉿v1nny)-[~/桌面]
└─$ john test.hash
Using default input encoding: UTF-8
Loaded 1 password hash (ZIP, WinZip [PBKDF2-SHA1 256/256 AVX2 8x])
Cost 1 (HMAC size) is 65 for all loaded hashes
Will run 4 OpenMP threads
Proceeding with single, rules:Single
Press 'q' or Ctrl-C to abort, almost any other key for status
Almost done: Processing the remaining buffered candidate passwords, if any.
Proceeding with wordlist:/usr/share/john/password.lst
Proceeding with incremental:ASCII

比如我的这个就有点复杂,不过没关系
现在咱们就需要用到Crunch这个工具了,他准确来说应该是一个字典生成工具,可以根据你的需求进行完全的自定义字典,这里如何生成不多赘述,只讲一讲纯数字密码字典的生成
在终端输入

1
crunch 起始的数字位数 结束的数字位数 需要用到的数字 -o 生成后的字典名.txt

例如,我不知道我设置的密码是什么,但我记得大概是7-8位的数字,我们可以输入

1
crunch 7 8 0123456789 -o pwd.txt

那么返回结果是

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
┌──(v1nny㉿v1nny)-[~/桌面]
└─$ crunch 7 8 0123456789 -o pwd.txt
Crunch will now generate the following amount of data: 980000000 bytes
934 MB
0 GB
0 TB
0 PB
Crunch will now generate the following number of lines: 110000000

crunch: 25% completed generating output

crunch: 48% completed generating output

crunch: 75% completed generating output

crunch: 97% completed generating output

crunch: 100% completed generating output

┌──(v1nny㉿v1nny)-[~/桌面]
└─$ l
code.desktop* Pycharm.desktop* test.hash
pwd.txt rockyou.txt* test.zip*

这里的pwd.txt就是生成的字典了,简单解读一下

crunch 不用多说是自动这个工具
7 是起始位数,注意,这里是位数,不是起始数
8 结束位数
0123456789 字典内密码的组成,全部是用这些数字组成的
-o 将密码保存到指定文件的参数
pwd.txt 最后生成的字典名

切记,如果你知道密码位数的话一定把范围缩小到位数里,不要从1开始生成,不然一个小时也生成不完
生成完字典后我们要引用字典进行爆破了
输入

1
John --wordlist=你的字典名 你的hash值存储文件名

执行即可

1
2
3
4
5
6
7
8
9
10
11
┌──(v1nny㉿v1nny)-[~/桌面]
└─$ john --wordlist=pwd.txt test.hash
Using default input encoding: UTF-8
Loaded 1 password hash (ZIP, WinZip [PBKDF2-SHA1 256/256 AVX2 8x])
Cost 1 (HMAC size) is 35 for all loaded hashes
Will run 4 OpenMP threads
Press 'q' or Ctrl-C to abort, almost any other key for status
1598526 (test.zip/test/test.txt)
1g 0:00:00:37 DONE (2022-12-13 16:00) 0.02698g/s 43325p/s 43325c/s 43325C/s 1597440..1605631
Use the "--show" option to display all of the cracked passwords reliably
Session completed.

好的密码已经爆破出来了,是1598526,在你的终端上会以黄色字显示出来
使用此密码解压后,里面的东西也没有损坏,非常完美
如果这些字典都不符合你的要求,你可以在桌面的应用程序处,搜索wordlists,找到同名程序,点击它即可显示出你的kali中的所有内置字典,信息量非常巨大,值得一试
如果上述所有方法还是不能成功爆破,那么就请放弃吧。。。

-------------本文结束 感谢阅读-------------