AliYyun给出的AKSK的作用

在阿里云,用户可以使用AccessKey(简称AK)构造一个API请求(或者使用云服务SDK)来操作资源。AccessKey包括AccessKey IDAccessKey Secret。其中AccessKey ID用于标识用户,AccessKey Secret是用来验证用户身份合法性的密钥。AccessKey Secret必须保密。

AK/SK泄露的攻击面

1.AK/SK接管存储桶

当泄露的AK/SK有对存储桶有操作权限的时候,可以在aliyun Cli配置AK/SK来接管存储桶

使用aliyun oss ls来列出桶

image-20250306161639322

使用aliyun oss ls <桶的名称>列出桶里面的内容

image-20250306161828186

image-20250306162246016

2.AK/SK执行云服务器命令

当泄露的AK/SK对ECS有操作权限的时候

可以使用aliyun ecs DescribeInstances列出ECS资源

image-20250306164358770

使用 aliyun ecs RunCommand --CommandContent "<命令内容>" --Type RunShellScript --InstanceId.1 <示例id>

可以在ECS上面执行命令

image-20250306165608968

返回了``

使用aliyun ecs DescribeInvocationResults --CommandId <CommandId>
可以看经过base64编码后的输出

image-20250306165751738

image-20250306165803961

用户临时凭证STS 泄露

STS(Security Token Service)临时访问凭证是一种短期有效的身份认证机制,用于在限定的时间内授予用户对阿里云资源的访问权限。与永久访问密钥(AccessKey ID 和 AccessKey Secret)不同,STS 临时访问凭证具有时效性,过期后自动失效,从而有效降低了因密钥泄露导致的安全风险

STS可以由具有调用AssumeRole接口的Ram用户获取扮演指定的RAM角色,从而获取STS临时访问凭证。

通过STS访问OSS资源demo

  1. 创建Ram用户 身份管理 ->创建用户

    • 给Ram用户授予访问AssumeRole的权限
  2. 访问控制左侧 权限管理 ->权限策略->创建权限策略->脚本编辑 创建赋予上传权限的策略

    image-20250306181059634

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    {
    "Version": "1",
    "Statement": [
    {
    "Action": "oss:PutObject",
    "Resource": "acs:oss:*:*:******/*",
    "Effect": "Allow"
    }
    ]
    }
  3. 创建角色 然后赋予角色刚刚的自定义权限策略

    image-20250306181313307

在阿里给出的API接口 使用刚刚创建的ram扮演刚刚创建的ram角色来调用

填入ram角色的RoleArnRoleSessionName

image-20250306181915811

aliyun中使用aliyun configure --mode StsToken配置STS

然后可以使用cp将文件上传到oss中

image-20250306183651143

image-20250306183728641

通过STS访问ECS资源demo

创建一个角色

image-20250306184648621

添加管理ecs的权限

image-20250306184755280

将Ram用户与Ecs管理

image-20250306184916959

如果ECS服务器上面存在SSRF漏洞或者你已经RCE了

可以试着在ECS上面访问一下阿里的元数据地址http://100.100.100.200/latest/meta-data/

如果配置了Ram则会有一个ram

image-20250306185143195

然后访问ram下面的资源获得STS

image-20250306185225467

通过配置aliyun cli工具即可对控制ECS