关于加密状态的zip压缩包

电子说

1.2w人已加入

描述

 

前言

在网上看到了几篇有意思的文章,感觉能和自己之前在打CTF比赛时的知识相结合,遂自己动手复现一下。

01

准备

打开该URL:https://portal.myzyxel.com/my/firmwares,发现需要登录:

Linux

使用临时邮箱注册就可以解决问题,毕竟你也不想让自己常用的邮箱变为垃圾邮件回收站吧?注册后继续访问该网站,选择如下图所示的版本号:

Linux

点击后面的Download下载文件,下载后对zip压缩包解压unzip -d ./firmware firmware.zip,可以得到:

Linux

现在我们的目标是解压出该设备的文件系统(file-system),所以当前的目标为470AALA0C0.bin,使用binwalk查看信息:

Linux

基本为1,这表明该固件处于加密或压缩状态;使用binwalk 470AALA0C0.bin查看其状态:

Linux

该bin文件实际上是处于加密状态的zip压缩包,可以使用file命令验证一下:

Linux

同样需要注意的是解压出来的不仅只有bin文件,还有一些其他文件,这些文件可能对我们之后的解密470AALA0C0.bin带来一些帮助:

Linux

分别计算这些文件的CRC32校验值:

Linux

将470AALA0C0.bin拖拽到Windows中,使用7-zip打开,逐级目录翻找,最终发现./db/etc/zyxel/ftp/conf目录下的system-default.conf与前面的470AALA0C0.conf校验值相同:

Linux

这说明这两个文件完全相同,所以我采用明文攻击的手段来解包该加密的bin文件

02

解包方式1 — 明文攻击

虽说明文攻击时现在CTF中一种常见的杂项题目类型,但是在这里我还是要强调几个问题,这里就以上面加密的system-default.conf为例吧:

Linux

明文攻击成功需要同时满足三个条件,缺一不可:

用户拥有压缩包中已知的明文文件(部分或全部)。

明文文件在攻击前需要与对应的加密文件使用相同的压缩算法压缩成压缩包(可以简单的认为是使用相同的压缩工具),就比如说密文system-default.conf使用的压缩算法为ZipCrypto Deflate:Maximum

密文文件的压缩算法需要是ZipCrypto Store/ZipCrypto Deflate

密文文件的加密方式不能是AES,即不能是AES256-Deflate / AES256-Store,只能是ZipCrypto Deflate / ZipCrypto Store.

 

下面我们来说一下具体的破解过程,我一开始尝试的是之前一直在使用的ARCHPR 4.54 Professional Edition:

LinuxLinux

但是该工具无法识别,就算文件扩展名改为.zip也不行,可能因为ARCHPR是很老的缘故了,不支持现在使用最新算法的加密包。仔细想想我们为什么一定非要用Windows下的ARCHPR进行破解呢?从加密包可以知道**system-default.conf**在Unix系统上被压缩(极有可能为Linux系统上的压缩软件),因此我们转而使用另外一款工具pkcrack。  

      审核编辑:彭静
打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分