DIR825B1_FW210NAb02信息收集

IoT 3个月前 admin
1 0 0


品牌 : D-LINK

架构 : mips

大小端序:大端

web服务器 : httpd

固件加密情况 : 未加密

文件系统 :squashfs

服务开启情况 :tftpd、telnet、http

端口开放情况 :80(http)、31338(telnet)

启动项 :(使用二进制文件启动)

/squashfs-root/etc/rc.d/rcS

/squashfs-root/sbin/rc

/squashfs-root/sbin/init

历史cve (部分cve的固件版本可能会不同所以导致无法复现)

CVE-2019-13265协议方面的漏洞(我也不懂)

CVE-2019-13264协议方面的漏洞(我也不懂)

CVE-2019-13263协议方面的漏洞(我也不懂)

CVE-2019-9126信息泄露

CVE-2019-9122任意代码执行

CVE-2019-9123密码为空(抽象至极)

CVE-2019-16920任意代码执行

CVE-2020-10213任意命令执行

CVE-2020-10214缓冲区溢出

CVE-2020-10215任意命令执行

CVE-2020-10216任意命令执行

CVE-2020-29557缓冲区溢出

CVE-2021-29296拒绝服务攻击

CVE-2021-46441任意系统命令执行

CVE-2021-46442未授权漏洞

CVE-2022-29332 目录遍历

CVE-2022-47035 任意代码执行

CVE-2024-0717 信息泄露

固件模拟  (推荐FirmAE)

sudo ./run.sh -d dlink DIR825B1_FW210NAb02.bin

启动项分析

/squashfs-root/etc/rc.d/rcS

注释了多行代码 只是挂载了几个目录 但在最后一行用了rc init进行启动

所以我们应该着重分析这两个二进制文件

DIR825B1_FW210NAb02信息收集

/squashfs-root/sbin/rc

DIR825B1_FW210NAb02信息收集DIR825B1_FW210NAb02信息收集DIR825B1_FW210NAb02信息收集大概流程就是 如果文件名包含 “init”,则调用 sub_405014();如果文件名不包含 “rc”,则根据特定子字符串调用相应的主函数;如果文件名包含 “rc”,则根据命令行参数(如 “start”、”stop”、”restart”、”init”)执行不同的操作

在pid=57的进程传入了参数init 所以程序就会执行sub_405014()

DIR825B1_FW210NAb02信息收集

我们跟进sub_405014()函数看看

DIR825B1_FW210NAb02信息收集

在sub_405014()函数中 前面有几个初始化函数

分别是创建目录

DIR825B1_FW210NAb02信息收集

创建一个记录当前进程 PID 的文件

DIR825B1_FW210NAb02信息收集

创建链接( 作用是这些文件可以被 /sbin/rc 程序统一处理。 )

DIR825B1_FW210NAb02信息收集

sub_405014()函数在41行时又调用了service_init()函数

DIR825B1_FW210NAb02信息收集

在service_init()函数中还调用了init_nvram(); init_network();函数 篇幅有限暂不展开

在第47行启动了tftpd服务

其中第73行存在命令注入( CVE-2020-10216  )但是在ida这里没有显示格式化字符串参数

DIR825B1_FW210NAb02信息收集DIR825B1_FW210NAb02信息收集DIR825B1_FW210NAb02信息收集但在ghidra里就显示了格式化字符串参数(不得不说ghidra对mips架构的反汇编更加友好 但小孩子才做选择)

DIR825B1_FW210NAb02信息收集

至此service_init()函数大概能利用的点都已分析

让我们回到sub_405014()函数

在sub_405014()函数的这一部分重启了很多服务

例如redial、monitor、

DIR825B1_FW210NAb02信息收集最后让我们回到main函数

一开始我们调用了sub_405014()函数里的create_symlink()函数

将rc和部分文件夹链接

在调用完sub_405014()函数后 先前与rc链接的文件都会调用rc程序

也就是会启动在var/sbin/目录下的程序

DIR825B1_FW210NAb02信息收集至此这个固件的启动项大致就分析到这了

CVE-2020-10216复现

DIR825B1_FW210NAb02信息收集

最后这是第一次遇到用二进制文件来进行启动的 难免分析的有点不好 其实本质和靠脚本启动差不多 但是有时候犄角旮旯会藏几个服务 我在刚开始分析的时候就漏了不少

参考链接

https://github.com/kuc001/IoTFirmware/blob/master/D-Link/vulnerability1.md

https://www.iotsec-zone.com/vulnerability?p=1&k=dir-825

固件下载链接

https://pan.baidu.com/s/12uDQXBZms6WZDpKA_A60NQ?pwd=Nopp


原文始发于微信公众号(ProtoWare安全实验室):DIR825B1_FW210NAb02信息收集

版权声明:admin 发表于 2024年7月22日 上午9:31。
转载请注明:DIR825B1_FW210NAb02信息收集 | CTF导航

相关文章