D-Link DNS-320的远程命令执行

iso60001  1648天前

22.png

概要

CyStack Security安全团队在D-Link DNS-320 ShareCenter中发现了一个远程代码执行漏洞,版本低于或等于2.05.B10的产品均受影响。通过利用该漏洞,未经身份验证的远程攻击者可以凭root权限运行任何系统命令。该设备是一款知名的网络存储设备,以前曾被曝出存在后门

细节

在对多款网络设备进行研究时,我们发现D-Link DNS-320设备的登录模块存在命令注入漏洞。更准确地说,这个漏洞存在于一个名为SSL Login的隐藏特性中,其中所涉及的参数port可被恶意利用。

33.png

在本文中,我将展示是如何发现这个漏洞的,并通过分析旧版固件来找寻漏洞出现的根本原因。

提取固件

首先,我们下载固件

$ mkdir /tmp/dns_320 && cd mkdir /tmp/dns_320
$ wget ftp://ftp2.dlink.com/SECURITY_ADVISEMENTS/DNS-320/DNS-320_REVA_FIRMWARE_PATCH_2.05.B10.ZIP
$ unzip DNS-320_REVA_FIRMWARE_PATCH_2.05.B10.ZIP

接下来,我们使用BinwalkFirmware Modification Kit来提取代码。

# 如果你没有这些工具,请先下载
$ sudo apt-get install git build-essential zlib1g-dev liblzma-dev bsdmainutils python
$ wget https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/firmware-mod-kit/fmk_099.tar.gz
$ tar -xvf fmk_099.tar.gz fmk/
$ cd fmk/src/others/ && make && cd -
$ curl "https://bootstrap.pypa.io/get-pip.py" -o "get-pip.py"
$ python3 get-pip.py
$ git clone https://github.com/ReFirmLabs/binwalk.git && cd binwalk && python3 setup.py install && cd -
$ binwalk -eM DLINK_DNS320.2.05b10\(2.13.0226.2016\)
$ ./fmk/unsquashfs_all.sh _DLINK_DNS320.2.05b10\(2.13.0226.2016\).extracted/3F5020.squashfs

# All binaries are now in the following folder
$ cd squashfs-root/

分析

我们的目标是二进制文件/cgi/login_mgr.cgi,就是它处理登录请求。我们主要关注函数cgiMain()

首先,如果参数cmd等于login,那么将调用函数sub_9958

44.png

深入后,可以看到函数sub_9424()可以通过参数port控制。

55.png

让我们先看一下函数sub_9424()。从下图可以清楚看到,如果攻击者控制了代表port的参数v1,就可以任意执行命令,这也是这个漏洞的关键点。

66.png

利用

只要利用参数port,我们就可以执行如下所示的RCE攻击。

77.png

修复

D-Link团队曾于2019年4月11日发布了新版固件。根据他们的说明,这个新版固件是针对login_mgr.cgi中的一个管道命令漏洞。我尚不清楚这个老漏洞和本文所述漏洞的关联,但是这个新版固件成功修复了本文提及的远程命令执行漏洞。具体修复细节是通过类型转换将参数port的值固定为Integer

88.png

时间轴

  • 2019年8月14日——CyStack向D-Link团队报告

  • 2019年8月15日——CyStack收到来自D-Link团队的回应,要求提供一些更详细的信息

  • 2019年9月6日——D-Link团队确认了这个漏洞,正研究补丁

  • 2019年9月6日——该漏洞被分配CVE-2019-16057(保留状态)

  • 2019年9月11日——D-Link团队将此CVE号包含到他们的安全说明中,并允许CyStack公开漏洞信息。

  • 2019年9月15日——D-Link团队公开声明

本文由白帽汇整理并翻译,不代表白帽汇任何观点和立场
来源:https://blog.cystack.net/d-link-dns-320-rce/

最新评论

昵称
邮箱
提交评论