CTF - MISC - 关于zip破解的几种方式
## 前言
被压缩包虐得欲仙欲死,按照惯例,应当予以记录,以便后续的复习和使用。
## 1. zip属性隐藏
## 2. 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 文件注释长度
如果是 伪加密 ,我们可以用16进制编辑器添加文件头或文件尾,即可修复zip
有没有工具可以简便的识别这种情况?
使用检测伪加密的ZipCenOp.jar,解密后如果能成功打开zip包,则是伪加密,否则说明思路错误
解密例子:
java -jar ZipCenOp.jar r xxx.zip
加密例子:
java -jar ZipCenOp.jar e xxx.zip
## 3. 弱密码(暴力破解)
这个就不多思考了,上工具
Windows下一般使用的是ARCHPR
掩码攻击就是通过已知密码的某几位进行构造,例如 在界面中 范围-掩码 ,构造 ??T 进行爆破
Linux下使用pkcrack
## 4. 明文攻击()
大致原理:
当你不知道一个zip的密码,但是你有zip中的一个已知文件(文件大小要大于12Byte)或者已经通过其他手段知道zip加密文件中的某些内容时,因为同一个zip压缩包里的所有文件都是使用同一个加密密钥来加密的,所以可以用已知文件来找加密密钥,利用密钥来解锁其他加密文件
本文来自博客园,作者:ardyh,转载请注明原文链接:https://www.cnblogs.com/ardyh/p/13838470.html