标题: ZIP密码穷举工具zcrack使用说明 创建: 2023-12-22 20:00 更新: 2024-01-06 16:24 链接: https://scz.617.cn/misc/202312222000.txt 以前不混电子书圈,没刻意关注过这个江湖。2023年7月首次接触国内电子书圈,才 知道「读秀库」是啥,根据SS号找电子书的ZIP包。当时百度秒传还能用,下过一些 回忆录,包括《星火燎原》系列。次数多了,不时碰上ZIP有密码。对此,书圈有现 成解决方案,能找到ZIP密码穷举工具以及密码字典,小白直接用就好。我不太敢用 VirusTotal标红的工具,不是说肯定有猫腻,仅仅是习性使然。用「易语言」开发的 工具,VT标红很常见。用py2exe打包的工具,VT标红也很常见,比如zcrack,所以敢 不敢用全凭自己,愿以身试险者随意。 为防止VT误杀zcrack.7z,加个密码,即文件名本身「zcrack.7z」 起初写了zcrack.bat与zcrack.sh,调用7z进行ZIP密码穷举,此法对读秀ZIP场景, 足矣。我的小字典只有500多个密码,再慢也慢不到哪儿去。别看这么小的字典,我 自己下的读秀ZIP,从未失手过。凡事有例外,有次看别人下的读秀ZIP,小字典不够 用,只能挂大字典,zcrack.bat就太慢了。 Pdg2Pic作者马健开发过Zip2Dir.exe,它识别名为Zip2Dir.pwd的密码字典,穷举成 功后自动解压,穷举速率很快,支持GBK编码的汉字密码。 有些工具,对汉字密码支持得一塌糊涂,加载密码字典后,其中的汉字密码显示成乱 码,强行穷举,并不会成功。虽说大多数读秀ZIP未用汉字密码,但我真碰上过,比 如SS号10336213这本,《星火燎原》中的一本,Zip2Dir.exe解压无误。你可以用自 己的工具试试这本,能解,说明工具合格,不能解,赶紧扔了,啥破玩意儿。 Zip2Dir.exe缺点是不显示穷举成功的ZIP密码。绝大多数人只关心解压结果,不需要 知道穷举成功的ZIP密码,少数好奇心强的人有此需求,比如我。 john可以挂字典跑ZIP密码,支持汉字密码,不要低于1.9.0版,速率还可以。至于 hashcat这些就算了,你不嫌重型么,多大点事儿啊。 推荐用AZPR/ARCHPR穷举ZIP密码,比其他工具强。先说曾经出现过的官方下载途径: -------------------------------------------------------------------------- Advanced ZIP Password Recovery (AZPR) https://www.elcomsoft.com/download/azpr.zip Advanced Archive Password Recovery (ARCHPR) https://www.elcomsoft.com/download/archpr.zip https://download_us.elcomsoft.com/archpr_setup_en.msi -------------------------------------------------------------------------- 2005年之前叫AZPR,后来升级版叫ARCHPR。官网现已下不到azpr.zip,统统重定向到 archpr_setup_en.msi,这是ARCHPR 4.66官方安装包。 主要有三个版本: AZPR 4.0 ARCHPR 4.54.48 ARCHPR 4.66 前两个版本有注册码,第三个版本需要loader,loader会被杀软标红。对于读秀ZIP 密码破解,前两个版本足矣,但官方下载点只剩第三个版本。有VT企业账号的,可从 VT下载前两个版本官方安装包。普通人一般没有VT企业账号,可从「微步在线」下载 前两个版本官方安装包: 微步在线 威胁分析与情报共享社区 https://x.threatbook.com 「微步在线」个人账号注册登录无门槛,搜SHA256,命中后下载。 -------------------------------------------------------------------------- AZPR 4.0 SHA256 2b2bb092aac16c89c8add6b35843bfb00781ccb0bbe56979e58c167a18c6548b SN 00003112193920061941FFS2QECMAQQUJWMH ARCHPR 4.54.48 SHA256 a0132b1514481aeea254fdc6ce9e7e9c59196810bdcf671e30a6b72990c76937 SN ARCHPRP-GSVMT-66892-GKVMB-52992 -------------------------------------------------------------------------- 这两个版本安装包都有ElcomSoft的数字签名,可在右键属性中查看。大陆地区有很 多野鸡汉化破解版,想找原始安装包挺费劲儿,相比之下,上述获取方案安全可靠无 门槛。 只是挂字典穷举读秀ZIP密码,不注册、不破解AZPR/ARCHPR也无所谓,直接从官网下 载ARCHPR 4.66安装包,保持试用状态,无问题。但我推荐从「微步在线」下载 AZPR 4.0或ARCHPR 4.54.48安装包,并用序列号完成注册。总之,不要去找野鸡站点 提供的各种汉化破解,没必要。 AZPR 4.0自带官方多语言支持,有原生中文界面,虽然这也是不必要的。后两个版本 官方只有英文界面,这不应该成为障碍,你有这么小白吗。三个版本都支持GB2312/ GBK/GB18030汉字密码,用读秀ZIP测过,穷举速率喜人,以近5万的password_2.txt 为字典,穷举some_1.zip,秒破,那个密码在第45000行附近。 AZPR/ARCHPR虽然是安装版,但实际上安装后复制走再卸载也能用,有绿色便携随身 带U盘爱好的,完全可以这样干。 一般来说,读秀ZIP密码穷举用大字典password_2.txt足矣,但确实有解压密码不在 其中且暂时未知的读秀ZIP,此时可用「ZIP已知明文攻击」(即ZIP CRC碰撞攻击)获 取三组Key,完成解压。 简单地讲,用ZipCrypto加密保护的ZIP,若其中某个文件原始内容已知,可通过CRC 碰撞技术还原该ZIP解压密码中间状态,以三组4字节Key的形式呈现。可在不知ZIP原 始解压密码的情况下,用这三组Key解密ZIP、设置新Key、设置新密码。 AZPR/ARCHPR三个版本都支持「ZIP已知明文攻击」,此功能需要注册或破解,否则不 显示还原后的三组Key。 参看: -------------------------------------------------------------------------- A known plaintext attack on the PKZIP stream cipher https://link.springer.com/chapter/10.1007/3-540-60590-8_12 https://github.com/kimci86/bkcrack -------------------------------------------------------------------------- 第一个URL是「ZIP已知明文攻击」数学原理,bkcrack是相应工具,有源码,也有预 编译好的PE,是个Windows工具,理论上可以移植到Linux,我没试过。 虽然AZPR/ARCHPR支持「ZIP已知明文攻击」,但破解速率远不如bkcrack,限制也较 多,并不推荐。要干这事,首推bkcrack。 网络安全圈许多年轻人喜欢打CTF,ZIP CRC碰撞攻击是常见题型之一。打个CTF有个 毛刺激,现实世界里的真实需求等着验你的成色,而这次不再是精心设计的游戏。 读秀库中SS号为14616368的书,MD5是"1c89d7a5ca0adb7c80ddb28e165f7831"。该书 解压密码未知,不在公开流传的读秀字典中,需进行ZIP包CRC碰撞攻击,有解。网络 安全行业的书友,可以试试这本书,别抄别人现成答案。提问: Name cov001.pdg Size 371857 CRC32 060ebdda SHA256 ? 没有更多其他信息。CTF降难度了,给了斗大的明文提示,那有啥意思。真实世界没 有斗大的明文提示,需要自己去找,连题目本身都是,不会送到嘴边。有强烈好奇心 的,可以一试。 互联网上还有许多穷举ZIP密码的Python实现,比如: https://www.geeksforgeeks.org/how-to-brute-force-zip-file-passwords-in-python/ https://github.com/Korozin/ZIP-Password-Cracker/blob/main/PyZIP-Crack-CLI.py https://didierstevens.com/files/software/zipdump_v0_0_26.zip 这几个都可以试试,我没用过它们,但你要自己写工具时,可以参考,尤其是最后这个 zipdump。 zcrack.7z中有如下内容: -------------------------------------------------------------------------- readme.txt // 使用说明,可删除 zcrack_1.exe // 主程序1,挂密码字典 zcrack_1.sha256 // 主程序1的SHA256,可删除 zcrack_2.exe // 主程序2,挂Key字典 zcrack_2.sha256 // 主程序2的SHA256,可删除 Cryptodome\ // 依赖库,可用自己的 password.txt // 小字典,可用自己的 password_2.txt // 大字典,可用自己的 password_3.txt // 其他字典 key.txt // Key字典 some_0.zip // 测试用例,可删除 some_1.zip // 测试用例,可删除 some_2.zip // 测试用例,可删除 -------------------------------------------------------------------------- 两个主程序均在cmd中使用: Usage: zcrack_1.exe [m] zcrack_1.exe some_0.zip password.txt zcrack_1.exe some_1.zip password_2.txt m zcrack_1.exe some_2.zip password_2.txt m Usage: zcrack_2.exe [m] zcrack_2.exe some.zip key.txt zcrack_2.exe some.zip key.txt m zcrack_1.exe命令行参数依次指定待穷举ZIP文件、密码字典;若尾部指定m,实时显 示穷举进度,快速变化的数字是密码字典的行号,可以不指定m。若成功找到解压密 码,显示: (count, pass) pass就是解压密码,count是密码字典行号。 zcrack_2.exe命令行参数依次指定待穷举ZIP文件、Key字典;若尾部指定m,实时显 示穷举进度,快速变化的数字是Key字典的行号,可以不指定m。若成功找到三组Key, 显示: (count, key) key就是三组Key,bkcrack用三组Key可以设置新解压密码,count是Key字典行号。 zcrack_1.exe没啥意思,当时没测过AZPR/ARCHPR,冒昧自己实现了一版,纯属吃饱 了撑得,zcrack_2.exe有点用。某些读秀ZIP靠CRC碰撞获取三组Key,但未能还原原 始解压密码,比如长度太长、密码中有汉字等等,而这些Key实际等价于解压密码, 大概率有其他读秀ZIP使用同样的Key或解压密码(只是未知);每次精心构造已知明文, 不如弄个Key字典先跑一遍,无命中时再进行CRC碰撞攻击。正是基于这种思路,开发 zcrack_2.exe,这是bkcrack和AZPR/ARCHPR所不具备的特色功能。Key字典目前只有 几条,但我们可以分布式收集整理扩容,将那些碰撞成功但无法还原原始密码的Key 都加进来,不就是新的Key字典了吗,欢迎分享你手上的Key。 记录两个SS号,其密码如下,可作为测试用例: 14447210.zip // zy^^^***666888 10336213.zip // 风云07E319B496B3467&%CFE14AF3 记录两个SS号,其Key如下,可作为测试用例: 14616368.zip // a28e1ec6 0d5a5657 3f26c8b0 沉思录 14625615.zip // c0a0e369 bc34ab45 2ee23d62 许竹筼先生出使函稿 就我这种分发方式,zcrack_1.sha256、zcrack_2.sha256毫无意义,Cryptodome目录 下一堆pyd呢,但我还是放个SHA256,别较劲。 -------------------------------------------------------------------------- zcrack_1.exe size 8622600 sha256 7e0e8a3c6d231de4fc35b893e2f3c953a9024c150f08008a3c21d24bcf6208f6 zcrack_2.exe size 8619616 sha256 3390096e6628900b1681b77ad7e1e9d11264b40800fb94ca966949e6fdf58145 -------------------------------------------------------------------------- password.txt是ANSI/DOS格式,以\r\n换行,支持GB2312/GBK/GB18030汉字密码,不 支持UTF-8汉字密码,不支持UNIX格式单个\n换行。不符要求的password.txt会导致 穷举失败,务必转成工具所要求的格式。 key.txt格式要求同password.txt,内容有别,每行是三组Key,形如: -------------------------------------------------------------------------- 43725bc0 285f4ac7 515f5c92 5a883283 9548eeea 005702a1 6f476535 5bc746ec 2d645c6d 78086274 76a801ca 12b71604 7fe76133 e7b6388d dc335ebb a28e1ec6 0d5a5657 3f26c8b0 a6c00649 9aa0871b 264405f1 a7572965 6c92f150 ec3b1225 aaa290dc da6cfa8a b95d8cdb b6a65138 7a4de6d5 1398a16d c0a0e369 bc34ab45 2ee23d62 d5d71a3a 2716780e 761e2128 fca6433b 210e18f6 2ac8bb32 -------------------------------------------------------------------------- 这些Key主要是若干TG网友分享的,有几个是自己跑的,书不是我要的,只是当成测 试用例。若谁跑出这些Key的原始密码,请及时分享,可从Key字典移除,并添加至密 码字典。只用Key字典也无所谓,就多一个bkcrack设置新密码的手续而已。 有Key之后用bkcrack设置新密码(newpass)的示例: bkcrack.exe -C 14616368.zip -k a28e1ec6 0d5a5657 3f26c8b0 -U 14616368_newpass.zip newpass 虽然不知14616368.zip原始解压密码,但解压14616368_newpass.zip即可。 zcrack只应对读秀ZIP场景,非通用ZIP密码穷举工具,大字典很有限,没有"brute force without wordlist"模式,跑不出来就是跑不出来。 zcrack是用Python写的,没有加壳,只是为了便携使用,打包成EXE。网络安全行业 的书友们,有兴趣者,可逆向工程并反编译出Python源码。 https://scz.617.cn/misc/zcrack.7z zcrack.7z size 6885617 sha256 8b380c125e660f33692a8f8925a1c6d788ea6643e862c7df3ea3d85cb3202f5b