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,则代表存在漏洞

fofatitle="+ 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()

          ——心,若没有栖息的地方,到哪都是流浪

 


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

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部