CVE-2022-26258
2023-09-23 23:29:38 # iot

前言

设备型号:D-Link DIR-820L
固件下载地址:http://www.dlinktw.com.tw/techsupport/download.ashx?file=2663

环境搭建

直接直接选择使用Firmae进行模拟

1
sudo ./run.sh -r DIR ./DIR820LA1_FW105B03.bin

第一次使用Firmae可能需要等的比较久 我等了二十分钟左右
出现下图中的样子就是启动成功了
image.png

漏洞分析

根据提供的描述 可以得知漏洞出现在lan.asp中的device_name

1
D-Link DIR-820L 1.05B03 was discovered to contain a remote command execution (RCE) vulnerability via the Device Name parameter in /lan.asp.

image.png
可以看到这个参数拼接到了paremStr中 作为copyDataToDataModelFormat函数的返回值
image.png
朔源一下这个函数 推测出来请求的目标网址应该是get_set.ccp
在squashfs-root文件夹中查询一下这个字符串
没有找到这个文件名 应该是放到了后端处理 但是出现了四个使用到的二进制文件
image.png
这里复制了这篇文章的描述: https://www.wangan.com/p/11v772975e2a5820

1
2
3
4
5
6
7
◆bin/smbd 程序是 Samba 服务器的一部分,它允许路由器用户与 Windows 客户端共享文件和打印机。Samba 服务器是一个开源软件,它实现了 SMB/CIFS 协议,这是 Windows 操作系统使用的文件和打印机共享协议。bin/smbd 程序是 Samba 服务器的核心组件之一,它提供了文件和打印机共享的功能。

◆bin/flash 程序允许用户升级路由器固件,以获取最新的功能和安全补丁。它还可以用于还原路由器的出厂设置,以便在出现问题时恢复路由器的正常运行。

◆sbin/ncc2 程序主要用于配置路由器的网络设置和管理路由器的各种功能。通过 ncc2 程序,用户可以轻松地设置无线网络、防火墙、端口转发等功能,使路由器的使用更加便捷和高效。

◆lib/libapmib.so 是 D-Link 路由器系统中的一个库文件,它包含了许多重要的 API 和函数,用于实现路由器的各种功能。用户可以通过调用这些 API 和函数来访问和配置路由器的网络设置、无线网络、防火墙、端口转发等功能。

所以这里我们选择ncc2这个程序 ida打开
image.png
调用了hasInjectionString函数来判断是否存在注入字符串 这里需要查找一下过滤了哪些内容
查找一下这个函数是在哪个动态库声明的
image.png
最后成功找到了过滤的字符串
image.png

漏洞利用

直接在管理界面修改device_name 随后点击保存 利用burp抓包
image.png
可以看到修改的应该是这个参数 这里选择使用telnetd来创建一个远程会话连接

1
%0atelnetd -l /bin/sh -p 7080 -b 0.0.0.0%0a

%0a用来绕过字符判断
在7080端口建立一个/bin/sh的会话 等下直接nc这个端口就行了
可惜我自己试了半天都没有复现成功 不过学习个思路就行了

总结

如果要换我来挖掘漏洞的话 我认为应该是先批量查找调用了system函数的二进制文件 找到ncc2以后 再根据其拼接参数的来源去进一步找到device_name

Prev
2023-09-23 23:29:38 # iot
Next