封面:なもり
整理旧文件的时候发现了一个神奇的压缩包,包里面密密麻麻是一些文件名为大写字母和数字组合的视频和图像文件,但是尝试解压,竟然有密码!得益于前任对压缩文件密码的恢复和破解已经有过深入的研究,现在我有机会尝试挑战恢复这个压缩包的密码。
首先,我们需要确定的是文件的加密类型,Zip 文档的默认加密算法是 ZipCrypto
,这个加密算法已经算过时了,因为已经有方法使用明文攻击来暴力破解了,除了ZipCrypto
之外便是新引入的AES256
算法了,想必在很多场合我们都会看到这个 AES 加密算法,因其破解难度之高、安全性能之强被广泛应用,如果你的密码足够短,且你的计算机性能够强,还是有机会破解掉的。但好在因为兼容性问题,许多压缩软件在创建压缩包时创建密码默认依然使用的是过时的ZipCrypto
算法,而幸运的是我这个压缩包使用的正是ZipCrypto
,所以也就有了我继续写这篇文章的理由。
判断压缩包加密类型的方法也很简单,例如我现在使用的Bandizip
会直接提供加密压缩包的加密算法类型。
John the Ripper
是知名度非常高的密码恢复(pojie)工具,拿来恢复压缩包密码也真算是大材小用了。
# 拉取源码
git clone https://github.com/magnumripper/JohnTheRipper.git
cd JohnTheRipper/src
# 开始编译
./configure
make
编译好之后我们可以直接到run
目录使用工具了
cd ../run
开始使用,我们以文件名为abc.zip
为名的压缩文件为例:
# 获取 Hash 值
./zip2john abc.zip > abc.zip.hash
./john abc.zip.hash
# 开始破解过程,会回显以下内容
Using default input encoding: UTF-8
Loaded 1 password hash (PKZIP [32/64])
Will run 8 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:./password.lst
Proceeding with incremental:ASCII
0g 0:00:00:01 3/3 0g/s 116432p/s 116432c/s 116432C/s 123456
0g 0:00:01:24 3/3 0g/s 4072Kp/s 4072Kc/s 4072KC/s dripps12..drystias
0g 0:00:03:35 3/3 0g/s 2203Kp/s 2203Kc/s 2203KC/s anak163a..anic285a
0g 0:00:03:57 3/3 0g/s 2100Kp/s 2100Kc/s 2100KC/s 17do14j..17dlm38
0g 0:00:05:58 3/3 0g/s 2015Kp/s 2015Kc/s 2015KC/s 10867aba..10925-62
0g 0:00:11:52 3/3 0g/s 1840Kp/s 1840Kc/s 1840KC/s 12apyop..12jacs5
0g 0:00:24:42 3/3 0g/s 2036Kp/s 2036Kc/s 2036KC/s peeltow81..pebriosay
password (abc.zip/****.mp4)
1g 0:00:32:28 DONE 3/3 (2020-05-08 16:56) 0.000513g/s 1911Kp/s 1911Kc/s 1911KC/s RCo5..09062302310
Use the "--show" option to display all of the cracked passwords reliably
Session completed.
其中的password
就是我们想要的密码了。另外我们可以通过下载一些额外的字典包(BT文件,4.2GB)来辅助提高恢复(pojie)的成功率。使用字典的命令如下:
john --wordlist=your\password\list\dir list.lst
使用bandizip
软件专业版(Professional)的密码恢复功能。不得不说,Bandizip 的功能相当强大,对于无论ZipCrypto
还是AES256
的加密算法都有着很好的支持,且 GUI 界面下,非常的简单好用,不需要执行麻烦的命令行操作步骤。唯一美中不足的是,需要支付30美元购买专业版才能使用,当然有条件的话支持正版是最好的,但也有一些其他办法免费用上,这个我会在稍后附上链接。
我们可以看到Bandizip
的密码恢复在恢复ZipCrypto
加密算法的压缩包时最高可以达到900000000/s的处理速度,一个十位数的纯数字密码仅需不到三分钟(我的笔记本是i7-4710MQ,4C8T),但处理AES256
加密算法的压缩包时只能有其十万分之一的900/s.
无论在设定任何密码的时候,我们都应该保证我们的密码足够长也足够复杂,可以的话在每个网站都采用不同的随机生成密码是最为稳妥的。通过一些密码管理软件如LastPass
、1Password
、KeepPass
等来保管密码也非常妥当。在我们对重要的文件进行打包并且加密的时候,我们尽可能不要选用ZipCrypto
加密算法,而是选用更为安全的AES256
加密算法来进行加密。目前我使用的Bandizip
默认采用的是ZipCrypto
算法,而PeaZip
则默认使用AES256
算法进行加密,并且会对密码强度进行检测,这一点非常好评!
Bandizip 专业版/企业版购买链接:https://www.bandisoft.com/bandizip/buy/
Bandizip 专业版/企业版解锁补丁:https://www.52pojie.cn/thread-1157907-1-1.html
PeaZip 下载地址:https://www.peazip.org/index.html
本文作者:NiNya
本文链接:https://lilynas.com/archives/653/
最后修改时间:2020-05-08 20:20:59
本站未注明转载的文章均为原创,并采用 CC BY-NC-SA 4.0 授权协议,转载请注明来源,谢谢!