一、前言

你加密的压缩包比你想象中的还不安全!

ZIP已知明文攻击深入利用(选择明文攻击与已知明文攻击的主要区别是什么)

哪怕对于信息安全人员来说,很多时候给压缩包加上一个密码就以为的是万事大吉了。但事实是,很多情况下,你的加密压缩包,远远没有你想象的安全。

二、内容概要

以往进行ZIP已知明文攻击,通常需要一个完整的明文文件。 而本文讨论的攻击方式只需要知道加密压缩包内容的12个字节,即可进行攻击破解降低了已知明文的攻击难度。同时,结合各类已知的文件格式,更扩宽了ZIP已知明文攻击的攻击面。

三、正文

3.1 ZIP已知明文攻击的一般利用

以往出现在网络安全竞赛中的已知明文攻击考点,或者大部分网上的文章,都需要知道加密zip文件中的一个完整明文文件并且要求明文以相同的标准被压缩,这才有可能会攻击成功。

其实传统的已知明文攻击要成功需要三个条件,在此我将条件列出来:

完整的明文文件

明文文件需要被相同的压缩算法标准压缩(也可理解为被相同压缩工具压缩)

明文对应文件的加密算法需要是 ZipCrypto Store

第三点是我们实际应用中常常会被忽略的。因竞赛中遇到的题目,都是提前设置好的。

· AES256-Deflate/AES256-Store加密的文件不适用于明文攻击。

ZIP的加密算法大致分为两种ZipCrypto和AES-256,各自又分Deflate和Store。

ZipCrypto Deflate

ZipCrypto Store

AES-256 Deflate

AES-256 Store

ZipCrypto算是传统的zip加密方式。只有使用ZipCrypto Deflate /Store才可以使用 ZIP已知明文攻击进行破解。

传统的ZIP已知明文攻击利用,windows下可以使用AZPR,linux下可以使用pkcrack。

3.2 ZIP已知明文攻击的深入利用

本文要探讨的攻击方法并不需要知道压缩文件中完整的明文,只需在已知加密压缩包中的少部分明文字节时即可进行攻击破解。而各类文件都有其自身固定的文件格式,结合这类格式,极大扩展了ZIP明文攻击的攻击面。具体要求如下:

至少已知明文的12个字节及偏移,其中至少8字节需要连续。

明文对应的文件加密方式为ZipCrypto Store

该方法对于ZIP加密的算法有要求,明文对应的文件加密方式需要为ZipCrypto Store。经测试,Winrar(v5.80)、7zip(v19.00)默认状态下加密使用的就是AES256算法,直接排除。360压缩(v4.0.0.1220)、好压(v6.2)使用的是ZipCrypto,不固定使用Store或Deflate(如果要固定使用ZipCrypto Store算法加密,可以在压缩的时候指定压缩方式为“存储”)。

以下破解用到的压缩包,都是经360压缩或者好压加密打包的。

3.2.1 使用到的工具项目bkcrack: s/1fuuHYFHSU2e0eIAjO7FLfw 提取码:t2y4

4.4 参考文章

2018/10/zip_crack/ p/129855130

文章转自:FreeBuf.COM - 光通天下无患实验室 BlusKing