作者:Niranjan Pokhrel
独立研究项目,在隔离的家庭实验室中复现并记录一个已公开披露的严重 VMware vCenter Server 漏洞,以理解漏洞类别、利用路径和防御缓解措施。
| CVE | CVE-2021-21972 |
| CVSSv3 基础评分 | 9.8(严重) |
| 厂商公告 | VMSA-2021-0002 |
| 受影响产品 | VMware vCenter Server 6.5 / 6.7 / 7.0 |
| 漏洞类别 | 未认证任意文件上传 → 远程代码执行 |
| 状态 | 已由 VMware 修复(2020 年 11 月 – 2021 年 2 月)。实验室仅出于研究目的使用故意过时、隔离的版本。 |
vCenter Server 是 VMware 虚拟化基础设施的中央管理平面——攻陷它可能意味着攻陷整个虚拟数据中心。该漏洞是一个教科书式的例子,展示了单个插件端点缺少身份验证检查如何升级为对主机的完全接管。我搭建这个实验室是为了从阅读 CVE 公告转向真正理解攻击面、利用链,以及同样重要的——应该如何预防以及如何在防御层面检测它。
该漏洞位于 vSphere Client(HTML5)中,具体是 vCenter Server 的一个插件,它暴露了一个文件上传端点(/ui/vropspluginui/rest/services/uploadova),且无需身份验证。能够访问 443 端口的攻击者可以向该端点发送精心构造的 POST 请求,将任意文件(包括 Web Shell)上传到底层操作系统上可通过 Web 访问的目录。这使攻击者能够以 vCenter 服务的权限执行代码,实际上完全控制该设备。
从高层次来看,攻击链如下:
完全构建在隔离的、不面向互联网的虚拟网络中,不包含任何生产数据:
(原始构建中的具体 IP 地址、凭据和基础设施细节有意从本公开文档中省略。)
防御方(即蓝队或审计人员)可以通过检查目标的上传端点是否以与未修补漏洞一致的方式响应来确认漏洞是否存在——这与漏洞扫描器或内部安全团队在攻击者之前识别网络中暴露的、未修补的 vCenter 实例所运行的检查类型相同。
该 CVE 的公开 Nmap NSE 检测脚本可在多个开源安全仓库中获取;此处不进行复现,以保持本 README 侧重于文档记录而非分发即用型扫描/利用工具。在实验室中,存在漏洞的目标在扫描输出中被标记为 VULNERABLE(可利用),这是优先进行立即修补的触发信号。
该 CVE 的可用概念验证利用程序自 2021 年起已公开可用,由 Positive Technologies 的 Mikhail Klyuchnikov 发现;为避免从本资料库分发即用型 RCE 载荷,此处不复现利用代码——本文档的重点是理解,而非工具。总而言之,公开的利用程序自动化了上述步骤 2–3:它将 JSP Web Shell 打包为预期的上传格式,POST 到存在漏洞的端点,确认其落入可通过 Web 访问的路径,然后利用它向攻击者触发反向 Shell。
本项目在完全隔离、非生产的实验室环境中进行,仅用于教育和专业发展目的。未访问任何未经授权的系统。