作者: scz
创建: 2023-12-22 20:00
在过去,我对电子书圈并不熟悉,也没有特别关注过这个领域。直到2023年7月,我第一次接触到国内的电子书圈,才了解到了”读秀库”是什么,以及如何通过SS号找到电子书的ZIP包。当时,百度秒传还可以使用,我下载了一些回忆录,包括《星火燎原》系列。但是,随着下载次数的增多,我偶尔会遇到ZIP文件需要密码的情况。对于这个问题,电子书圈已经有了现成的解决方案,可以找到ZIP密码穷举工具和密码字典,作为一个小白用户,我只需要直接使用这些工具就可以了。我不太敢使用VirusTotal标红的工具,这并不是说它们一定有问题,只是出于我的个人习惯。使用”易语言”开发的工具经常会被VirusTotal标红,这是很常见的情况。
起初,我写了一个名为zcrack.bat和zcrack.sh的脚本,调用7z来进行ZIP密码穷举,对于读秀库ZIP包的场景来说,这种方法已经足够了。因为我只是挂载了一个密码字典进行穷举,我的字典中只有500多个密码,即使速度再慢也不会花费太多时间。别看字典很小,但我自己下载的书从来没有失手过。当然,事情总有例外,有一次我在看别人下载的书时,我的小字典不够用了,只能挂载一个大字典,这时zcrack.bat就显得太慢了。
Pdg2Pic的作者马健开发了一个名为Zip2Dir.exe的工具,它可以识别名为Zip2Dir.pwd的密码字典,穷举成功后会自动解压文件。这是我测试过的最快的ZIP密码穷举工具,对于GBK编码的汉字密码也有很好的支持,而且它的作者马健也是Pdg2Pic的作者。
有些工具对于汉字密码的支持非常差,加载密码字典后,其中的汉字密码会显示为乱码,即使强行进行穷举,也不会成功。虽然大多数电子书的ZIP文件并不使用汉字密码,但我真的遇到过这种情况,比如SS号10336213这本书,《星火燎原》中的一本,使用Zip2Dir.exe解压没有任何问题。你可以尝试使用你自己的工具来测试这本书,如果可以解压成功,说明工具是合格的;如果不能解压成功,那就赶紧抛弃它,没什么用。
Zip2Dir.exe的缺点是它不会显示穷举成功的ZIP密码。大多数人只关心解压的结果,不需要知道穷举成功的ZIP密码,只有少数好奇心强的人才会有这种需求,比如我。
当我使用zcrack.bat挂载大字典时,速度太慢了,于是我想找一个Python版本的实现。这种需求非常常见,以至于互联网上有很多现成的工具可供使用,比如:
Usage: zcrack.exe <zipfile> <passfile> [m]
zcrack.exe some_0.zip password.txt
zcrack.exe some_1.zip password_2.txt m
zcrack.exe some_2.zip password_2.txt m
这些工具都可以尝试一下,虽然我没有使用过它们,但当你自己编写工具时,可以参考它们,尤其是最后一个zipdump。
我提供了一个可以在命令行中执行的zcrack.exe版本,使用方法如下:
命令行参数依次指定待穷举的ZIP文件和密码字典文件;如果在尾部指定了m,就会实时显示穷举的进度,快速变化的数字是字典文件的行号,也可以不指定m。如果成功找到密码,会显示:
https://gofile.io/d/2MtnkI
readme.txt // 使用说明,可删除
zcrack.exe // 主程序
zcrack.sha256 // 主程序的SHA256,可删除
Cryptodome // 依赖库,可用自己的
password.txt // 小字典,可用自己的
password_2.txt // 大字典,可用自己的
some_0.zip // 测试用例,可删除
some_1.zip // 测试用例,可删除
some_2.zip // 测试用例,可删除
(count, pass),其中pass是找到的密码,count是pass在字典文件中的行号。
这个临时下载链接有效期为7天,链接如下,过期后将不再提供:
zcrack.7z中包含以下内容:
对于我这种分发方式来说,zcrack.sha256没有意义,此外,Cryptodome目录下还有一堆pyd文件,但我还是提供了SHA256哈希值,避免争议。
08928239e27cc523c7abcf01a44d5560dcae9c6993e57ca56bbca6fe2cdb0472 zcrack.exe
password.txt要求是ANSI/DOS格式,以\r\n换行,支持GB2312/GBK/GB18030的汉字密码,不支持UTF-8的汉字密码,也不支持UNIX格式的单个\n换行。如果password.txt不符合要求,将导致穷举失败,务必将其转换为工具所要求的格式。
这个工具只适用于特定的电子书ZIP场景,不是通用的ZIP密码穷举工具,而且大字典也是有限的,没有”brute force without wordlist”模式,如果跑不出来,就是跑不出来。
john可以挂载字典来破解ZIP密码,支持汉字密码,但要使用1.9.0版本以上的,速度还可以。至于hashcat之类的工具,我就不推荐了,它们太重了,多大点事儿啊。
zcrack.exe是用Python编写的,没有加壳,只是为了方便使用,打包成了EXE文件。如果对网络安全行业感兴趣的朋友们,可以进行逆向工程并反编译出Python源代码。