忘记了压缩包密码的一些补救措施
浏览 2428 | 评论 0 | 字数 3456
NiNya
2020年05月08日
  •   文章最后更新于:.
      受某些因素影响,本文章可能具有一定的时效性,请以实际情况为准!另外,欢迎留言~

    封面:なもり

    整理旧文件的时候发现了一个神奇的压缩包,包里面密密麻麻是一些文件名为大写字母和数字组合的视频和图像文件,但是尝试解压,竟然有密码!得益于前任对压缩文件密码的恢复和破解已经有过深入的研究,现在我有机会尝试挑战恢复这个压缩包的密码。

    判断压缩包加密算法类型

    首先,我们需要确定的是文件的加密类型,Zip 文档的默认加密算法是 ZipCrypto,这个加密算法已经算过时了,因为已经有方法使用明文攻击来暴力破解了,除了ZipCrypto之外便是新引入的AES256算法了,想必在很多场合我们都会看到这个 AES 加密算法,因其破解难度之高、安全性能之强被广泛应用,如果你的密码足够短,且你的计算机性能够强,还是有机会破解掉的。但好在因为兼容性问题,许多压缩软件在创建压缩包时创建密码默认依然使用的是过时的ZipCrypto算法,而幸运的是我这个压缩包使用的正是ZipCrypto,所以也就有了我继续写这篇文章的理由。
    判断压缩包加密类型的方法也很简单,例如我现在使用的Bandizip会直接提供加密压缩包的加密算法类型。

    密码恢复方案

    方案一:John the Ripper (适用于 Linux 和 Windows )

    John the Ripper是知名度非常高的密码恢复(pojie)工具,拿来恢复压缩包密码也真算是大材小用了。

    安装 John the Ripper

    # 拉取源码
    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 (适用于 Windows )

    使用bandizip软件专业版(Professional)的密码恢复功能。不得不说,Bandizip 的功能相当强大,对于无论ZipCrypto还是AES256的加密算法都有着很好的支持,且 GUI 界面下,非常的简单好用,不需要执行麻烦的命令行操作步骤。唯一美中不足的是,需要支付30美元购买专业版才能使用,当然有条件的话支持正版是最好的,但也有一些其他办法免费用上,这个我会在稍后附上链接。

    我们可以看到Bandizip的密码恢复在恢复ZipCrypto加密算法的压缩包时最高可以达到900000000/s的处理速度,一个十位数的纯数字密码仅需不到三分钟(我的笔记本是i7-4710MQ,4C8T),但处理AES256加密算法的压缩包时只能有其十万分之一的900/s.

    一些建议

    无论在设定任何密码的时候,我们都应该保证我们的密码足够长也足够复杂,可以的话在每个网站都采用不同的随机生成密码是最为稳妥的。通过一些密码管理软件如LastPass1PasswordKeepPass等来保管密码也非常妥当。在我们对重要的文件进行打包并且加密的时候,我们尽可能不要选用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 授权协议,转载请注明来源,谢谢!
    评论
    与本文无关评论请发留言板。请不要水评论,谢谢。
    textsms
    支持 Markdown 语法
    email
    link
    评论列表
    暂无评论