存储桶攻防到云账号接管
对象存储各大云名词:
阿里云:OSS 腾讯云:COS 华为云:OBS
谷歌云:GCS 微软云:Blob 亚马逊云:S3
一、目录遍历:
1、公共读取
2、Policy(listObject)
-权限Bucket授权策略:设置ListObject显示完整结构
二、文件上传:
1、公共读写
2、Policy(ListObjects putobject)
-权限Bucket授权策略:设置ListObject显示完整结构
-权限Bucket读写权限:公共读写直接PUT文件任意上传
PUT /x.x
三、策略修改:
1、Policy(PutBucketPolicy)(未成功)
在腾讯云尝试过不支持匿名用户查看和修改policy,只有经授权的用户才能在腾讯云的api接口处查看和修改policy
四、桶接管:
Bucket存储桶绑定域名后,当存储桶被删除而域名解析未删除,可以尝试接管;
当Bucket显示NoSuchBucket说明是可以接管的,如果显示AccessDenied则不行。
五、AK/SK泄漏:
AccessKeyId,SecretAccessKey特征
在APP,小程序,JS文件等中泄漏导致(搜索,插件检测等)
危害:需要看是哪个用户角色的aksk,配置的是云服务器的就只能管理云服务器,需要看为其分配的策略,云账号的aksk危害最大,可以接管账号上所有云服务器,存储桶,云数据库等。
谷歌浏览器插件推荐
https://github.com/libaibaia/BucketTool
aksk利用工具推荐
https://github.com/dark-kingA/cloudTools
六、元数据:
实例元数据是指实例ID、VPC信息、网卡信息等实例属性信息,支持在ECS实例内部通过访问元数据服务(Metadata Service)获取。
通过该获取方式,您无需登录控制台或调用API,在实例内部即可访问实例信息,可以更便捷、安全地配置或管理正在运行的实例或实例上的程序。
各大云元数据地址:
阿里云元数据地址:http://100.100.100.200/
腾讯云元数据地址:http://metadata.tencentyun.com/
华为云元数据地址:http://169.254.169.254/
亚马云元数据地址:http://169.254.169.254/
微软云元数据地址:http://169.254.169.254/
谷歌云元数据地址:http://metadata.google.internal/
这里使用腾讯云做一个实验
先创建角色,然后为云服务器绑定角色


现在上服务器,使用curl访问一下元数据地址
curl http://metadata.tencentyun.com/latest/meta-data/

然后访问:curl http://metadata.tencentyun.com/latest/meta-data/cam/
腾讯这个不可见,腾讯云是cam,阿里云是ram,访问后可以看到一个security-credentials,再进一步访问就可以看到绑定的角色,在角色目录下就可得到当前角色的aksk

到这里思路就很明显了,去拿到aksk(js泄露,app小程序反编译,ssrf,得到shell后通过元数据拿到aksk)然后根据为这个服务器配置角色的权限大小看后续危害,达到从单个云服务器扩大为账号内所有云服务器,存储桶,云数据库的接管危害。