0、对象存储访问控制——公开访问:

每个云服务商的Bucket的访问控制都是不一样的
大部分是由公共权限和用户权限配置共同组成了存储桶访问权限。
公共权限包括私有读写、公有读私有写和公有读写这几个选项可以选择,且为单选
image.png
设置公开后,直接通过文件对象URL直接访问,适合放一些头像图片之类的
私有空间是必须要获得拥有者的访问权限才能访问,但是实际上的做法其实就是加了个签名而已,这个签名具体的效果要看业务怎么实现了。

如下提供类似的URL为类似AWS S3 签名URL形式
https://bucket.s3-china-region.cloud.com/?ak=xxxx&sgin=xxxx&time=16xxxx
AK 用于控制权限
Sign 用于验证签名,例如url+sk+query参数+header+时间戳拼接在一起,使用某个作为盐进行hash生成sign,所以是不可推算的。
time 时间戳,用于该URL过期时间,例如明天,该URL就不再可访问。

漏洞点:那如果在错误的配置下,给了listobject权限,就会导致可遍历存储桶
image.png
如下,打开显示所有文件,可下载。
https://carma-dev.s3.amazonaws.com/
漏洞示例
image.png
hackerone案例
image.png

1、存储桶目录爆破问题

当遇到云上存储桶时,如果当前桶不存在可能存在如下两种情况
InvalidBucketName:表示存储桶的名称不符合规范,属于无效的存储桶名称
image.png
NoSuchBucket:表示没有这个存储桶
image.png
而如果存在会返回accessdenied或者目录遍历的漏洞

2、存储桶域名劫持

最常见的场景:
访问某域名,提示 NoSuchBucket,如下图所示
image.png
然后直接查看相关文档就好了

  1. https://www.pa55w0rd.online/oss/

此外阿里云oss也可能存在泄露oss key 等敏感信息,
比较常见的就是github.com泄露,
或者是spring heapdump 信息泄露,
然后就是普通的接口api信息泄露/JS信息泄露,
或者就是报错信息泄露,比如thinkphp django
或是APK反编译后直接硬编码在里面

getshell工具
https://github.com/iiiusky/alicloud-tools

值得一提的是,腾讯云是不存在接管Bucket这种漏洞的,原因是appid是在控制台用时间戳随机生成的,因此无法创建同名Bucket,故不存在Bucket 接管问题:

出于安全考虑,从2019年9月23日起,针对之后新建的Bucket,直接使用OSS提供的默认域名,从互联网访问OSS上该Bucket的图片类型文件时,Content-Type(Mime-Type)为image/jpeg、image/gif、image/tiff、image/png、image/webp、image/svg+xml、image/bmp、image/x-ms-bmp、image/x-cmu-raster、image/exr、image/x-icon、image/heic,扩展名包括jpg、jpeg、jpe、png、tif、tiff、gif、svg、bmp、ico、ras、dib、svgz、webp、bm、jfif、x-png、exr、heic时,Response Header中会自动加上Content-Disposition:’attachment=filename;’。即从浏览器访问图片类型文件时,会以附件形式进行下载。建议您可以使用自定义域名访问OSS请求,如何绑定自定义域名请参见绑定自定义域名

3、PUT/DELETE文件上传或删除

image.png
在进行文件上传的时候,不光是oss的对象存储场景,尝尝会有功能例如上传头像功能,上传成功后不会返回jpg,也不会返回png,而是返回一个/images/asd123qwezxc4235adlfjioasf 这样没有后缀的文件。
此时传统的文件上传漏洞可能已经不行了,但是我们可以直接修改
content-type:
text/html
text/xml
text/javascript
text/html
text/plain

这样可能后端获取解析的就不再是图片,而是html文件
image.png
image.png

4、AWS S3漏洞

这类漏洞是我看hackeone上公开的报告里最多的劫持类相关漏洞。
AWS的AccessKEY泄露和阿里云的AccessKey泄露相比,权限没有那么大。 AWS S3类似于阿里云的OSS存储桶,用于备份和存储、媒体托管、软件传输等

