【技术】通过「已知明文攻击」破解加密的 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
找个T楼帖子来个实战讲解吧,更容易看懂 已收藏,好帖帮顶。 申请楼主报销眼药水 :lol好贴绑定 1. 建议使用图床;
2. @HOH 出来受死。 有点东西
虽然用不上 我明白了。
postimg 从国内访问原来是缩略图,而从海外访问是高清图。
难怪一直有人说图片很糊,用这么久都没发现这个坑。
我更换一下服务商。 才知道 postimg 劣化了中国大陆的服务。 :loveliness:差不多看懂了,感谢楼主科普
还好我的提楼帖按照每天论坛的发帖数来的
页:
[1]