Bug Bounty:突破沙箱编辑器执行RCE
惊鸿一瞥最是珍贵 渗透测试 10209浏览 · 2020-02-19 00:53

tl;dr

作者发现了一种逃逸沙箱编辑器来执行RCE的方法,进而可以查看AWS凭证、SSL证书和其他内容。

过程描述

前期侦察阶段,我发现了许多属于HackerEarth的子域和IP地址,其中之一是https://[REDACTED]/#/home/node/he-theia/sandbox, 在上面运行着一个基于VS-code的在线IDE,名为Theia IDE
乍一看,非常正常。
我四处点了点,网站工作人员从IDE快捷方式和菜单中删除了终端视图命令。试图“运行”代码文件,但这也是徒劳的。

然后,我试着通过从vscode调出命令面板(ctrl/cmd+Shift+p)来执行“Task: Run selected text”,不料,打开了一个终端。

一旦我能打开终端,就很容易得到RCE。

进一步尝试

我能够读取所有的系统配置文件,例如HackearEarth的私有SSL.crt和.key文件。

我甚至能够读取git日志和原始ide_fetcher.py.


通过命令行,我能够读取用于调用web-ide的原始参数。

读取aws凭证

在能够读取系统文件、写入任意文件和命令后,我想看看是否可以使用终端读取AWS凭据,因为该实例与HackerEarth的其余基础设施一样托管在AWS基础设施上。

我首先尝试了常用的元数据URL来访问AWS详细信息

curl http://169.254.169.254/latest/api/token

payload并没有起作用

接着我ping了一下域名,也并没有什么反应。这时候我从Puma Scan的一篇博客中获得了灵感。
博客中提到攻击ECS元数据不同于攻击EC2元数据服务,因为它来自不同的域。
然后我输出了环境变量


它包含ECS_CONTAINER_METADATA_URIAWS_CONTAINER_CREDENTIALS_RELATIVE_URI

原文:https://jatindhankhar.in/blog/responsible-disclosure-breaking-out-of-a-sandboxed-editor-to-perform-rce/#tldr
0 条评论
某人
表情
可输入 255