在VMware vCenter中未经授权的RCE

2021-02-25 03:12:57

由于VMware vCenter RCE(CVE-2021-21972)的PoC现在可以随时可用,因此我们正在发布涵盖所有技术细节的文章。

在2020年秋天,我发现了VMware vCenter的vSphere客户端组件中的情侣漏洞。这些漏洞允许未授权的客户端通过各种协议代表目标服务器执行任意命令并发送请求:

在本文中,我将介绍如何发现VMware vSphere Client RCE漏洞,泄露技术细节,并解释如何在各种平台上利用它。

vSphere和vCenter启用公司基础架构的虚拟化,并提供对其的控制手段。虽然可以在周边遇到此软件,但在大多数情况下它位于内部网络上。

在分析vSphere客户端期间,我雇用了一个黑匣子和一个白盒方法,以便像往常一样,专注于无需授权就可以利用的漏洞。来自Web Panel,我试图发送尽可能多的不同请求,所有都没有cookie标题。

在向/ ui / vropspluginui /休息/服务/ *发送未经授权的请求之后,我发现它实际上并未需要任何身份验证。

Web应用程序依赖于其中一些功能的插件,通常位于单独的.jar文件中。例如,VROPSPLUGINUI插件在文件vROPSPLUGIN-service.jar中实现。

从我理解的那样,每个插件都必须指定哪些端点需要在Web面板中授权运行,并且哪些端口不存在。此插件配置为允许未经授权的用户访问其处理的任何URL。

在迭代所有条目时,使用文件命名约定在磁盘上创建每个当前条目的副本:/ tmp / unicorn_ova_dir + entry_name。

这是我注意到.tar条目的名称不会过滤。它们只是与字符串“/ tmp / unicorn_ova_dir”连接;在生成的位置创建文件。这意味着我们可以创建一个包含字符串“../”的存档条目,这将允许我们将任意文件上传到服务器上的任意目录。

为了利用这个Quirk,我使用了evilarc实用程序来制作.tar存档。这是它第二次派上派上,前者是在这个博客中搜索先前描述的类似漏洞。

生成的存档包含一个带名称的文件.. \ .. \ testfolder \ testupload.txt。我将其上传到URL / UI / VROPSPLUGINUI / REST / SERVICES / UPLOOVA,并检查了COSTFOLDER文件夹的存在,并在C:\ Root目录中存在嵌套文件。

为了能够在目标系统上执行任意命令,我们需要上传将无法授权访问的.jsp shell。要发现这样的位置:

在磁盘上找到可写的路径,其中可能是使用先前描述的漏洞创建的文件创建

将找到的文件路径映射到可访问的Web根目录的文件夹结构中,该目录能够运行.jsp脚本,并且不需要授权。

首先,让我们通过上传文件testUpload.txt并查看其属性菜单来检查上传的文件获得了哪些特权。我们可以看到它的所有者是用户“ vsphere-ui”。

在搜索候选位置时,目录C:\ ProgramData \ VMware \ vCenterServer \ data \ perfcharts \ tc-instance \ webapps \ statsreport \(其中存在.jsp文件)看起来很有希望。

检查未经授权的对jsp脚本的访问会产生成功。让我们检查一下vsphere-ui是否对该目录具有写权限。

当然可以。伟大的!现在,我们可以上传特制的.jsp文件,以在系统上执行命令。

让我们创建一个包含精心制作的.jsp shell有效负载的存档,并将其发送到我们正在研究的URL。

我们的.jsp脚本已上传到服务器,这使我们有机会在具有NT AUTHORITY \ SYSTEM特权的系统上执行任意命令。

对于Linux实例有点不同。但是,它们也易受攻击,允许外部用户上传任意文件。

在Linux上,我找不到允许同时上传和执行.jsp shell的目录。相反,存在另一种在服务器上实现命令执行的方法。

我们知道我们可以使用vSphere-UI用户的权限上传任意文件。如果我们将公钥上传到此用户的主目录,请尝试通过使用私钥通过SSH连接到服务器?

接下来,我们使用漏洞上传文件并尝试通过SSH连接到目标主机:

在本文中,我已经展示了一种在VMware vSphere Client中实现RCE作为未经身份验证的用户的方法。除了获取命令行外,攻击者还可以在VROPSPLUGINUI插件中缺乏身份验证,执行其他恶意操作。

强烈建议使用更新到最新版本的VMware vSphere Client。有关更多信息,请参阅IVMSA-2021-0002。

10月9日,2020年 - 漏洞成功复制,供应商开始在修复计划上工作