漏洞复现 - VMware vCenter Server 任意文件上传漏洞 (CVE-2021-22005)

本文最后更新于 2025年7月14日 下午

📌 漏洞描述

CVE-2021-22005 是 VMware vCenter Server 中存在的一个关键任意文件上传漏洞,攻击者无需认证即可向 vCenter Server 上传任意文件并执行,从而在服务器上远程执行任意代码。

🎯 漏洞复现

EXP 工具地址
👉 https://github.com/shmilylty/cve-2021-22005-exp

1
python exp.py -t http://url

image-20250714123408600


🕵️‍♂️ 后续渗透操作详解

成功利用 CVE-2021-22005 漏洞上传 WebShell 并拿到初始权限后,可以通过对 vCenter 的核心文件进行获取和解析,进一步提升权限或伪造合法身份,实现对集群的完全控制。

🔍 1️⃣ 找到 data.mdb 文件位置

data.mdb 是 vCenter 中保存身份验证信息(包括 SSO、LDAP 等)的核心数据库文件。拿到它,就相当于拿到了管理员的身份证明材料。

不同系统下该文件默认存放路径如下:

1
2
3
🖥️ Windows: C:/ProgramData/VMware/vCenterServer/data/vmdird/data.mdb

🐧 Linux: /storage/db/vmware-vmdir/data.mdb

📌 Tip:可通过 WebShell 查找此文件是否存在,并尝试下载。

拿到 data.mdb 后,下一步是伪造 SAML 票据生成合法的登录 Cookie,以管理员身份接管整个 vCenter 环境。

✅ 方法一:直接下载 data.mdb 到本地解析

工具推荐:horizon3ai/vcenter_saml_login

操作示例:

1
python vcenter_saml_login.py -p data.mdb -t 10.7.8.227

该脚本会解析 data.mdb 并生成可用的 SAML Token,然后帮你直接获取合法 Cookie。

✅ 方法二:目标机器无法下载,可在目标机本地解析

如果目标机器的 data.mdb 文件体积过大、不方便下载,或者网络受限,可以直接在目标主机执行提取脚本。

推荐工具:

使用示例:

1
python vCenter_ExtraCertFromMdb.py data.mdb

运行后,会从 data.mdb 中提取出:

  • idp_cert.txt
  • trusted_cert_1.txt
  • trusted_cert_2.txt

即 vCenter 的 SSO 身份验证证书。

📥 生成 Cookie

拿到证书后,将它们下载到本地,再使用下面的脚本生成可用的登录 Cookie:

脚本地址:vCenter_GenerateLoginCookie.py

1
python vCenter_GenerateLoginCookie.py <vcenter_ip> <vcenter_ip> vsphere.local idp_cert.txt trusted_cert_1.txt trusted_cert_2.txt

示例:

1
python vCenter_GenerateLoginCookie.py 192.168.121.135 192.168.121.135 vsphere.local idp_cert.txt trusted_cert_1.txt trusted_cert_2.txt

执行后会在控制台输出一个伪造好的 SAML Cookie,粘贴到浏览器即可

把生成的 Cookie 替换到浏览器中已有的 vCenter 会话 Cookie(或通过 Burp Suite 等工具注入),刷新页面,即可绕过密码验证,以管理员身份登录 vCenter 后台,控制整个服务器集群。

image-20250714123438461

⚠️ 风险提示

  • 此漏洞是未授权远程任意文件上传,结合后渗透可实现完整接管,影响极大。
  • 如果生产环境尚未修复,请立即隔离对外服务,并尽快升级或部署安全防护。