D-Link DIR-620路由器存在多个漏洞
By Denis Makrushin 2018/5/23/10:00
“如果你想改变世界,就从自己开始吧。”在安全研究的情况下,这可以改写为:“如果你想让世界变得更加安全,那么就从家中的智能事物开始。”或者, 更具体的说,从您的路由器开始 - 任何家庭网络的核心以及一个有趣的研究对象。 而从互联网服务提供商那里获得的路由器作为您的互联网合同的一部分,在研究方面则更加有趣。
注意:以下有关漏洞的信息已提交给相关利益相关方(D-Link,ISP提供商,Mitre),我们将根据漏洞披露政策发布此信息。
以下建议介绍了D-Link DIR-620固件中的四个漏洞和硬编码帐户。 该固件在俄罗斯最大的ISP之一提供给客户的各种D-Link路由器上运行(此结论基于路由器作为标准客户合同的一部分提供的事实,硬编码凭证包含 ISP在登录字符串中)。 这可能就是为什么这种特定型号的路由器在俄罗斯和独联体国家非常流行(大多数家庭路由器位于ISP的NAT后面,这就是为什么这些路由器没有出现在统计数据中)。
图1.弱势路由器的地理位置
最新版本的固件对默认凭证进行了硬编码,未经身份验证的攻击者可利用该凭证获取对固件的特权访问权限,并提取敏感数据(例如,使用纯文本密码的配置文件)。 易受攻击的Web界面允许未经身份验证的攻击者在用户环境中运行任意JavaScript代码,并在路由器的操作系统(OS)中运行任意命令。
Example of firmware interface (probably customized for ISP purposes)
图2.固件接口示例(可能为ISP定制)
这些问题最初是在固件版本1.0.37中标识的。 其他版本的固件中也发现了一些发现的漏洞:
图3.反射的XSS示范
-1.3.1
-1.3.3
-1.4.0
-2.0.22
一个允许用户输入的输入字段 - 快速搜索 - 激励我深入了解固件:该字段有助于XSS攻击矢量。 由于未对该字段中的特殊字符进行过滤以及对XMLHttpRequest对象的错误处理(此漏洞在v.1.3.3中发现,但在其他版本中也存在),因此可能会发生反映的跨站点脚本攻击(XSS)攻击。
漏洞指标:
CVSS v3 Base评分:6.1
Vector: (CVSS:3.0/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N)
我下载了固件并解压缩了文件系统。 大多数基于Unix的固件都包含BusyBox - 为嵌入式系统提供几种精简Unix工具的软件。 它可以轻松识别专有的二进制文件,即所有不在原始BusyBox工具箱中的二进制文件,以及可能为了ISP目的而修改的二进制文件。
我从Web服务器二进制文件(httpd)中提取字符串,我的注意力立即被吸引到“匿名”字符串。 我看着这个字符串被使用的地方。
图4.负责检查用户凭证的代码包含“硬编码凭证”
这些特权凭证不能由管理员更改。 对仪表板的特权访问允许攻击者提取敏感数据。
漏洞指标:
CVSS v3 Base评分:6.5
Vector: (AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H)
由于用户的输入数据在以下参数中的处理不正确,导致操作系统命令注入漏洞(此漏洞在v.1.0.3中发现):
/index.cgi?<…>&res_buf
图5.使用OS命令注入的请求示例
漏洞指标:
CVSS v3 Base Score: 9.1
Vector: (/CVSS:3.0/AV:N/AC:L/PR:H/UI:N/S:C/C:H/I:H/A:H)
Telnet的硬编码默认凭据(CVE-2018-6210)
使用上面的漏洞,攻击者可以提取Telnet证书。 凭证是在固件v1.0.3中发现的。 例如,通过使用Telnet的默认凭证,攻击者可以获得对路由器的管理访问权限(“etc / passwd”的碎片)。
图6.演示OS命令注入漏洞
漏洞指标:
CVSS v3 Base Score: 10.0
Vector: (/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H)
如何解决它
我们收到了供应商的官方回应,声称此路由器型号不再受支持。 在这种情况下,我们提供以下建议:
使用受信任IP的白名单来限制对网络仪表板的任何访问
限制对Telnet的访问
定期更改您的路由器管理员用户名和密码
咨询状态
01/15/2018 - 向供应商报告
01/15/2018 - 向ISP报告
01/24/2018 - 收到ISP的回复
02/06/2018 - 收到供应商的回复。 官方声明:供应商不再支持路由器型号,因此供应商只会在ISP发送请求时修补漏洞。