利用废弃硬件中的零日漏洞:从Netgear路由器到Bitdefender Box的攻防实战

本文详细分析了Netgear WGR614v9路由器和BitDefender Box V1两款已停更设备中的漏洞利用链,涵盖UPnP身份验证绕过、缓冲区溢出、命令注入及固件降级攻击技术,揭示了废弃硬件带来的持续安全风险。

利用废弃硬件中的零日漏洞

在二月的DistrictCon首届Junkyard竞赛中,我们成功利用了两款已停产的网络设备,荣获“最具创新利用技术”亚军。我们的漏洞利用链证明了生命周期结束(EOL)硬件为何会带来持续安全风险:当制造商停止发布更新时,未修补的漏洞就像化石一样被冻结在时间中,成为攻击者的完美目标。

我们利用的两款设备——Netgear WGR614v9路由器和BitDefender Box V1——都是曾相当流行的家用网络保护设备。但由于两者均已多年未更新,我们能够从本地网络远程完全利用它们。

随着第二届DistrictCon Junkyard竞赛宣布将于2026年初举行,我们想分享首届竞赛的经验和研究。完整技术分析可在Trail of Bits漏洞利用代码库中获取。

设备分析与固件提取

对于Netgear设备,我们拆解了它并识别了调试接口、数据存储芯片和SOC。由于Netgear在线提供固件,我们直接下载而非自行提取。使用binwalk和unblob递归解包固件后,我们运行端口扫描以识别有趣的网络服务,登录串行控制台检查运行进程、面向LAN的服务、CPU规格、内核版本和启用的缓解措施。我们最初查看了httpd,但随后转向了upnpd。

对于Bitdefender Box V1,我们找到了串口,但shell被锁定。通过SPI闪存芯片提取固件后,我们尝试通过逆向工程更新机制获取最新版本,但更新服务器已离线。由于固件包含在APK中,我们通过抓取APK镜像网站找到了可能是最新版本的固件。在没有设备shell的情况下,我们使用QEMU用户模式在本地模拟httpd二进制文件进行动态测试。

利用Netgear路由器的UPnP

Netgear WGR614v9路由器运行基于MIPS32的系统,具有多个网络服务。连接到其UART接口(板上暴露为“JP1”的串行调试端口)后,我们在启动过程中获得了低级系统访问权限。

我们专注于通用即插即用(UPnP)守护进程:一种旨在简化网络上设备发现和配置的服务。UPnP接受SOAP消息(XML格式命令)来控制路由器功能,由于其复杂的解析要求和特权系统访问,成为主要目标。

完成分析后,我们的利用链利用了四个漏洞:

  • SOAP消息处理程序中的身份验证绕过,允许密码重置
  • BSS和堆栈内存区域中的三个缓冲区溢出漏洞

在我们的第一个利用bashsledding中,我们展示了经典nopsled技术的有趣变体。发现两个可以调用“system”的ROP小工具后,我们通过路由器的域名阻止功能将shell命令有效负载喷洒到NVRAM中(该内存映射到所有进程)。通过在命令前添加空格序列(我们的“nops”),无论确切着陆位置如何,bash解释器都会无害地处理空格直到到达我们的命令,创建有效shell语法的“雪橇”而非CPU指令。该技术提供了可靠的代码执行。

我们演示的最后一个利用bigfish_littlepond,巧妙地将有限的内存损坏错误转换为更强的命令注入。BSS溢出用于修改代表shell命令的相邻字符串指针。鉴于upnpd中存在“bpa_monitor”字符串且该二进制文件中存在可利用的命令注入,我们将其更改为启动bpa_monitor二进制文件。包含我们注入有效负载的额外请求允许完全代码执行。

您可以在GitHub上找到完整的利用代码和报告,以及bashsledding、break_block_bof(我们的第二个利用,此处未提及)和bigfish_littlepond的视频。

用过时固件破解Bitdefender Box

Bitdefender Box v1代表了一个讽刺的目标:一款旨在保护家庭网络免受威胁的安全设备,于2021年7月停产。创建于2017年左右,它是AV供应商扩展到具有订阅模式的硬件安全设备趋势的一部分。

该设备通过将自己插入网络路径、覆盖DHCP设置并通过其代理重定向流量以扫描威胁来运行。尽管以安全为重点,我们发现了一个完全未经身份验证的固件更新机制。

我们的硬件分析揭示了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(版本1.3.12.869),我们恢复了具有有效签名的固件版本1.3.11.490。

将此旧固件与较新版本进行差异比较,揭示了md5参数中的基本命令注入漏洞:一个没有适当过滤的字符串插值的经典案例。较新固件实现了一个过滤字符(如分号、引号、管道和括号)的验证函数,但此保护在旧版本中缺失。

