Bug Bounty:突破沙箱编辑器执行RCE
字数 1096 2025-08-25 22:58:29
突破沙箱编辑器执行RCE漏洞分析与利用
漏洞概述
本文详细分析了一个在基于VS Code的Theia IDE在线编辑器中发现的沙箱逃逸漏洞,该漏洞允许攻击者突破沙箱限制,获得远程代码执行(RCE)能力,进而访问系统敏感信息如AWS凭证、SSL证书等。
漏洞发现环境
- 目标系统:HackerEarth子域上的在线IDE环境
- IDE类型:基于VS Code的Theia IDE
- 访问地址:https://[REDACTED]/#/home/node/he-theia/sandbox
漏洞利用过程
1. 初始侦察
目标环境是一个经过定制的在线IDE,观察发现:
- 终端视图命令被从IDE快捷方式和菜单中移除
- "运行"代码文件的功能被禁用
2. 沙箱逃逸方法
通过以下步骤突破沙箱限制:
-
打开命令面板:
- 使用快捷键
Ctrl/Cmd + Shift + P调出VS Code命令面板
- 使用快捷键
-
执行特定命令:
- 在命令面板中输入并执行
Task: Run selected text - 成功执行后会打开一个终端窗口
- 在命令面板中输入并执行
3. 获得RCE
一旦终端被打开,攻击者可以:
- 执行任意系统命令
- 读取系统配置文件
- 写入任意文件
敏感信息获取
1. 系统文件读取
通过终端可以访问:
- HackerEarth的私有SSL证书文件(.crt和.key)
- Git日志信息
- 原始
ide_fetcher.py脚本 - Web-IDE调用的原始参数
2. AWS凭证获取
由于实例运行在AWS基础设施上,尝试获取AWS凭证:
-
初始尝试:
curl http://169.254.169.254/latest/api/token- 未成功,因为目标使用ECS而非EC2
-
环境变量检查:
env- 发现关键环境变量:
ECS_CONTAINER_METADATA_URIAWS_CONTAINER_CREDENTIALS_RELATIVE_URI
- 发现关键环境变量:
-
获取凭证:
- 通过ECS元数据服务获取AWS凭证
漏洞影响
-
直接危害:
- 完全控制系统
- 访问所有系统文件
- 获取敏感凭证(AWS、SSL等)
-
潜在危害:
- 横向移动至其他AWS资源
- 数据泄露
- 供应链攻击
防御建议
-
沙箱强化:
- 完全禁用命令面板或限制可用命令
- 彻底移除任务执行功能
-
权限控制:
- 使用最小权限原则运行IDE
- 限制容器对元数据服务的访问
-
监控与审计:
- 监控异常终端活动
- 记录所有命令执行
-
环境隔离:
- 将开发环境与生产凭证隔离
- 使用临时凭证而非长期凭证
总结
该漏洞展示了即使看似安全的沙箱环境,也可能通过未完全禁用的功能链被突破。开发者在设计沙箱时需要考虑所有可能的交互路径,而不仅仅是显式的UI元素。同时,云环境中的元数据服务访问控制也是安全设计的关键部分。