物联网安全——D-Link DIR-822-US固件分析

🚀🚀这是IOT安全系列的第一篇文章,教程来自于崔老师的《物联网安全漏洞挖掘实战》,我只是简单的把其中一个实验复现了一下,也记录了一些坑。如果对文章内容感兴趣,大家可以自己去购买书籍学习。

固件获取

🚀🚀我们首先要获得D-Link DIR-822-US的固件,根据后面的US我们就知道需要去国外的网站下载,国内是没有这款产品的。具体地址如下所示:D-Link Technical Support (dlink.com),考虑到有些同学的网可能不是“很好”,所以我会放在网盘里面供大家学习**(差点忘记了,放评论区了)**。

固件分析

🚀🚀然后我们把固件放入我们的kali~~(KALI PURPLE好帅!!!)~~ ,使用binwalk进行分析,我们输入:

binwalk  DIR822C1_FW315WWb02.bin

🚀🚀然后结果一片空白:

在这里插入图片描述

🚀🚀所以我们猜测可能是加密了,使用 binwalk -E 命令来查看一下:

在这里插入图片描述

🚀🚀一条直线,看来肯定是加密了,所以我们就要看一下有没有解密的办法。我们点开发行说明,发现了一些蛛丝马迹:The firmware v3.15 must be upgraded from the transitional version of firmware v303WWb04_middle.

🚀🚀也就是 固件 v3.15 必须从固件v303WWb04_middle的过渡版本升级。所以我们可以从固件v303WWb04_middle入手。

在这里插入图片描述

固件解密

🚀🚀我们执行binwalk -Me DIR822C1_FW303WWb04_i4sa_middle.bin命令之后,得到如下结果:

在这里插入图片描述

🚀🚀然后我们进入生成的_DIR822C1_FW303WWb04_i4sa_middle.bin.extracted/squashfs-root文件夹,就能看到我们的文件系统了(有一些其他文件别在意,那是后面要用的)。

在这里插入图片描述

🚀🚀然后我们在文件夹里面使用grep -r "download"搜索一下有关下载的东西,如下所示,有一个StartFirmwareDownload.php很显眼,我们单独拿出来看看。

在这里插入图片描述

🚀🚀使用VIM打开后发现好东西:

在这里插入图片描述

🚀🚀下面是对代码的解释:

  1. setattr("/runtime/tmpdevdata/image_sign","get","cat /etc/config/image_sign");:这行代码设置了一个属性,将 /runtime/tmpdevdata/image_sign 的获取操作映射到了 cat /etc/config/image_sign 命令。这样,当尝试获取 /runtime/tmpdevdata/image_sign 的内容时,实际上会执行 cat /etc/config/image_sign 命令来获取 /etc/config/image_sign 文件的内容。

  2. $image_sign = query("/runtime/tmpdevdata/image_sign");:这行代码执行了一个查询操作,获取了 /runtime/tmpdevdata/image_sign 文件的内容,并将其保存在变量 $image_sign 中。

  3. fwrite("a", $ShellPath, "encimg -d -i ".$fw_path." -s ".$image_sign." > /dev/c>del("/runtime/tmpdevdata");:这是一段执行操作的代码。它将执行 encimg 命令,并使用从 $image_sign 中获取的内容作为参数 -s 的值。执行结果将被重定向到 /dev/c>。然后,del("/runtime/tmpdevdata"); 将删除 /runtime/tmpdevdata 目录及其内容。

🚀🚀总的来说,这段代码执行了以下操作:

  • /etc/config/image_sign 文件中获取内容。
  • 使用获取的内容作为参数,执行 encimg 命令。
  • 删除 /runtime/tmpdevdata 目录及其内容。

🚀🚀然后查看/etc/config/image_sign的内容:

在这里插入图片描述

🚀🚀最后研究一下下encing,这是一个可执行文件,所以我们来启动一下,当然了,要按照上面代码的格式启动。

在这里插入图片描述

🚀🚀使用sudo apt install qemu-user-static安装一下QEMU,然后输入下面的命令,注意,你要把qemu-mips-static文件放到这个目录下面来,还有DIR822C1_FW315WWb02.bin固件

sudo chroot . ./qemu-mips-static ./usr/sbin/encimg -d -i DIR822C1_FW315WWb02.bin -s wrgac43s_dlink.2015_dir822c1

在这里插入图片描述

🚀🚀然后我们就可以分析这个解密了的固件了:

在这里插入图片描述

在这里插入图片描述

🚀🚀一切正常,这次学习就到这里了。

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