导语:Akamai公司发现黑客通过打开路由器SMB攻击内网用户。

一、简介

UPnProxy依然存在并运行良好。在350万个设备中,有277,000个运行着存在漏洞的UPnP。Akamai可以确认,在分布广泛的UPnP NAT注入活动中,已有超过45,000台设备受到感染损害。这些注入将运行在路由器后面的机器暴露到Internet,并专门针对SMB服务使用的端口。

二、背景

今年早些时候,Akamai的研究人员报告了攻击者如何滥用通用即插即用(UPnP)隐藏流量,创建了一个我们称之为UPnProxy的恶意代理系统。由于可以利用UPnProxy随意路由攻击者的流量,因此存在严重的风险,利用此漏洞可以进行多种攻击,包括垃圾邮件、网络钓鱼、点击欺诈和DDoS。

六个月后,我们根据证据发现,UPnProxy依然存活得很好。在350万个存在漏洞的设备中,其中277,000个易受UPnProxy攻击。扫描显示至少有45,000台被注入的机器,其路由器存在端口映射。随着攻击者继续扫描新机器以进行攻击,这些数字可能会发生变化。虽然原始研究中观察到的一些活动已经消失,但又发现了一种新的注入行动。

在Akamai之前的研究中,我们强调了攻击者可以利用UPnProxy来运行在受控路由器后面系统的可能性。不幸的是,最近一批注入的数据表明这件事情正在发生。

对于家庭用户而言,这些攻击可能会导致许多并发症,例如服务质量下降、恶意软件感染、勒索软件和欺诈。但对于商业用户来说,以现在的发展趋势来看,一些一开始就不应该存在于互联网上的系统,现在可能在不知不觉中巳经暴露在那里,大大增加了他们遭受入侵的机会。更令人担忧的是,此特定活动所暴露的服务有着与针对Windows和Linux平台的严重蠕虫和勒索软件活动相关的利用历史。

三、ETERNALSILENCE:

11月7日,在开展与原始UPnProxy相关的项目时,Akamai的研究人员发现了一个新的注入系列,称为EternalSilence。EternalSilence来自攻击者留下的端口映射描述。此外,这些新攻击被认为是利用Eternal系列的攻击。

通常情况下,路由器上的NewPortMappingDescription字段会为合法注入提供类似“Skype”的内容,在UPnProxy攻击行动中,此字段也受到攻击者控制。Akamai发现的新规则集(影响超过45,000台路由器)都包含西班牙语中的'galleta silenciosa'或'silent cookie / cracker'。这些注入尝试暴露位于路由器后面的设备上的TCP端口139和445。

{"NewProtocol": "TCP", "NewInternalPort": "445", "NewInternalClient": "192.168.10.212", 
"NewPortMappingDescription": "galleta silenciosa", "NewExternalPort": "47669"}

图1: EternalSilence 注入实例

考虑到到目前的披露情况,Akamai的研究人员认为,有人试图通过利用EternalBlue和EternalRed漏洞来破坏运行在易受攻击路由器背后的数百万台机器。

不幸的是,Akamai的研究人员无法看到注入后会发生什么,他们只能看到注入本身,而不能看到直接暴露在机器上的最终的有效载荷。但是,成功的攻击可能会进入目标丰富的环境,从而为勒索软件攻击或持久立足点提供了机会。

目前,已确认注入的45,113路由器为攻击者提供了总计170万台独立机器。我们通过记录每个路由器暴露的唯一IP数量,然后将它们相加来得出这个结论。很难判断这些尝试是否全部曝光,因为我们不知道在注入时是否为机器分配了IP。此外,无法判断EternalBlue或EternalRed是否成功用于攻击暴露的计算机。但是,即便只有一小部分暴露的系统被成功入侵并落入攻击者的手中,情况也会变得越来越糟。

攻击:

在观察了数百万次成功注入试图暴露数百万台运行中小企业服务的机器之后,Akamai研究人员推测,EternalSilence背后的行动者正在利用永恒攻击系列推进这项行动。

· EternalBlue(CVE-2017-0144):从NSA窃取并由Shadow Brokers发布的广为人知的漏洞利用影响了每个版本的Windows。即使在补丁出现后(MS17-010),犯罪分子仍然设法利用该漏洞发布毁灭性攻击的代码,例如WannaCry 和NotPetya

