橄榄阿里云服务

目录

环境搭建:https://github.com/HuoCorp/TerraformGoat

OSS

OSS即阿里云的对象存储服务

Key遍历/爆破

如果Bucket的ListObjects权限打开了,授权用户给的是匿名账号(列出key值),并且Bucket ACL是公共读或者公共读写(访问资源),那么就可以在URL遍历所有key值,并访问这些资源

就像这样

爆破就是直接目录爆破了,没啥好说的,OSS里key值就可以理解为文件名

未授权上传

如果存储桶配置为可写,那么就可以进行任意文件上传

oss后台里的Bucket ACL设置为公共读写后就可能遇到这种安全问题

可以看到我们向一个存储桶里写入了一个名为test.txt的文件且内容为asd,服务端返回了200

再来看看到底上传过去没,访问 bucket-url/text.txt,发现确实是写入了

不仅如此,还可以覆盖其他文件

这是原本的object内容

覆盖

发现确实覆盖了

策略公开可读

即策略可以被任何人读到

oss给匿名帐户开启了GetBucketPolicy

GetBucketPolicy (aliyun.com)

url?policy

ACL可读写

即Object的ACL可以被看见、可以被任意修改

为匿名帐号打开了GetObjectAcl 和 PutObjectAcl后就会出现这种问题

https://help.aliyun.com/document_detail/31987.html GetObjectAcl

https://help.aliyun.com/document_detail/31986.html PutObjectAcl

访问 bucket_url/objectname?acl 即可看到对应object的acl

然后使用PUT方法,附带x-oss-object-acl 请求头,就能对请求的object的acl进行修改

PUT发包以后,再次查看对应object的acl,变成了public-read

AccessKeyId,SecretAccessKey泄露

这俩东西泄露了就能直接接管OSS了。利用工具https://github.com/mrknow001/aliyun-accesskey-Tools

或者使用阿里云提供的cli(aliyun) ,输入 aliyun configure ,把ak输进去就能用这个账号的各个接口API了

一般会在下面这些场景泄露:

源码、网站前端代码、反汇编APP

当然,如果控制台账号密码泄露了,那么就可以直接接管所有该账户上的资源了

ECS

ref:https://zone.huoxian.cn/d/1064-ecs

ssrf读取用户数据

在阿里云ECS里 可以直接访问http://100.100.100.200/latest/[metadata] 来查看实例的元数据,如meta-data查看所有元数据根目录,instance-id查看实例id等,更多请见官方文档https://help.aliyun.com/document_detail/108460.html

如果ECS上存在ssrf漏洞,则可以通过访问这个IP来获取元数据

如果ecs绑定了ram账户,那么就可以通过读取元数据来读取ram账户的ak,从而接管此账户

100.100.100.200/latest/meta-data/ram/security-credentials 获取绑定的ram账户名
100.100.100.200/latest/meta-data/ram/security-credentials/ram_username 获取ak信息

命令执行

在我们获取ak后,利用aliyun cli 即可快捷的在ecs里执行命令

aliyun ecs DescribeInstances 获取所有ecs实例信息
aliyun ecs RunCommand --InstanceId.1 i-2ze2sfmwdrs1z5xxoumk --RegionId cn-beijing --Type RunShellScript --CommandContent "touch /tmp/UzJu" 执行命令

创建持久化ram账号

利用云函数权限维持

利用后门镜像权限维持