作者发现了一种逃逸沙箱编辑器来执行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凭据,因为该实例与HackerEarth的其余基础设施一样托管在AWS基础设施上。
我首先尝试了常用的元数据URL来访问AWS详细信息
curl http://169.254.169.254/latest/api/token
payload并没有起作用
接着我ping了一下域名,也并没有什么反应。这时候我从Puma Scan的一篇博客中获得了灵感。
博客中提到攻击ECS元数据不同于攻击EC2元数据服务,因为它来自不同的域。
然后我输出了环境变量
它包含ECS_CONTAINER_METADATA_URI
和AWS_CONTAINER_CREDENTIALS_RELATIVE_URI
原文:https://jatindhankhar.in/blog/responsible-disclosure-breaking-out-of-a-sandboxed-editor-to-perform-rce/#tldr