利用废弃硬件中的零日漏洞
在2025年2月DistrictCon首届Junkyard竞赛中,我们成功利用了两款已停产的网络设备,荣获"最具创新性利用技术"亚军。我们的漏洞利用链证明了生命周期终止(EOL)硬件为何会构成持续安全风险:当制造商停止发布更新时,未修补的漏洞会像化石一样被永久冻结,成为攻击者的完美目标。
设备概况
我们攻击的两款设备——Netgear WGR614v9路由器和BitDefender Box V1——都是曾流行的家用网络保护设备。但由于多年未获更新,我们能够从本地网络实现完全远程利用。
技术分析路径
Netgear路由器分析
我们拆卸设备后识别了调试接口、数据存储芯片和SOC。由于Netgear在线提供固件,我们直接下载而非自行提取。使用binwalk和unblob递归解包固件后,我们通过端口扫描识别感兴趣的网络服务,并通过串行控制台检查运行进程、LAN端服务、CPU规格、内核版本和启用缓解措施。
BitDefender盒子分析
我们发现串行端口但shell被锁定。通过SPI闪存芯片提取固件后,尝试通过逆向工程更新机制获取最新版本,但更新服务器已离线。最终通过APK镜像网站找到疑似最新固件(因固件包含在APK中)。由于设备无shell,我们使用QEMU用户模式本地模拟httpd二进制文件进行动态测试。
Netgear路由器UPnP漏洞利用
该路由器运行基于MIPS32的系统,我们通过板载暴露的"JP1"UART接口在启动过程中获得低级系统访问权限。
重点分析通用即插即用(UPnP)守护进程:该服务接受SOAP消息(XML格式命令)控制路由器功能,因其复杂解析需求和特权系统访问而成为主要目标。
利用链包含四个漏洞:
- SOAP消息处理程序中的认证绕过漏洞(允许密码重置)
- BSS和堆栈内存区域的三个缓冲区溢出漏洞
创新利用技术
bashsledding:经典nopsled技术的变体。发现两个可调用"system"的ROP gadget后,通过路由器域名阻止功能将shell命令载荷喷洒到NVRAM(内存映射到所有进程)。通过在命令前添加空格序列(作为"nops"),无论精确着陆位置如何,bash解释器都会无害处理空格直到执行我们的命令,形成有效shell语法"雪橇"而非CPU指令。
bigfish_littlepond:将有限内存破坏漏洞巧妙转换为更强命令注入。利用BSS溢出修改相邻代表shell命令的字符串指针,结合upnpd中存在的"bpa_monitor"字符串和该二进制文件中的可利用命令注入,将其改为启动bpa_monitor二进制文件。附加包含注入载荷的请求可实现完整代码执行。
利用过时固件攻破BitDefender盒子
这款2021年7月停产的网络安全设备存在讽刺性漏洞:我们发现了完全无需认证的固件更新机制。
硬件分析显示Winbond W25Q128FV SPI NOR闪存芯片,我们使用SOP8夹子和XGecu T48编程器提取固件。固件分析显示基于Lua的Web服务器,包含移动应用使用的多个HTTP端点。
利用链使用以下端点:
/update_auth_token
(具有清除阻止固件更新的配置文件的副作用)/upload_backup_firmware
(上传Base64编码固件镜像)/decode_image
(解码和验证固件基本结构)/check_image_and_trigger_recovery
(包含易受攻击的md5参数)
虽然设备使用RSA公钥实现固件更新签名验证,但我们发现BitDefender在移动应用APK中分发旧固件镜像。通过VirusTotal上的旧版APK(v1.3.12.869),我们恢复了具有有效签名的固件v1.3.11.490。
对比新旧固件发现md5参数存在基本命令注入漏洞:典型的字符串插值未过滤案例。新版固件实现了过滤分号、引号、管道和括号等字符的验证函数,但旧版本缺少此保护。
通过降级到易受攻击的固件并利用命令注入,我们将SSH公钥添加到设备的authorized_keys文件,获得对整个系统的持久访问。
安全影响与建议
这些漏洞代表了IoT安全中的更广泛模式:UPnP实现缺陷不仅限于Netgear路由器,可能影响其他制造商和设备;固件降级漏洞凸显了所谓安全更新机制经常缺乏关键保护(如降级预防)。
建议:
- 检查智能设备是否EOL并谨慎使用
- 购买新设备前研究制造商支持时间表
- 寻求开源替代方案
对研究人员而言,EOL设备既代表宝贵学习机会,也是网络中潜在安全盲点。Junkyard竞赛比Pwn2Own等高风险竞赛更易参与,是研究人员提升技能的良好平台。
目标选择技巧
选择合适EOL设备需满足:
- 制造商已停止支持
- 设备足够便宜可购买多个副本
(备用设备很重要,因为可能遇到不同固件版本、二手设备状态差异,或因拆解或意外变砖需要替换)
优先选择可能包含有趣漏洞且无需数月逆向工程的设备。调试接口非必需但能极大简化分析。关键是获取固件的方式:有些制造商公开提供固件下载,有些需从设备提取。SPI芯片更易处理,而从eMMC提取固件需要专用工具。
购买前应在线研究:检查制造商网站的固件下载、现有安全研究资料,以及查阅FCC文件了解设备内部结构。
完整利用代码和技术文档详见GitHub仓库,操作视频可在YouTube查看
更多精彩内容 请关注我的个人公众号 公众号(办公AI智能小助手)
公众号二维码