原理:
如果开发人员删除了整个数据和S3 bucket,但是绑定的CNAME记录中仍然有待删除的AWS控制台。这种情况下,攻击者可以使用任何其他AWS账户声明该S3 bucket。

1、存储桶接管
如下面案例所示的存储桶接管就是比较标准的BUCKETNAME +CNAME未删除获取
https://mp.weixin.qq.com/s/VpkdGWHOkEAw-HC7K7VgVg

一个针对AWS的渗透测试练习平台
http://flaws.cloud
https://www.xiaobaibk.cn/xiaobai-467-1-1.html

5、租户access-key泄露问题

1、开发人员安全意识薄弱,将AK/SK上传到Github等公开项目上
2、由于配置不当,偶尔会出现在js,配置文件当中
3、APK的信息泄露
4、使用cos存储桶(腾讯的对象存储)时,存在的信息泄露,直接将key回显页面。

当我们获取到COS存储桶的AK时,一般来说只能获取到存储桶的文件管理权限。但是由于可能云账户体系的额配置不当,就会导致权限放大,从而有如《创建机器》,《修改机器配置》等权限乃至直接拿下云服务器。
也有可能获取到AK时,需要进入到内网才能使用,例如内网的《云控制台》,《内网管理平台》,《秘钥管理平台》等。

需要两个参数accessID和accesskey,相当于账户和密码

6、上传漏洞

1、文件覆盖(删除)
使用put或post文件上传,又没有对上传的路径进行sign的校验,此时就能产生文件覆盖的漏洞。
例如上传文件之前会产生一个tmpsecretkey,下一个数据包会使用tmpsecretkey来作为sign进行校验合法,但是当tmpsecretkey的权限为public时,此临时秘钥可被任何人使用,因此对文件就可以进行任意覆盖或上传。image.png

2、比如存在可上传html页面并解析。
某些尝试默认配置已存在文件禁止覆盖,那么就无法利用文件覆盖漏洞了。但是如果存在可上传html页面,相当于是黑链,可用来传播恶意页面。如果该oss网站解析了相关的企业域名后,相当于直接控制了一个子域名的权限,可用于xss和钓鱼。

8、下载的安全问题

  1. GET /download?uri=file HTTP/1.1
  2. Host: 192.168.20.31
  3. Accept: */*
  4. Accept-Language: en
  5. User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0)
  6. Connection: close

发送这个请求就会返回一个加参数的url,但是如果我们的url设置为空,例如这样。
那么就会访问到对象存储的管理节点信息,从而获取整个桶里的文件信息,再拿得到的key去构造访问链接,从而造成储存桶的文件遍历。

  1. GET /download?uri= HTTP/1.1
  2. Host: 192.168.20.31
  3. Accept: */*
  4. Accept-Language: en
  5. User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0)
  6. Connection: close

9、minIO的安全问题

minIO可以作为企业内部的存储桶
需要把Bucket(桶)的BP设置为Read&Write

  1. http://minio_out_url/bucket_path/

桶资源安全遍历
image.png

此系统还存在SSRF漏洞CVE-2021-21287
https://www.leavesongs.com/PENETRATION/the-collision-of-containers-and-the-cloud-pentesting-a-MinIO.html
默认口令minioadmin/minioadmin

8、Bucket配置策略可写

直接get访问,出现Access denied by policy
image.png

相关安全工具
https://github.com/UzJu/Cloud-Bucket-Leak-Detection-Tools

参考资料:
https://xz.aliyun.com/t/2078
https://blog.csdn.net/baozhourui/article/details/112305094
https://mp.weixin.qq.com/s/eZ8OAO5ELgUNvVricIStGA
https://mp.weixin.qq.com/s/q3bsrCKacuepKoFljYxJcg
https://www.yuque.com/mephisto-qq8qq/lsa30z/39224abd4160411fd9448b1b037d15f1
阿里云 https://zone.huoxian.cn/d/918-oss
腾讯云 https://zone.huoxian.cn/d/949-cos
谷歌云 https://zone.huoxian.cn/d/931
微软云 https://zone.huoxian.cn/d/940
AWS https://zone.huoxian.cn/d/907-aws-s3