工具简介


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

PS:

1.程序会自动检查加密压缩包中的文件大小,若小于6字节,会主动询问用户是否使用CRC32进行Hash碰撞。

2.程序自带6000个常用的爆破字典,同时还会生成0-6位的纯数字字典。

下载工具


点击下载工具

使用方法


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.暴力破解-用户自定义字典
python3 ZipCracker.py test02.zip MyDict.txt

在这里插入图片描述

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

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

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

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

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

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

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


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


Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