文章摘要
文章介绍了针对INSTAR IN-8401 2K+网络摄像头的漏洞研究过程,从固件提取分析到发现未知漏洞,最终通过构建ARM ROP链绕过ASLR防护实现远程代码执行。该设备存在约1.2万台暴露在公网,研究展示了无需地址泄露的复杂漏洞利用方法。
文章总结
绕过ASLR实现RCE:利用ROP链攻击INSTAR IP摄像头漏洞
研究背景
在完成ARM漏洞利用研究后,作者转向更现代的IoT目标——德国制造商INSTAR的IN-8401 2K+ IP摄像头。该设备暴露了基于Web的配置界面,全球约12,000台设备可通过互联网访问。
固件提取与分析
硬件调试接口
通过厂商文档发现设备暴露UART接口,使用PCBites和FTDI转换器连接后,成功中断启动过程进入U-Boot环境。通过修改bootargs内核参数(添加init=/bin/sh),最终获取root shell并导出完整文件系统。攻击面分析
- Web架构:lighttpd作为反向代理,将.cgi请求转发至
fcgi_server,后者通过TLV格式与ipc_server通信。 - 核心目标:未认证可达的
fcgi_server和ipc_server二进制文件。
- Web架构:lighttpd作为反向代理,将.cgi请求转发至
漏洞发现
漏洞定位
在fcgi_server的Basic认证处理流程中,发现自定义Base64解码函数存在栈缓冲区溢出(固定516字节缓冲区)。通过超长认证字符串触发崩溃,确认PC寄存器被覆盖为0x41414140。利用限制
- 缓解措施:NX启用(不可执行栈)、部分RELRO(GOT可写)、非PIE(二进制地址固定)。
- 挑战:需绕过ASLR,且libc地址随机化。
漏洞利用
ROP链设计
- 关键思路:通过GOT/PLT机制获取已知函数地址(如
isalnum),计算目标函数(system)偏移,修改GOT实现跳转。 - 核心步骤:
- 读取
isalnum@got地址(已知) - 计算
system偏移(0x13230) - 通过ROP链完成算术运算并写回GOT
- 调用被篡改的
isalnum@plt实际执行system
- 读取
- 关键思路:通过GOT/PLT机制获取已知函数地址(如
关键gadget
- 地址加载:
ldr r6, [r3, #0x10](从GOT读取isalnum地址) - 算术运算:
add r6, fp, r6(fp存储偏移量) - 内存写入:
str r0, [r4, #4](将system地址写回GOT) - 最终跳转:
blx r6(触发system调用)
- 地址加载:
完整利用链
通过精心构造的栈布局,依次:- 初始化寄存器(填充偏移量和临时值)
- 加载libc函数地址
- 执行算术运算
- 篡改GOT条目
- 传递命令参数并跳转
成果与修复
- 漏洞影响:实现未认证远程代码执行(RCE),获得设备root权限。
- 修复情况:厂商在90天内发布更新,漏洞细节和PoC已公开(GitHub)。
技术亮点
- 无泄漏ASLR绕过:通过静态二进制gadget动态计算libc地址。
- 实战限制克服:避免暴力破解(32位系统可行但低效),采用一次性精准利用。
- 嵌入式安全启示:强调硬件调试接口风险、中间件安全审计重要性。
(注:原文中调试过程、辅助工具使用等细节已简化,保留核心逻辑路径。完整技术细节可参考原始博客和漏洞报告。)
评论总结
这篇评论主要围绕ASLR(地址空间布局随机化)绕过技术的讨论,观点呈现多元化:
- 对技术价值的肯定:
- "Good job... a fun read nonetheless"(评论1)
- "It’s fun working on targets with a less established research history"(评论1)
- 对ASLR绕过的技术性质疑:
- "I would not consider this actually bypassing ASLR"(评论2)
- "ASLR is already turned off for a critically important block of code"(评论2)
- 对安全防护缺失的关注:
- "The most shocking part is the absence of stack canaries"(评论3)
- "I know there are issues with them on microcontrollers"(评论3)
- 对技术细节的追问:
- "how was it quickly checked? What was the output..."(评论5)
- "you expect to see PIE enabled not DSO"(评论5)
- 对技术分享的赞赏:
- "Expanding it, perhaps to the benefit of others like me"(评论4)