前言:
由于我自己目前在misc和取证工作中,也遇到很多压缩包的问题,我个人非常喜欢做压缩包的题目,但也会遇到伪加密问题难以破解,全网ctf教程我都看完了,但是都觉得不够具体,所以我写一篇博客,希望以最具体的,实操演示的方式,向大家说明伪加密的原理,希望与大家一起进步!
分类说明:
目前伪加密主要是分为zip和rar两种,主要是zip考的比较多,rar考的少。
为了力求真实性,我自己编辑了一个简单的原始文档,然后输入内容,分别用zip和rar制作压缩,压缩分为三种形式,正常、伪加密、10位密码真加密。我给大家展示破解办法。
ZIP部分:
这是三个压缩包,我已经帮大家做好了
然后我就先给大家用010Editor比较一下格式:
首先是正常的:
先解释第一个
50 4B 03 04:这是头文件标记(0x04034b50)
14 00:解压文件所需 pkware 版本
00 00:全局方式位标记(有无加密)
然后是第二个
50 4B 01 02:目录中文件文件头标记(0x02014b50)
3F 00:压缩使用的 pkware 版本
14 00:解压文件所需 pkware 版本
00 00:全局方式位标记(有无加密,这个更改这里进行伪加密,改为09 00打开就会提示有密码了)
我们比较一下伪加密的:
看第一个:
这里变成了01 00 (这个地方表示了确实真实被加密了)、
然后看第二个:
最后变成了00 09 (表示数据被伪加密了)
最后我们比较一下真实被10位数密码加密的:
第一位:
这里和伪加密一样,还是01 00
第二位:
变成 50 4B 01 02 3F 00 14 00 01 00 (这里伪加密是09 00 这个是和伪加密的区别)
然后第二个区别是:真实加密10位密码之后,真实的内容看不见了,而且数据区变大了一点。
现在我们就可以总结规律了:
正常的文件头部分:00 00 目录部分:00 00
伪加密文件头:01 00 目录:09 00
真实加密 :01 00 目录:01 00
但是并不是所有的伪加密都是这么典型的!
比如实战中就会出现很多其他的伪加密,这个就是超出例子范围,但是万变不离其宗
接下来讲对zip伪加密的破解办法
破解办法:
1:手工改回来:
将伪加密的01 00 和00 09改回来
就可以成功打开。
2:采用软件
命令
java -jar ZipCenOp.jar r xxx.zip 解密
java -jar ZipCenOp.jar e xxx.zip 伪加密
虽然修复完了之后好像还是没什么用
拖进去一看发现没有任何改变,我也很奇怪,感觉这个修复真的没什么用,文件结构一样
为了搞清楚原理,我决定用这个伪加密一下看课是什么样子的
发现加密没有,加密完还是打得开,干了个寂寞!
然后我发现用这个软件加密也是没用的,真是垃圾!!!
3:kali
用binwalk-e 无视伪加密
但是在这里并没有什么用,还是失败
主打还是一个手搓,鉴于rar考的少,我觉得也没什么好讲的,就不写了,虽然有点虎头蛇尾,但是就这样吧,我自己搞懂了