复现-两个密码解密同一个zip文件

前提说明:该姿势并无安全问题,短密码生成的前提是知道原密码(即文中的长密码)

前景提要

Positive Technologies 的网络安全研究员 Arseniy Sharoglazov 近日在社交平台分享了一个简单的实验并指出,加密的 ZIP 文件可能存在两个正确的密码,并且都可以提取出相同的结果。

加密使用长密码:Nev1r-G0nna-G2ve-Y8u-Up-N5v1r-G1nna-Let-Y4u-D1wn-N8v4r-G5nna-D0sert-You

解密使用短密码:pkH8a0AqNbHcdw8GrmSp

漏洞复现

使用以下命令创建一个x.zip的加密文件,内容为/etc/passwd

 7z a x.zip /etc/passwd -mem=ASE256 -p

使用以下内容作为密码:

Nev1r-G0nna-G2ve-Y8u-Up-N5v1r-G1nna-Let-Y4u-D1wn-N8v4r-G5nna-D0sert-You

确认目录下不存在同名文件

尝试查看x.zip文件:

使用以下命令解压:

7z x x.zip

使用以下内容作为密码:

pkH8a0AqNbHcdw8GrmSp

查看解密文件:

成功用pkH8a0AqNbHcdw8GrmSp解密出用Nev1r-G0nna-G2ve-Y8u-Up-N5v1r-G1nna-Let-Y4u-D1wn-N8v4r-G5nna-D0sert-You加密的文件。

用原密码也是正常解密

漏洞分析

在启用 AES-256 模式生成受密码保护的 ZIP 存档时 ,如果密码太长,ZIP 格式会使用 PBKDF2 算法并对用户提供的密码进行 hash 处理。在这种情况下,这个新计算的 hash 将会成为文件的实际密码。太长是指超过 64 个字节(字符)。

当用户试图提取文件,并输入一个超过 64 字节的密码时,用户的输入将再次由 ZIP 应用程序进行 hash,并与正确的比较密码(现在本身就是一个 hash)。如果匹配,将可以成功进行文件提取。

示例中使用的替代密码 pkH8a0AqNbHcdw8GrmSp 实际上是较长密码 SHA-1 hash 的 ASCII 表示。Nev1r-G0nna-G2ve-... 的 SHA-1 checksum = 706b4838613041714e62486364773847726d5370。此校验和在转换为 ASCII 时产生:pkH8a0AqNbHcdw8GrmSp。

但是值得注意的是,在加密或解密文件时,仅当密码长度大于 64 个字符时才会进行 hash 处理。换句话说,较短的密码在压缩或解压缩 ZIP 的任何阶段都不会出现这种情况。这也是为什么在加密阶段选择长的 "Nev1r-G0nna-G2ve-..." 字符串作为密码时,ZIP 程序设置的实际密码实际上是该字符串的 (SHA1) hash。

如果在解密阶段输入 Nev1r-G0nna-G2ve-...,它将被 hash 并与之前存储的密码(即 SHA1 hash)进行比较。但是,在解密阶段输入较短的 “pkH8a0AqNbHcdw8GrmSp” 密码将使应用程序直接将此值与存储的密码(也就是 SHA1 hash)进行比较。

更多的技术见解可参见 Wikipedia 上 PBKDF2 的 HMAC collisions 小节:

https://en.wikipedia.org/wiki/PBKDF2#HMAC_collisions

“PBKDF2 has an interesting property when using HMAC as its pseudo-random function. It is possible to trivially construct any number of different password pairs with collisions within each pair.[10] If a supplied password is longer than the block size of the underlying HMAC hash function, the password is first pre-hashed into a digest, and that digest is instead used as the password"

“当使用 HMAC 作为其伪随机函数时,PBKDF2 有一个有趣的特性。可以轻松地构造任意数量的不同密码对,每对密码对都存在冲突。如果提供的密码长于底层 HMAC hash function 的块大小,则首先要将密码 pre-hashed 成一个 digest,然后将该 digest 作为密码使用。”

参考文章

https://www.ctfiot.com/64676.html

https://twitter.com/_mohemiv/status/1561044393880178689

posted @ 2022-10-24 16:02  sherlson  阅读(166)  评论(0编辑  收藏  举报