一个威胁数万用户GPON家用路由器 的RCE
字数 1388 2025-08-05 19:10:02
GPON家用路由器远程代码执行漏洞分析与利用教学
漏洞概述
本教学文档详细分析GPON家用路由器中的多个安全漏洞,包括Telnet后门和Web界面缓冲区溢出漏洞,这些漏洞可被组合利用实现远程代码执行(RCE)。
受影响设备
- 设备类型:GPON光网络终端(ONT)设备
- 供应商:阿尔卡特朗讯(现诺基亚)等多家供应商
- 具体型号:I-240W-Q GPON家庭网关
- 处理器架构:ARMv5tel (Feroceon 88FR131 rev 1)
漏洞背景
这些漏洞最初由vpnMentor于2018年5月披露(CVE-2018-10561, CVE-2018-10562),随后被多个僵尸网络武器化,包括:
- Mettle
- Muhstick
- Mirai
- Hajime
- Satori
漏洞分析
1. Telnet后门漏洞
发现过程
- 端口扫描显示22/TCP(SSH)和23/TCP(Telnet)端口被防火墙过滤
- 分析
WebMgr二进制文件发现后门代码
后门机制
webLoginCheck函数处理特殊命令:
ote命令:禁用Telnet端口的防火墙otd命令:重新启用防火墙过滤
利用方法
发送HTTP GET请求启用Telnet:
http://<router_ip>/GponForm/webLoginCheck?ote
禁用Telnet:
http://<router_ip>/GponForm/webLoginCheck?otd
硬编码凭证
分析/bin/telnetd发现硬编码凭证:
root/adminroot/huigu309
这些凭证同样适用于SSH服务(Dropbear)
2. Web界面缓冲区溢出漏洞
漏洞位置
WebMgr二进制文件中处理"usb_Form"相关HTTP请求的子程序
易受攻击参数
以下参数未进行长度检查,直接使用strcpy()复制:
ftpusernameftppassword1ftpdirnameclientusernameclientpasswordurlbodywebdir
安全防护分析
- 部分地址空间布局随机化(ASLR):堆栈、VDSO页面和共享内存区域随机化
- 堆未随机化且可执行
利用条件
需要以下之一:
- 身份验证绕过(CVE-2018-10561)
- 有效的Web管理界面凭证
漏洞利用开发
利用思路
- 通过堆上的请求副本绕过ASLR
- 修改
pc寄存器跳转到堆上的shellcode
PoC代码
GitHub上的漏洞利用代码:
# https://github.com/tenable/poc/blob/master/gpon/nokia_a-l_i-240w-q/gpon_poc_cve-2019-3921.py
利用步骤
- 触发DoS条件强制路由器重启:
curl -v -X POST "http://<router_ip>/GponForm/usb_Form" --data "clientusername=`python -c 'print "A"*1000'`"
- 构造特殊请求触发缓冲区溢出
- 通过修改pc寄存器执行堆上的shellcode
安全建议
对用户
- 立即检查并更新路由器固件
- 如无法更新,考虑更换设备
对厂商
- 实现完整的安全防护机制:
- 完整ASLR
- Stack Canaries
- 不可执行堆栈(NX)
- 审查并移除所有硬编码凭证
- 替换不安全的字符串操作函数
漏洞披露
所有发现已根据漏洞披露政策报告给诺基亚安全团队,相关补丁已发布。
扩展阅读
- 原文地址: GPON Home Gateway RCE Threatens Tens of Thousands Users
- 相关CVE:
- CVE-2018-10561
- CVE-2018-10562
- CVE-2019-3921
总结
本教学详细分析了GPON家用路由器中的多个高危漏洞,从发现过程到利用方法进行了全面讲解。这些漏洞由于影响广泛且利用门槛相对较低,已被多个恶意软件武器化,需要引起高度重视。