misc压缩文件处理
1、伪加密
如果压缩文件是加密的,或文件头正常但解压缩错误,首先尝试文件是否为伪加密。zip文件是否加密是通过标识符来显示的,在每个文件的文件目录字段有一位专门标识了文件是否加密,将其设置为00表示该文件未加密,如果成功解压则表示文件为伪加密,如果解压出错说明文件为真加密
操作方法:使用winhex或010editor,找到文件头第九第十个字符,将其修改为0000. (其中50是第一个字符)
1、使用winhex打开文件搜索十六进制504B0102,可以看到每个加密文件的文件头字段
2、从50开始,第九个第十个字符为加密字段,将其设置为0000即可变为无加密状态
1 |
|
3、RAR文件由于有头部检验,使用伪加密时打开文件会出现报错,使用winhex修改标志位后如报错消失且正常解压缩,说明是伪加密。使用winhex打开RAR文件,找到第24个字节,将该字节尾数为4表示加密,0表示无加密,将尾数改为0即可破解伪加密
ZIP数据包结构
一个 ZIP 文件由三个部分组成:压缩源文件数据区+压缩源文件数据区+压缩源文件目录结束标志
压缩源文件数据区
1 |
|
压缩源文件数据区
1 |
|
压缩源文件目录结束标志:
1 |
|
2、破解压缩包密码
明文攻击指已经知道加密的zip中部分文件的明文内容,利用这些内容推测出密钥并解密zip文件的攻击方法,相比与暴力破解,这种方法在破解密码较为复杂的压缩包时的效率更高
例如:假设一个加密的压缩包中有两个文件readme.txt和flag.txt,其中flag.txt的内容时我们希望知道的,而我们拥有readme.txt的明文内容,使用上述两个文件可以进行明文攻击
1、将readme.txt的明文文件压缩,变成readme1.zip
2、打开archpr,攻击类型选择明文,明文文件路径选择readme1.zip
(使用该方法要注意:1、有一个明文文件,压缩后CRC值与加密压缩包中的文件一致 2、明文文件的压缩算法需要与加密压缩文件的压缩算法一致)
3、RAR头部故意给错
有时候给出的RAR文件的头部各个字块会故意给错导致无法识别
文件块的第三个字节为类型块,也叫头类型
头类型是0x72表示是标记块
头类型是0x73表示是压缩文件头块
头类型是0x74表示是文件头块
头类型是0x75表示是注释头块