利用废弃硬件中的零日漏洞
在二月份的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闪存芯片,我们使用带有XGecu T48编程器的SOP8夹子访问它以提取固件。固件分析揭示了一个基于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,如果是,请谨慎行事;在购买新设备之前研究制造商的支持时间表;并寻求开源替代方案。
我们发现的漏洞代表了物联网安全中更广泛的模式。UPnP实现缺陷并非Netgear路由器独有,可能困扰其他制造商和设备。像Bitdefender Box中的固件降级漏洞突显了 supposedly安全的更新机制通常缺乏关键保护,如降级预防。
如果您有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
最近的帖子 Trail of Bits的Buttercup在AIxCC挑战赛中获得第二名 Buttercup现已开源! AIxCC决赛:记录表 攻击者的提示注入工程:利用GitHub Copilot 作为新员工发现NVIDIA Triton中的内存损坏
类别 aixcc 11 apple 13 application-security 19 attacks 14 audits 14 authentication 6 benchmarking 1 binary-ninja 15 blockchain 91 c/c++ 1 capture-the-flag 11 careers 3 codeql 6 compilers 33 conferences 35 confidential-computing 1 containers 3 cryptography 79 crytic 4 cyber-grand-challenge 8 darpa 31 design-review 1 dynamic-analysis 14 ebpf 6 echidna 1 ecosystem-security 10 education 18 empire-hacking 7 engineering-practice 23 events 8 exploits 32 fuzzing 51 go 10 guides 15 internship-projects 42 invariant-development 3 iverify 5 java 1 kernel 1 kubernetes 3 linux 8 llvm 5 machine-learning 43 malware 7 manticore 17 mcp 5 mcsema 11 memory-safety 2 meta 12 mitigations 11 mlir 2 multi-agent systems 1 open-source 28 operational security 1 osquery 23 paper-review 11 people 17 podcast 1 policy 13 press-release 29 privacy 9 products 8 program-analysis 22 prompt injection 3 recursion 1 research-practice 44 reversing 18 rust 8 safedocs 1 semgrep 9 sinter 1 slither 4 snapshot fuzzing 1 sponsorships 13 stablecoins 1 static-analysis 37 supply-chain 12 symbolic-execution 18 testing handbook 6 threat modeling 4 threshold-signatures 1 tool-release 10 training 3 vast 2 vulnerabilities 5 vulnerability-disclosure 24 windows 3 working-at-trail-of-bits 4 year-in-review 6 zero-knowledge 12
© 2025 Trail of Bits. 使用Hugo和Mainroad主题生成。