千疮百孔的GPON家庭网关

iso60001  1881天前

22.jpg

2018年5月,vpnMentor在其博客公布两个有趣的漏洞(cve-2018–10561、cve-2018–10562),可以结合起来攻破GPON家庭网关。历经一年,这两个漏洞已经引起了很高的关注,并已被一堆僵尸网络利用起来,比如Mettle、Muhstick、Mirai、Hajime、Satori等等。

冥冥之中,我感觉这个设备背后还有更多的漏洞,说不定会引起更大的波澜。

于是,我花了很长的时间去研究它。一般来说,GPON光网络终端是由互联网服务提供商(ISP)分发给终端用户,用来连接互联网点。经过我的研究发现,至少有五家厂商的GPON家庭网关存在漏洞。你可以用网络设备搜索引擎发现大量潜在的攻击目标:

33.png

你可能会问,为什么会有五个厂商都存在问题?因为这些设备使用类似的固件。不同产品的固件上的任何差异都是厂商自主修改造成的,但其固件的核心基本不变。我分析了很多不同ISP所使用的产品固件,最终得出这一结论。举个例子,让我们看看来自不同固件包的根文件夹的内容:

44.png

值得注意的是,GPON家庭网关的固件通常无法在供应商的网站找到,其安全更新机制很不完善。

预热:一个telnet后门

如果我们想找漏洞,通常需要对某个正在运行的服务进行调试,所以,为了更好的进行漏洞挖掘,我从易趣上买一个真正的家庭设备,是由Alcatel-Lucent公司生产的,基于ARM处理器(armv5tel编译固件)的I-240W-Q GPON家庭网关:Feroceon 88FR131 rev 1 (v5l)。

首先,对Alcatel-Lucent I-240W-Q GPON家庭网关的端口扫描就显示出一些有趣的地方。该设备貌似会开启telnet和ssh服务,可能是方便ISP远程管理调试。可是,默认情况下这些端口似乎都会被屏蔽。用nmap扫描结果如下:

55.png

嗯?我决定浏览WebMgr的二进制文件,尝试寻找一个后门代码。WebMgr是gGPON家庭网关固件的一部分,负责设备的web管理控制台。通过粗略的浏览,“webLoginCheck”看起来有点问题:

66.png

因为webLoginCheck涉及“ote”和“otd”命令,所以,除了处理身份验证之外,我们还可以利用这些命令来激活或禁用后门代码。

通过发送一个简单的HTTP的GET请求,我们就可以关闭telnet端口的屏蔽!!!

77.png

通过发送以下命令,我们可以重新激活屏蔽:

88.png

接下来,我们需要找出登录凭证,使得我们可以通过telnet登录。让我们对“/bin/telnetd”文件逆向看看:

1.png

OK!这里面似乎有硬编码登入凭证“root/admin”和“root/huigu309”,并提供了shell功能:

3.png

接着,我在ssh服务中也发现了硬编码的root帐户。

在Web接口中的缓冲区溢出

现在我们可以访问路由器的控制台了,是时候找找某些不安全的C函数了。我们可以通过跟踪用户的HTTP请求的处理流程来进行观察。对于缓冲区溢出,我们都知道以下这个函数功能:

110.png

原本的功能是将字符串复制到目标数组中。但是,由于这个函数不会检查缓冲区长度,就有可能会触发缓存区溢出。

让我们看一看和HTTP相关的用来处理“usb_Form”的子程序:

120.png

在IDA Pro中,我们可以看到许多参数都存在问题:“ftpusername”、“ftppassword1”、“ftpdirname”、“clientusername”、“clientpassword”、“urlbody”、“webdir”。用户通过HTTP请求提交的输入直接由strcpy函数复制,并不会安全检查。

让我们通过curl命令来触发DoS漏洞,强制GPON设备重新启动:

130.png

为了更好的利用这一漏洞,我们最好需要绕过身份验证。

我对“WebMgr”二进制文件进行了不同安全级别的检查,希望找到最简单的利用方法,写一个最完美的PoC:

140.png

因此,我在GPON路由器上启用了ASLR防护。当然,这并不影响我们攻击堆。如果我们可以找到存储在堆上的位置,就可以通过修改“pc”寄存器修改跳转到指定位置,触发shellcode。嗯,似乎很有希望:

150.png

最后,我得到了以下PoC,通过触发堆中存储的shellcode,成功绕过了ASLR,开启一个“tftpd”服务:

https://github.com/tenable/poc/blob/master/gpon/nokia_a-l_i-240w-q/gpon_poc_cve-2019-3921.py

利用如下:

160.png

结论

在互联网世界中,路由器是网络上最重要的设备。而家庭路由器更是唯一将我们的私人网络与互联网分开的边界设备。这个闪烁的小盒子可以防御外部大量的渗透攻击。为了维护这个边界设备,路由器的固件和硬件都需要不断升级和改进。对于现在的攻击者来说,过时的旧设备是最好的攻击方向。

根据Cyber-ITL研究人员的最新研究,大多数路由器都很不安全。不幸的是,Alcatel-Lucent I-240W-Q gpon家庭网关也是如此。由于缺乏安全功能,再加上糟糕的代码,使得攻击者可完全控制设备。

我们已经按照漏洞披露政策向产品的安全团队报告了漏洞,他们已经发布了安全补丁。

本文由白帽汇整理并翻译,不代表白帽汇任何观点和立场
来源:https://medium.com/tenable-techblog/gpon-home-gateway-rce-threatens-tens-of-thousands-users-c4a17fd25b97

最新评论

昵称
邮箱
提交评论