前段时间一直在忙,忙考试忙着复习web,所以趁这个晚上将前几天第一次尝试固件解密记录下来,方便以后的自我学习
DIR-819版本如截图
将固件下载到本地后,发现binwalk无法解析这个固件
于是我查看他的熵值
很明显改固件存在加密
因为我才刚刚接触iot这个方向,所以碰到被加密的固件第一时间想着跑路,但是不知道为什么在最近这段时间D-link官网获取的路由器固件好像都被加了密
所以在隔了一段时间后又来尝试能否进行固件解密
我所知道的绕过固件加密有以下几种:
1.在设备升级时,抓包获取固件升级的链接,去获得固件
2.寻找固件的中间版本。也就是前几个版本,通过未加密的固件去寻找解密的程序
3.通过逆向手段寻找向量表去绕过加密??
4.通过二进制文件查看器,查看文件信息,尝试寻找解密脚本
….
因为我手头上并没有这个固件,再加上,我下载了前面几个版本,发现全部存在加密,所以我只能通过去查看这个固件的特征头去进行解密
通过查看前128字节寻找特征码,然后根据这个shrs进行搜索,我们可以查看到该型号版本固件和DIR-3060和DIR-882固件存在相同加密方式,以下是dir882的同类型文件头
所以我们可以去寻找这个固件的中间版本或者解密程序,去对该型号进行相同的解密,最终我在chamd5团队的文章找到了中间件版本的下载链接(呜呜呜感谢师傅们的分享)
下载链接如下
https://support.dlink.com/resource/PRODUCTS/DIR-882/REVA/DIR-882_REVA_FIRMWARE_v1.10B02.zip
然后我们对未加密的固件解包,去寻找imgdecrypt这个字样
然后发现存在/bin/imgdecrypt
所以我们可以通过qemu去模拟mips的环境去对我们的程序进行解密(别忘了讲我们加密的固件放到home路径下)
解密完整过程如下
cp /usr/bin/qemu-mipsel-static .
sudo chroot . ./qemu-mipsel-static /bin/sh
./bin/imgdecrypt /home/..
然后我们就可以看到固件被正常解析了
感谢网上师傅们的分享,帮助我这个萌新学习到了很多,我记录这篇,是为了我以后的复习,希望师傅们不要嫌弃我写的太少,抱歉
原创文章,作者:Maggie-Hunter,如若转载,请注明出处:https://blog.ytso.com/269716.html