一项研究人员说,通过利用通用即插即用网络协议中的安全漏洞的新攻击,可以远程控制数百万台路由器,打印机和其他设备。

CallStranger被称为漏洞利用,它对于迫使大量设备参与分布式拒绝服务(DDoS)攻击非常有用,这些攻击使垃圾邮件流量淹没了第三方目标。CallStranger也可用于渗入网络内部的数据,即使这些数据受到旨在防止此类攻击的数据丢失防护工具的保护。该漏洞利用还使攻击者可以扫描内部端口,否则它们将不可见,因为它们没有暴露于Internet。

路由器和其他所谓的互联网的,事情的设备十亿易受CallStranger,尤纳斯Çadırcı,土耳其研究员谁发现了这个漏洞,并写道,利用它证明了概念攻击代码,周末写了。但是,为使漏洞利用程序切实起作用,如协议所知,易受攻击的设备必须具有在Internet上公开的UPnP。这种限制意味着实际上只有一小部分易受攻击的设备可被利用。

这些年来仍然不安全

在12岁的UPnP协议简化,使他们能够自动找到对方通过网络连接设备的任务。它通过使用HTTP,SOAP和XML协议来做广告,并通过使用Internet协议的网络发现其他设备来实现此目的。

尽管自动化可以消除手动打开特定网络端口的麻烦,而这些特定网络端口可用于不同设备进行通信,但多年来,UPnP却使用户遭受了各种攻击。2013年,互联网范围的扫描发现UPnP 使超过8100万台设备对本地网络外部的人可见。这一发现令人惊讶,因为该协议不应该与外部设备进行通信。这种暴露主要是由于几个通用代码库(即使配置为仅侦听内部接口)监视了所有接口的用户数据报协议数据包。

在2018年11月,研究人员检测到两次针对使用UPnP的设备进行的野外攻击。其中一个在Broadcom芯片中使用了错误的UPnP实现,将100,000个路由器纠缠到了僵尸网络中。另一台针对45,000台路由器使用,利用了另一种UPnP实施中的缺陷,打开了有助于传播EternalRed和EternalBlue的端口,EternalRed和EternalBlue是有效的Windows攻击,由NSA研发并从后来被盗。

现在订阅

CallStranger允许未经身份验证的远程用户与只能在本地网络内访问的设备进行交互。该漏洞利用的一种用途是将大量垃圾流量引导至攻击者选择的目的地。由于发送到攻击者指定目的地的输出比攻击者发起的请求大得多,因此CallStranger提供了一种特别强大的方法来放大攻击者的资源。其他功能包括枚举本地网络上的所有其他UPnP设备,以及泄漏存储在网络上的数据,即使在某些情况下,即使这些数据受数据丢失防护工具保护也是如此。

将该漏洞跟踪为CVE-2020-12695,并在此处和此处提供咨询。Çadırcı发布演示CallStranger的能力的PoC脚本这里。

该漏洞利用会滥用UPnP SUBSCRIBE功能,当某些事件(例如播放视频或音乐曲目)发生时,该设备用来从其他设备接收通知。具体来说,CallStranger发送订阅请求,该请求将伪造要接收结果“回调”的URL。

为了执行DDoSes,CallStranger发送大量的订阅请求,这些请求欺骗了Internet上第三方站点的地址。当攻击与其他设备一起进行时,冗长的回调使用大量的垃圾流量轰炸该站点。在其他情况下,接收回调的URL指向内部网络内部的设备。响应可以创建类似于服务器端伪造的条件,攻击者可以利用该条件伪造网络防火墙后面的内部设备。

Çadırcı已确认是易受攻击的设备是:

Windows 10(可能是包括服务器在内的所有Windows版本)-upnphost.dll 10.0.18362.719

Xbox One-OS版本10.0.19041.2494

亚行TNR-5720SX盒子(TNR-5720SX / v16.4-rc-371-gf5e2289 UPnP / 1.0 BH-upnpdev / 2.0)

华硕ASUS Media Streamer

华硕Rt-N11

BelkinWeMo

Broadcom ADSL调制解调器

佳能SELPHY CP1200打印机

思科X1000-(LINUX / 2.4 UPnP / 1.0 BRCM400 / 1.0)

思科X3500-(LINUX / 2.4 UPnP / 1.0 BRCM400 / 1.0)

D-Link DVG-N5412SP WPS路由器(OS 1.0 UPnP / 1.0 Realtek / V1.3)

EPSON EP,EW,XP系列(EPSON_Linux UPnP / 1.0 Epson UPnP SDK / 1.0)

HP Deskjet,Photosmart,Officejet ENVY系列(POSIX,UPnP / 1.0,Intel MicroStack / 1.0.1347)

华为HG255s路由器-固件HG255sC163B03(ATP UPnP核心)

NEC AccessTechnica WR8165N路由器(OS 1.0 UPnP / 1.0 Realtek / V1.3)

飞利浦2k14MTK电视-固件TPL161E_012.003.039.001

三星UE55MU7000电视-固件T-KTMDEUC-1280.5,BT-S

三星MU8000电视

TP-Link TL-WA801ND(Linux / 2.6.36,UPnP / 1.0,用于UPnP设备的便携式SDK / 1.6.19)

Trendnet TV-IP551W(OS 1.0 UPnP / 1.0 Realtek / V1.3)

Zyxel VMG8324-B10A(LINUX / 2.6 UPnP / 1.0 BRCM400-UPnP / 1.0)

Çadırcı向维护UPnP协议的开放连接基金会(Open Connectivity Foundation)报告了他的发现,该基金会更新了基础规范以修复该漏洞。用户可以咨询开发人员和制造商,以了解是否或何时提供补丁。相当大比例的IoT设备从未收到制造商的更新,这意味着该漏洞将持续一段时间。

与往常一样,最好的防御方法是完全禁用UPnP。大多数路由器通过取消选中设置菜单中的复选框来允许此操作。对于那些谁坚持保留UPnP的开启,使用的网站,如这一个,以确保路由器不暴露敏感端口。具有经验和能力的UPnP用户还可以定期检查日志以检测漏洞。