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 url
		url = args.target_url
		if url.startswith('http://') or url.startswith('https://'):
			pass
		else:
			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_code
		print('status_code:',code)
		if code == 405:
			print('[+]漏洞存在')
		else:
			print('[-]漏洞不存在')
	except:
		print('[-]发生错误')
if __name__ == '__main__':
	url()
	poc()

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

 

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

百事都可樂~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值