固件解密学习
固件解密思路学习
固件例子:https://support.dlink.com/ProductInfo.aspx?m=DIR-822-US
先试用:binwalk -E DIR822C1_FW3,指令查看固件的熵值,发现几乎恒定在1左右,意味着可能对固件的不同部分内容进行了加密
在官网给出的文档中,有提到firmware v303WWb04_middle这个中间版本,因此我们需要想办法下载这个中间版本
dlink有提供一个FTP服务器来下载固件,但是我貌似不会用(悲),我这里是在异步社区下载的这个中间版本
https://box.lenovo.com/l/8ufzWe
将这个中间版本下载之后使用binwalk进行解包,发现能获得一个完整的文件系统
使用grep命令在squashfs-root搜索update,firmware,upgrade,download等关键的字符串
1 |
|
通过对下图进行分析,发现在etc/templates/hnap目录下存在StartFirmwareDownload.php文件,有Download字符串
打开StartFirmwareDownload.php文件,发现有一行注释为fw encimg
可以看到这断代码执行了几个操作:首先使用cat命令读取/etc/config/image_sign的值并赋值给$iamge_sign变量;然后使用fwrite执行了encimg -d -i “.$fw_path.” -s “.$image_sign.
首先查看/etc/config/image_sign的值
内容为wrgac43s_dlink.2015_dir822c1,也就是$image_sign变量的值。下一步就是运行encimg文件,因此查找encimg文件,并确定encimg的文件信息
可以看到程序为mips大端序架构,将qemu-mips-static移动到当前目录下。使用qemu进行模拟运行
发现需要添加几个参数才能正常运行,encimg -d -i “.$fw_path.” -s “.$image_sign.,在之前的代码中可以知道fw_patch为加密的固件的路径,image_sign为之前读到的值wrgac43s_dlink.2015_dir822c1
至此固件已经解密成功,后面就可以正常binwalk解包进行分析然后挖洞了