我们先从最简单的开始讲起,可能很多人没有去注意文件属性一栏,往往有时候,加密者会把密码放在属性里面,例如下图:
我们可以看到,这个Zip压缩文件的密码就是www.cnblogs.com了~
02.Zip伪加密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:扩展记录长度 6B65792E7478740BCECC750E71ABCE48CDC9C95728CECC2DC849AD284DAD0500 压缩源文件目录区: 50 4B 01 02:目录中文件文件头标记(0x02014b50) 3F 00:压缩使用的 pkware 版本 14 00:解压文件所需 pkware 版本 00 00:全局方式位标记(有无加密,这个更改这里进行伪加密,改为09 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:文件名长度 24 00:扩展字段长度 00 00:文件注释长度 00 00:磁盘开始号 00 00:内部文件属性 20 00 00 00:外部文件属性 00 00 00 00:局部头部偏移量 6B65792E7478740A00200000000000010018006558F04A1CC5D001BDEBDD3B1CC5D001BDEBDD3B1CC5D001压缩源文件目录结束标志:
50 4B 05 06:目录结束标记 00 00:当前磁盘编号 00 00:目录区开始磁盘编号 01 00:本磁盘上纪录总数 01 00:目录区中纪录总数 59 00 00 00:目录区尺寸大小 3E 00 00 00:目录区对第一张磁盘的偏移量 00 00:ZIP 文件注释长度我们可以进行大胆的猜想:
如果把一个zip文件的文件头或者加密标志位进行适当修改,那就可能会改变文件的可读性~
我们可以用16进制编辑器添加文件头或文件尾,即可修复zip。
上面这种方法相对比较麻烦,不太容易操作,在Mac OS及部分Linux(如Kali)系统中,可以直接打开伪加密的zip压缩包,此时我们希望有种简便而通用的方法该怎么办呢?
我们推荐使用下面这种方法:
使用检测伪加密的ZipCenOp.jar,解密后如果能成功打开zip包,则是伪加密,否则说明思路错误
ZipCenOp.jar的下载我已经传到了本地,点击下载即可~
下面举个例子,如下是个被加密的文件,理由很简单,文件夹后面跟了一个*~
使用ZipCenOp.jar(需java环境)使用方法:
java -jar ZipCenOp.jar r xxx.zip我们对其使用如上命令进行解包,得下图所示:
我们再看下这个文件:
发现文件夹后面跟的*消失了,说明这个文件就是伪加密文件~
当然啦,我们也可以对Zip文件进行伪加密~
java -jar ZipCenOp.jar e xxx.zip 03.暴力破解顾名思义,就是逐个尝试选定集合中可以组成的所有密码,知道遇到正确密码~
而字典攻击的效率比爆破稍高,因为字典中存储了常用的密码,因此就避免了爆破时把时间浪费在脸滚键盘类的密码上~
而如果已知密码的某几位,如已知6位密码的第3位是a,那么可以构造 ??a??? 进行掩码攻击,掩码攻击的原理相当于构造了第3位为a的字典,因此掩码攻击的效率也比爆破高出不少~
对这一类的zip问题,Windows下我使用的是ARCHPR~
点击开始,进行爆破即可~下面是个演示,就花了4s的时间爆破出密码是MIT~
而所谓的字典攻击其实就是在字典选择合适的情况下,用很短的时间就能找到密码~如果需要字典的朋友可以私聊滴滴我,我可以发给你~
实例如下所示:
而掩码攻击就是通过已知密码的某几位进行构造,如下示例我们构造了??T进行爆破,仅花了81ms就破解了~
04.明文攻击明文攻击是一种较为高效的攻击手段,大致原理是当你不知道一个zip的密码,但是你有zip中的一个已知文件(文件大小要大于12Byte)或者已经通过其他手段知道zip加密文件中的某些内容时,因为同一个zip压缩包里的所有文件都是使用同一个加密密钥来加密的,所以可以用已知文件来找加密密钥,利用密钥来解锁其他加密文件~
此时我们可以尝试用ARCHPR或者pkcrack进行明文攻击~
更新明文攻击这部分文档:记一道明文破解的漫长斗争史 - Angel_Kitty - 博客园
举个例子,下载