灌水王 发表于 2022-10-11 21:41:11

【技术】通过「已知明文攻击」破解加密的 ZIP 压缩包

最近有很多踢楼帖。踢楼帖一般在主帖中附带加密压缩包,内含中奖楼层,开奖时公布密码。

然而,有些压缩加密算法不安全。

本帖将介绍如何破解那些不安全的压缩包,提升大家信息安全意识。

相关帖子:https://hostloc.com/thread-1084344-1-1.html



PS,本帖不会影响既定结果,楼层已高。

友情提示

本帖内容仅供研究使用,你应当遵守所在区域的法律。

前置知识

zip 是相当古老的格式,传统上,其加密压缩时使用 ZipCrypto 算法。而 ZipCrypto 算法是弱算法,容易破解。 对于压缩包,除了蛮力攻击(暴破)外,常用的方法是已知明文攻击。
已知明文攻击,顾名思义,通过已知的部分明文,攻击其余未知的密文数据。

现在有成熟的流程和工具破解 ZipCrypto-Store 类型的压缩包。典型工具有:

rbkcrack:https://github.com/Aloxaf/rbkcrackbkcrack:https://github.com/kimci86/bkcrack


本文以 bkcrack 为例,其基本参数如下:
-C 加密的压缩包-c 压缩包里加密的文件(或提取的密文数据)-p 明文内容-k 输入密钥-o 偏移量
破解步骤

第一步,准备明文

这是已公布密码的踢楼压缩包文本。


通过此文本,我们得知明文内容规律为:
中奖楼层为<number>楼。
其中 <number> 为数字。

据此,我们可得固定前缀:
中奖楼层为
注意到文本使用 UTF-8 编码,而 UTF-8 编码下每一个汉字的长度是 3 字节。因此我们得到了 15 字节的明文数据。
新建文本文件 plain.txt,内容为上述固定前缀。


第二步,列出加密压缩包目录树

下载 bkcrack,使用以下命令列出加密压缩包的内容(注意编码问题,可能引起乱码):
bkcrack -L 中奖楼层.zip

第三步,执行攻击

使用 bkcrack 执行攻击(注意编码引起的乱码):
bkcrack.exe -C 中奖楼层.zip -c "涓妤煎眰.txt" -p plain.txt -o 0
等待 10 分钟,程序会给出压缩包密钥。注意此密钥不是压缩包密码。


第四步,提取解密后的文件

通过获取的密钥提取解密后的文件:
bkcrack.exe -C 中奖楼层.zip -c "涓妤煎眰.txt" -k "29e6a7b7 3819d3a6 e0ff480b" -d output.txt
打开 output.txt,即可取得明文文本,见题图。


工具限制

要求至少已知连续 12 个字节的明文(知道得越多破解得越快)压缩包要采用 ZipCrypto 类(如 Store)算法



安全压缩建议

使用 7z 格式,7z 格式能够加密目录树。压缩/解压软件推荐开源的 7-zip。若非要使用 Zip,加密算法建议选择 AES-256: Deflate

灌水王 发表于 2022-10-11 21:41:54

找个T楼帖子来个实战讲解吧,更容易看懂

灌水王 发表于 2022-10-11 21:42:51

已收藏,好帖帮顶。

uronstone 发表于 2022-10-11 21:43:15

申请楼主报销眼药水

卡丁车 发表于 2022-10-11 21:43:40

:lol好贴绑定

goodday 发表于 2022-10-11 21:43:53

1. 建议使用图床;
2. @HOH 出来受死。

灌水王 发表于 2022-10-11 21:44:02

有点东西
虽然用不上

x2x3x 发表于 2022-10-11 21:44:19

我明白了。
postimg 从国内访问原来是缩略图,而从海外访问是高清图。
难怪一直有人说图片很糊,用这么久都没发现这个坑。
我更换一下服务商。

灌水王 发表于 2022-10-11 21:45:01

才知道 postimg 劣化了中国大陆的服务。

灌水王 发表于 2022-10-11 21:45:17

:loveliness:差不多看懂了,感谢楼主科普
还好我的提楼帖按照每天论坛的发帖数来的
页: [1]
查看完整版本: 【技术】通过「已知明文攻击」破解加密的 ZIP 压缩包