AliYun ECS 弹性计算服务攻防
2025-2-28
| 2025-4-1
Words 1510Read Time 4 min
type
status
date
slug
summary
tags
category
icon
password

一、环境搭建

环境需要安装Dockers引擎和Docker-compose,参考Centos7的安装
然后按着安装说明进行安装即可

1.踩坑

出现Zone.NotOnSale

notion image
使用如下命令去查询可用地区,并使用
notion image
即使使用回显结果中的地区也总是无法创建靶场,依旧是会报出Zone.NotOnSale的错误代码,提了issue后得到的回复是得需要修改配置文件。具体如下:
具体修改如下,将上述文件中的instance_type和system_disk_size做修改,并添加system_disk_category的键和值。
notion image
修改完即可成功搭建靶场。

出现EntityAlreadyExists.Policy

看提示可以知道存在名为AdministratorAccess的权限策略阻碍了靶场的搭建
notion image
可以通过OpenAPI去删除相关的策略
notion image
即可搭建靶场

其它

在几番折腾后,可能存在其他的配置没删干净,导致靶场无法搭建,可以按下面步骤进行清理。
  1. 及时靶场搭建失败也要使用如下命令销毁搭建的实例
  1. 删除存在的RAM角色
notion image
之后即可再次尝试靶场的搭建

二、攻防示例

1、元数据泄露

SSRF会导致元数据的获取
notion image

2、凭据泄露

云场景下的凭证泄露可以分成以下几种:
  • 控制台账号密码泄露,例如登录控制台的账号密码
  • 临时凭证泄露
  • 访问密钥泄露,即 AccessKeyId、SecretAccessKey 泄露
  • 实例登录凭证泄露,例如 AWS 在创建 EC2 生成的证书文件遭到泄露
对于这类凭证信息的收集,一般可以通过以下几种方法进行收集:
  • Github 敏感信息搜索
  • 反编译目标 APK、小程序
  • 目标网站源代码泄露

3、任意命令执行(需要ak、sk)

首先使用DescribeInstances参数获得ECS的所有信息
可以看到有一个InstanceId参数
notion image
将InstanceId参数代入下面的命令即可再ECS上执行命令
notion image
再到ECS实例中去观察,即可发现命令已经执行成功
notion image

反弹shell

在新服务器中开启监听
notion image
执行命令进行反弹
notion image

4、控制台接管(需要ak、sk)

CreateUser接口

调用CreateUser接口创建一个RAM用户
notion image

CreateLoginProfile接口

调用CreateLoginProfile接口为创建好的RAM用户启动Web控制台登录
notion image

AttachPolicyToUser

调用AttachPolicyToUser接口为指定用户添加权限策略
notion image

GetAccountAlias接口

首先通过调用GetAccountAlias接口查看账号别名
notion image
使用RAM账号登录阿里云控制台
notion image
选择通行密钥再次输入一遍密码即可实现控制台的登录
notion image
notion image

5、恶意镜像

获取控制台权限后,可导入存在后门的镜像,下次目标用户在选用镜像创建实例的时候,就会触发镜像中植入的恶意代码了。
notion image

6、RAM配置不当导致的控制台接管(需要能访问到ram/)

如果ECS存在安全漏洞的同时,还存在RAM角色的授权,那很可能会导致该用户的临时凭证泄露
在能访问ram/的前提下,当访问/latest/meta-data/ram/接口时,如果有security-credentials/的响应,就说明改ECS存在RAM角色的授权。
notion image
在不知道ram角色名的情况下,如果请求/ram/security-credentials/目录,则会返回RAM角色名
notion image
此时我们再请求role-serve即可获得该RAM的临时凭证
notion image
接下来就是配置临时密钥
notion image
创建RAM角色,配置登陆密码,并授予AdministratorAccess权限策略
notion image
登录控制台
notion image
💡
如果我们获取到的临时凭据在权限很小的时候,是无法创建RAM用户登录控制台的

三、权限维持

1、云函数

通过云函数的方式创建后门

2、后门镜像

获取控制台权限后,可导入存在后门的镜像,下次目标用户在选用镜像创建实例的时候,就会触发镜像中植入的恶意代码了。
notion image

3、创建访问密钥

即:

四、防御绕过

正常我们是没有办法直接结束进程阿里云的云盾的(ROOT用户也不行)
notion image
如果我们强制Kill就会收到告警(实测并未收到)
可以在云安全中心把所有能关的监控都关了,可以最大可能的杜绝告警信息的传递
notion image

五、信息搜集

1、元数据

在阿里云ECS常见下可以直接请求:http://100.100.100.200/latest/meta-data/ ,来获取元数据
notion image
💡
有时候我们请求http://100.100.100.200/latest/meta-data/会发现返回404,这是因为没有配置Ram用户

2、子网信息

在云场景下,可以直接通过控制台看到目标的网段情况。

七、横向移动

1、访问凭证

当拿到目标的临时访问凭证或者访问密钥后,可以通过命令行或者也可以通过控制台的方式进行内网横向移动。
  • 云安全
  • 阿里云
  • 云函数隐匿CS_IPAliYun的OSS对象存储攻防
    Loading...