通过降级到易受攻击的固件并利用命令注入,我们将SSH公钥添加到设备的authorized_keys文件中,获得对整个系统的持久访问。

仅校验和和签名固件更新是不够的。没有强大的版本验证和经过身份验证的更新过程,仅验证加密签名无法防止降级攻击。

您可以在GitHub上找到完整的利用代码和报告,以及在YouTube上的视频。

竞赛之外的安全影响

我们已经期待明年的Junkyard竞赛!同时,请将此视为提醒:检查您的智能设备是否EOL,如果是请谨慎使用;购买新设备前研究制造商的支持时间表;并寻求开源替代方案。

我们发现的漏洞代表了IoT安全中更广泛的模式。UPnP实现缺陷并非Netgear路由器独有,可能困扰其他制造商和设备。像Bitdefender Box中的固件降级漏洞突出了所谓安全更新机制通常缺乏关键保护,如降级预防。

如果您有EOL设备,可能不必扔掉它,但应考虑继续使用它的风险。对于消费者,这需要仔细考虑不仅是设备的功能,而是其整个安全生命周期,包括制造商支持承诺和社区固件选项。

对于研究人员和安全从业者,EOL设备既代表宝贵的学习机会,也代表网络中的潜在安全盲点。Junkyard竞赛非常适合将这些设备带入聚光灯下,在那里可以了解制造商如何淘汰其技术。它比Pwn2Own等高风险竞赛更易接近,使其成为研究人员参与和提高技能的绝佳场所。

选择目标

选择正确的生命周期结束设备有助于您为Junkyard等竞赛进行研究。要求很简单:设备必须不再受制造商支持,且设备应足够便宜以购买多个。拥有备用设备总是有帮助的,特别是在针对硬件时:设备可能带有不同的固件版本或购买二手时的不同条件,或者您可能需要备份,因为您破坏性地拆解了它或意外变砖(至少其中一件事发生在我们身上)。

我们针对那些似乎可能有有趣漏洞而无需数月逆向工程的设备。调试接口不是必需的,但它们使分析更容易。更重要的是有某种获取固件的方式:一些制造商在其网站上公开固件下载,而其他则需要从设备中提取。SPI芯片更容易处理,但从eMMC提取固件需要专用工具。

购买设备前,在线进行一些研究很重要。检查制造商的网站以获取固件下载,寻找现有的安全研究,并查阅FCC文件以窥视设备内部。

如果您喜欢这篇文章,请分享: Twitter LinkedIn GitHub Mastodon Hacker News

关于我们

自2012年以来,Trail of Bits帮助保护了世界上一些最受针对的组织和产品。我们将高端安全研究与真实世界攻击者心态相结合,以降低风险并强化代码。

更多信息请访问:www.trailofbits.com

社交 Twitter LinkedIn GitHub Mastodon Hacker News

最近帖子 非传统创新者奖学金 劫持您的PajaMAS中的多代理系统 我们构建了MCP始终需要的安全层 利用废弃硬件中的零日漏洞 Inside EthCC[8]:成为智能合约审计员

类别 aixcc  8apple  13application-security  19attacks  14audits  14authentication  6benchmarking  1binary-ninja  15blockchain  91c/c++  1capture-the-flag  11careers  3codeql  6compilers  33conferences  35confidential-computing  1containers  3cryptography  79crytic  4cyber-grand-challenge  8darpa  27design-review  1dynamic-analysis  14ebpf  6echidna  1ecosystem-security  10education  18empire-hacking  7engineering-practice  23events  8exploits  30fuzzing  51go  10guides  15internship-projects  42invariant-development  3iverify  5java  1kernel  1kubernetes  3linux  8llvm  5machine-learning  38malware  7manticore  17mcp  5mcsema  11memory-safety  2meta  12mitigations  11mlir  2multi-agent systems  1open-source  28operational security  1osquery  23paper-review  11people  8podcast  1policy  14press-release  29privacy  9products  8program-analysis  22prompt injection  3recursion  1research-practice  41reversing  18rust  8safedocs  1semgrep  9sinter  1slither  4snapshot fuzzing  1sponsorships  13stablecoins  1static-analysis  37supply-chain  11symbolic-execution  18testing handbook  6threat modeling  4threshold-signatures  1tool-release  9training  3vast  2vulnerabilities  4vulnerability-disclosure  22windows  3working-at-trail-of-bits  4year-in-review  6zero-knowledge  12© 2025 Trail of Bits. 使用Hugo和Mainroad主题生成。

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计