《IOT废物学习之路》(4)--解密路由器固件
《IOT废物学习之路》(4)–解密路由器固件
固件下载地址:
研究路由器固件D-link-882。其中zip就是各版本的固件。
解压出来的固件版本从旧到新依次为:FW100B07
--> FW101B02
--> FW104B02
--> FW110B02
--> FW111B01
--> FW120B06
–> FW130B10
,FW104B02
有点特别,而且通过名字也猜测到它是未加密的中间版本。
目前最新版是FW130B10
,试一试用binwalk
能否解析该固件。
发现binwalk
失败。再试试更早版本的FW101B02
,发现可以直接提取。
固件的版本是经过未加密到加密,所以肯定会有一个中间版本。
利用binwalk
测试出中间版本FW104B02
。可以从固件系统中找一找是否存在解密程序。可以在bin
目录或者是usr/bin
目录下寻找类似decrypt
字眼的程序。
binwalk
解析FW104B02
固件
1 | docker run -it --rm \ |
得出来的是cpio-root
,但是发现目录下并没有文件,应该是cpio
这一步骤没有成功。就手工提取:
1 | cpio -idm < 8AB758 -D ./_8AB758.extracted/cpio-root |
在bin
目录下找到imgdecrypt
通过file
查看程序文件信息,发现是mips
架构下的可执行文件
反编译查看,发现有AES
和RSA
,猜测大致和RSA
和AES
加密相关。
解密的话,逆向解密是其中一种方法,但可能比较费时间。再介绍一种解密方式。
可以直接本地运行解密程序imgdecrypt
,来解被加密的FW120806
固件。
先拷贝qemu模拟器到当前目录。
1 | cp $(which qemu-mipsel-static) |
模拟前用chroot
将当前固件系统路径设置为root
路径(防止运行程序时找不到系统库)。
先解密然后利用binwalk
提取即可。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 z0yuan's Blog!