· EternalRed(CVE-2017-7494):有时被称为EternalBlue的兄弟;针对Samba并将永恒系列扩大到基于Linux的系统。它被许多加密货币挖掘行动所使用,并被广泛称为SambaCry

最近的扫描显示这些攻击者正在投机取巧。一种可能性是他们正在扫描整个互联网以获取SSDP并转向TCP UPnP守护进程。或者,根据扫描结果和抓取的旗标,它们针对一组设备,这些设备开启静态端口(TCP / 2048)和并使用(/etc/linuxigd/gatedesc.xml)作为其UPnP守护进程。

他们这样做是为了盲目地注入SMB端口转发。这是唯一可能的,因为互联网上有数百万(350万)易受攻击的路由器,其中很多(277,000)正在运行易受攻击的UPnP,这些UPnP暴露自己及其在WAN / Internet端的IGD(Internet网关设备)控制路由器,我们在之前的研究中提到过。

这不是有针对性的攻击。它试图利用久经考验的现成技术,将一个宽大的网络投入一个相对较小的池塘,希望能够挖掘出以前无法访问的设备池。

这种乱战的方法也可能有效,因为有可能不受第一轮EternalBlue和EternalRed攻击(可能没有修补)的机器安全,只是因为它们没有直接暴露在互联网上。他们位于NAT后面的一个相对安全的港口。

EternalSilence攻击完全消除了NAT授予的隐含保护,可能会将一整套新的受害者暴露给相同的旧攻击。

{"NewProtocol": "TCP", "NewInternalPort": "445", "NewInternalClient": "192.168.10.165", 
"NewPortMappingDescription": "galleta silenciosa", "NewExternalPort": "47622"}, 
{"NewProtocol": "TCP", "NewInternalPort": "139", "NewInternalClient": "192.168.10.166", 
"NewPortMappingDescription": "galleta silenciosa", "NewExternalPort": "28823"}, 
{"NewProtocol": "TCP", "NewInternalPort": "445", "NewInternalClient": "192.168.10.166", 
"NewPortMappingDescription": "galleta silenciosa", "NewExternalPort": "47623"}, 
{"NewProtocol": "TCP", "NewInternalPort": "139", "NewInternalClient": "192.168.10.183", 
"NewPortMappingDescription": "galleta silenciosa", "NewExternalPort": "28840"}, 
{"NewProtocol": "TCP", "NewInternalPort": "139", "NewInternalClient": "192.168.10.194",
 "NewPortMappingDescription": "galleta silenciosa", "NewExternalPort": "28851"}, 
{"NewProtocol": "TCP", "NewInternalPort": "139", "NewInternalClient": "192.168.10.198", 
"NewPortMappingDescription": "galleta silenciosa", "NewExternalPort": "28855"}, 
{"NewProtocol": "TCP", "NewInternalPort": "139", "NewInternalClient": "192.168.10.207",
 "NewPortMappingDescription": "galleta silenciosa", "NewExternalPort": "28864"}, 
{"NewProtocol": "TCP", "NewInternalPort": "139", "NewInternalClient": "192.168.10.209", 
"NewPortMappingDescription": "galleta silenciosa", "NewExternalPort": "28866"}, 
{"NewProtocol": "TCP", "NewInternalPort": "139", "NewInternalClient": "192.168.10.212", 
"NewPortMappingDescription": "galleta silenciosa", "NewExternalPort": "28869"}, 
{"NewProtocol": "TCP", "NewInternalPort": "445", "NewInternalClient": "192.168.10.212", 
"NewPortMappingDescription": "galleta silenciosa", "NewExternalPort": "47669"}

图2: 一个单独路由器上的大量EternalSilence注入

缺乏可视化:

管理员在检测恶意NAT注入时会遇到问题,因为在注入的路由器上没有可视化管理。UPnP协议本身旨在让机器自动的从路由器操作的因特网网关设备(IGD)请求NAT /端口转发功能。检查这些规则需要使用UPnP工具集,设备扫描和手动规则检查来实现某种程度的检测。

