拿到手就是一个加密了的压缩包
里面有一个flag.png文件
像这种没有任何提示的情况下
只有三种选择:
暴力破解,效率低而且不跑个一年半载大概率拿不到口令
把文件拖进010editor查看,发现这是真加密所以这条路也断了
所以我们尝试一下zip明文攻击~
使用7z,查看一下该压缩包的压缩算法:ZipCrypto Store
这种传统的压缩算法满足明文攻击的前提条件
但如果是:
AES-256 Deflate
AES-256 Store
这两种压缩算法,那明文攻击这条线也没了
明文攻击,通常需要拥有一个与压缩包内一样的文件才能完成
但是我们这里利用ZipCrypto Store的特性,只需要知道加密压缩包内容的12个字节
就可以对该压缩包进行明文攻击破解
而该压缩包内的flag.png的12个字节的文件头是固定的与其他任何png文件一样
PNG文件十六进制头:
89 50 4E 47 0D 0A 1A 0A 00 00 00 0D 49 48 44 52
利用此点,我们创造一个只有这个文件头的png文件,就可以进行明文攻击
echo 89504E470D0A1A0A0000000D49484452 | xxd -r -ps > png_header
xxd -r -ps:将16进制数转换成ASCII文本
效果如下:
接下来的操作,需要提前安装好bkcrack工具
将加密的压缩包和png_header放在同一目录下
执行以下代码:
time bkcrack -C file.zip -c flag.png -p png_header -o 0 > 1.log&
再执行以下命令,查看破解进度和结果:
tail -f 1.log
如此便获得了三段密钥:92802c24 9955f8d6 65c652b8
接下来就是利用三段密钥,把flag.png文件取出来
bkcrack -C file.zip -c flag.png -k 92802c24 9955f8d6 65c652b8 -d 1.png
打开该图片进行查看:
文章借鉴引用: ZIP已知明文攻击深入利用 - FreeBuf网络安全行业门户