云安全AKSK随笔
AliYyun给出的AKSK的作用
在阿里云,用户可以使用AccessKey(简称AK)构造一个API请求(或者使用云服务SDK)来操作资源。AccessKey包括AccessKey ID和AccessKey Secret。其中AccessKey ID用于标识用户,AccessKey Secret是用来验证用户身份合法性的密钥。AccessKey Secret必须保密。
AK/SK泄露的攻击面
1.AK/SK接管存储桶
当泄露的AK/SK有对存储桶有操作权限的时候,可以在aliyun Cli配置AK/SK来接管存储桶
使用aliyun oss ls
来列出桶
使用aliyun oss ls <桶的名称>
列出桶里面的内容
2.AK/SK执行云服务器命令
当泄露的AK/SK
对ECS有操作权限的时候
可以使用aliyun ecs DescribeInstances
列出ECS资源
使用 aliyun ecs RunCommand --CommandContent "<命令内容>" --Type RunShellScript --InstanceId.1 <示例id>
可以在ECS上面执行命令
返回了``
使用aliyun ecs DescribeInvocationResults --CommandId <CommandId>
可以看经过base64编码后的输出
用户临时凭证STS 泄露
STS(Security Token Service)临时访问凭证是一种短期有效的身份认证机制,用于在限定的时间内授予用户对阿里云资源的访问权限。与永久访问密钥(AccessKey ID 和 AccessKey Secret)不同,STS 临时访问凭证具有时效性,过期后自动失效,从而有效降低了因密钥泄露导致的安全风险
STS可以由具有调用AssumeRole
接口的Ram用户获取扮演指定的RAM角色,从而获取STS临时访问凭证。
通过STS访问OSS资源demo
创建Ram用户
身份管理
->创建用户
- 给Ram用户授予访问
AssumeRole
的权限
- 给Ram用户授予访问
访问控制左侧
权限管理
->权限策略
->创建权限策略
->脚本编辑
创建赋予上传权限的策略1
2
3
4
5
6
7
8
9
10{
"Version": "1",
"Statement": [
{
"Action": "oss:PutObject",
"Resource": "acs:oss:*:*:******/*",
"Effect": "Allow"
}
]
}创建角色 然后赋予角色刚刚的自定义权限策略
在阿里给出的API接口 使用刚刚创建的ram扮演刚刚创建的ram角色来调用
填入ram角色的RoleArn
与RoleSessionName
在aliyun
中使用aliyun configure --mode StsToken
配置STS
然后可以使用cp将文件上传到oss中
通过STS访问ECS资源demo
创建一个角色
添加管理ecs的权限
将Ram用户与Ecs管理
如果ECS服务器上面存在SSRF漏洞或者你已经RCE了
可以试着在ECS上面访问一下阿里的元数据地址http://100.100.100.200/latest/meta-data/
如果配置了Ram则会有一个ram
然后访问ram下面的资源获得STS
通过配置aliyun cli
工具即可对控制ECS