识别设备是否易受攻击或主动利用UPnProxying的最佳方法是扫描端点并审核其NAT表条目。有一些框架和库可以帮助完成此过程。下面是本研究中使用的简单bash脚本。它能够通过尝试从暴露的TCP守护程序的设备转储前10,000个UPnP NAT条目来测试可疑的易受攻击端点。

#!/usr/bin/bash url=$1 soap_head='<?xml version="1.0" encoding="utf-8"?>
<s:Envelope s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">

<s:Body>

<u:GetGenericPortMappingEntry xmlns:u="urn:upnp-org:serviceId:WANIPConnection.1#GetGenericPortMappingEntry">
<NewPortMappingIndex>'
soap_tail='</NewPortMappingIndex></u:GetGenericPortMappingEntry></s:Body></s:Envelope>'

 

for i in `seq 1 10000`; do

    payload=$soap_head$i$soap_tail

    curl -H 'Content-Type: "text/xml;charset=UTF-8"' -H 'SOAPACTION:
"urn:schemas-upnp-org:service:WANIPConnection:1#GetGenericPortMappingEntry"' –data "$payload" "$url" echo "
"done

图3: Bash脚本转储UPnP NAT

$ ./brute_upnproxy.sh http://192.168.1.1:2048/etc/linuxigd/gatedesc.xml
<?xml version="1.0"?>
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><s:Body>
<u:GetGenericPortMappingEntryResponse xmlns:u="urn:schemas-upnp-org:service:WANIPConnection:1">
<NewRemoteHost></NewRemoteHost><NewExternalPort>50694</NewExternalPort>
<NewProtocol>TCP</NewProtocol><NewInternalPort>53</NewInternalPort><NewInternalClient>8.8.8.8</NewInternalClient>
<NewEnabled>1</NewEnabled><NewPortMappingDescription>node:nat:upnp</NewPortMappingDescription><NewLeaseDuration>0</NewLeaseDuration>
</u:GetGenericPortMappingEntryResponse></s:Body></s:Envelope>

<?xml version="1.0"?>
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><s:Body>
<u:GetGenericPortMappingEntryResponse xmlns:u="urn:schemas-upnp-org:service:WANIPConnection:1"><NewRemoteHost></NewRemoteHost>
<NewExternalPort>30932</NewExternalPort><NewProtocol>TCP</NewProtocol><NewInternalPort>53</NewInternalPort>
<NewInternalClient>8.8.8.8</NewInternalClient><NewEnabled>1</NewEnabled><NewPortMappingDescription>node:nat:upnp</NewPortMappingDescription>
<NewLeaseDuration>0</NewLeaseDuration></u:GetGenericPortMappingEntryResponse></s:Body></s:Envelope>
...snip...

图4: 一个UPnProxy注入主机上的结果

影响:

受害者将受到攻击者的支配,因为他们将机器暴露在互联网上,却对此情况一无所知。此外,网络中未打补丁的机器将成为优先的选择。

缓解:

为了从攻击中恢复或预防攻击,设备所有者可以购买没有启用此类UPnP漏洞的新路由器,或者确保UPnP被禁用。

问题是,禁用UPnP无法清除现有NAT注入,因此设备所有者还应考虑重新启动路由器或将路由器刷新到原始出厂设置,并在完全禁用UPnP的情况下对其进行配置。建议检查固件更新,因为某些路由器可能已针对此问题发布了修复程序。

网络中暴露的机器可能已经受到感染,如果是这种情况,清理路由器是不够的。因此,检查LAN端的奇怪流量是明智的,特别是如果计算机运行的Windows或Linux的存在漏洞的版本可能会受到EternalBlue或EternalRed的攻击。

四、结语

犯罪分子很聪明,尽其所能的利用系统和服务,UPnProxy被用来攻击先前屏蔽NAT的系统。这些攻击可能会利用已经修补了一段时间的漏洞,也不足为奇。

设备管理并不容易,而且由于某些设备的轮换率较低或补丁率较低,因此利用EternalSilence的犯罪分子希望能够访问被某些机构视为可接受风险的关键系统,也可以说是被忽视的系统。

管理员可以扫描自己并查看是否暴露于这些漏洞,包括扫描他们的UPnP NAT表。最后,或许购买新路由器并确保其配置禁用UPnP是一种更好的长期解决方案。

源链接

Hacking more

...