工具简介


ZipCracker是一款由Hx0战队开发的高性能多并发破解工具,专为破解密码保护的Zip文件而设计。它采用CRC32碰撞、字典攻击及掩码攻击等方式猜测Zip文件的明文或密码,并能成功提取其中的内容。这款工具具备识别"伪加密"Zip文件的能力,并能自动进行修复。因此,它非常适合在CTF比赛中使用。

PS:

1.程序会自动检查加密压缩包中的文件大小。对于小于6字节的文件,系统将提示用户是否希望通过CRC32哈希碰撞来尝试破解。

2.程序内置了6,000个常用密码词典,并自动生成0至6位纯数字的密码列表。此外,用户还可以使用自己的定制字典,即使该字典包含数亿条目的大字典,程序也能高效处理。

3.程序能够根据运行环境自动调整最优线程数量,确保破解过程既快速又稳定。

4.程序不仅支持对采用传统加密算法的压缩包进行解密尝试,还具备对AES加密压缩包的解密能力。

下载工具


点击下载工具

使用方法


1.伪加密识别及修复
python3 ZipCracker.py test01.zip

在这里插入图片描述

伪加密原理

zip伪加密是在文件头的加密标志位做修改,进而再打开文件时识被别为加密压缩包。

加密标识位:

在Zip文件的加密标识位中,奇数和偶数的区别在于最低位(least significant bit)的值。这个位决定了文件是否被加密。
如果加密标识位的最低位是奇数(值为1),表示文件被标记为加密。
如果加密标识位的最低位是偶数(值为0),表示文件未被标记为加密。
这个最低位的值是用来模拟Zip文件的伪加密。实际上,伪加密并不提供真正的数据保护,只是通过修改标志位来表示文件已经加密。

ZIP压缩源文件数据区:

50 4B 03 04:这是头文件标记(0x04034b50) 
14 00:解压文件所需 pkware 版本 
00 00:全局方式位标记(有无加密) 
08 00:压缩方式 
5A 7E:最后修改文件时间 
F7 46:最后修改文件日期 
16 B5 80 14:CRC-32校验(1480B516) 
19 00 00 00:压缩后尺寸(25) 
17 00 00 00:未压缩尺寸(23) 
07 00:文件名长度 
00 00:扩展记录长度 

伪加密修复原理

程序通过检测zip文件的加密标志位,并对标识位进行适当修改,最后测试修改后的压缩包软件是否可以正常解压即可。

修复前的伪加密文件:test01.zip

在这里插入图片描述

修复后的正常无加密的文件:test01.zip

在这里插入图片描述

2.暴力破解-内置字典
python3 ZipCracker.py test02.zip

3.暴力破解-用户自定义字典

我们为您提供了2种用户自定义字典的加载方式:

  1. 若您仅想加载单个字典,您可以选择直接加载您的自定义字典,如下图所示:
python3 ZipCracker.py test02.zip YourDict.txt

在这里插入图片描述

  1. 若您有多个字典,也可以选择直接加载您的字典所在目录,脚本会依次加载目录下所有字典,直到找到最终密码,如下图所示:
python3 ZipCracker.py test02.zip YourDictDirectory

在这里插入图片描述
在这里插入图片描述

4.暴力破解-CRC32碰撞
python3 ZipCracker.py test03.zip 

在这里插入图片描述
4.CRC32碰撞原理

CRC32是一种冗余校验码,它可以生成一个32位的校验值,用于验证数据的完整性。在文件中,比如PNG图像或ZIP压缩包中,CRC32被用作校验文件的完整性。

由于CRC32计算校验值时会考虑数据块中的每一位,即使只有一位发生变化,CRC32值也会完全不同。这导致了基于CRC32的攻击方法。

在攻击中,我们利用以下条件进行操作:

目标文件的内容很小,通常只有几个字节。 加密密码很长。
我们不是直接尝试破解压缩包的密码,而是尝试破解原始文件的内容,通常是可见的字符串。通过猜测和尝试不同的字符串,我们可以生成不同的CRC32值,然后与目标文件的CRC32值进行比较,以获取所需的信息。

这样,我们可以绕过对加密密码的破解,直接攻击文件内容,从而达到获取目标信息的目的。这种攻击方法利用了CRC32的特性,即使只修改了文件内容的一小部分,CRC32值也会完全改变,从而使我们能够尝试不同的字符串来获取所需的信息。

5.暴力破解-掩码攻击

当您已知密码的部分结构时(例如,公司名+年份),掩码攻击是最高效的破解方式。您可以使用特殊占位符来定义密码的格式,从而极大地缩小密码搜索范围。

掩码占位符规则:

占位符代表的字符集
?d数字 (0-9)
?l小写字母 (a-z)
?u大写字母 (A-Z)
?s特殊符号 (!@#$等)
??问号 ? 自身
python3 ZipCracker.py test04.zip -m '?uali?s?d?d?d'

上述命令会尝试破解密码结构为: 一个大写字母 + ‘ali’ + 一个特殊符号 + 三个数字 (例如 Kali@123, Bali#756 等) 的ZIP文件。

在这里插入图片描述


本工具仅提供给安全测试人员进行安全自查使用用户滥用造成的一切后果与作者无关使用者请务必遵守当地法律 本程序不得用于商业用途,仅限学习交流。


Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