解密dlink固件(四)

准备工作

本次我们要研究的是路由器Dlink-882的固件,下载地址在:

ftp://ftp2.dlink.com/PRODUCTS/DIR-882/REVA/,其中的zip文件就是各版本的固件。

在这里插入图片描述

加密固件发布方案

解压出来的固件版本从旧到新依次为:

FW100B07 --> FW101B02 --> FW104B02 --> FW110B02 --> FW111B01 --> FW120B06 --> FW130B10

其中下图标记的两个固件是打包在同一个zip固件包中的,这里大家应该可以察觉到,FW104B02 有点特别,而且通过名字我们也猜测到它是未加密的中间版本。
在这里插入图片描述

其中最新的版本是FW130B10,通过binwalk进行解析,会发现该固件被加密了,binwalk无法解析。

在这里插入图片描述
再来看下最早版本的固件FW100B07,使用binwalk解析是能直接提取的,没有被加密过。

在这里插入图片描述
综上,我们得知了,固件版本迭代的过程经历了固件未加密到固件加密,说明中间肯定有个中间版本(类似下图V 2.0),下图是固件从未加密到加密的升级原理图。

在这里插入图片描述

解密过程

依次将剩下固件用binwalk解析,从binwalk解析结果来看,能确定FW100B07、FW101B02、FW104B02是未加密的,而FW104B02之后的版本,FW110B02、FW111B01、FW120B06、FW130B10均是加密的,那么FW104B02就可以确定是中间版本了。
在这里插入图片描述
确定了FW104B02是中间版本后,我们大概率可以从FW104B02的固件系统中找到解密程序了,方法是在/bin和/usr/bin目录下寻找decrypt字样的程序。

这里我们选择全局搜索关键字来查找。

在这里插入图片描述
很幸运,找到了bin目录下的imgdecrypt,猜测这个就是解密程序。

对比下最早版本的FW100B07版本,/bin目录下就没有imgdecrypt程序。

在这里插入图片描述
接下来就可以分析下imgdecrypt的加密逻辑了,看下如何破解加密的固件,通过file命令,我们得知该程序是MIPS架构的可执行文件。

在这里插入图片描述

使用IDA简单看了一下,没看出啥眉目。

在这里插入图片描述
从导入表中看下函数,发现有RSA、AES,看来是较复杂的加密方式。。。

在这里插入图片描述

逆向分析不出来的话,是不是就没办法了呢?

当然不是,我们可以直接本地运行解密程序imgdecrypt,来解被加密的FW120806固件。由于该程序是mips架构的,还得借助qemu-mipsel-static模拟器来运行。

注:使用qemu-mipsel-static之前要用chroot将当前固件系统路径设置为root路径,不然会提示缺少一些系统库(找不到库路径)

下图,我们就模拟运行imgdecrypt成功了,程序用法很简单,参数提供待解密的固件路径就行了。加密成功后,用binwalk就能解析出固件的系统结构了,进而提取固件系统。

在这里插入图片描述
同样的,最新的FW130B10版本也能通过该程序进行解密,按照这个逻辑,可能Dlink的其他系列路由器也能通过imgdecrypt解密,大家可以去试一下。

在这里插入图片描述

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值