大柚子

这世界不过如此

注:本文仅分享个人漏洞复现及排查,请勿用于非法途径。

概述

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

vSphere Client(HTML5)在 vCenter Server 插件中存在一个远程执行代码漏洞。未授权的攻击者可以通过开放 443 端口的服务器向 vCenter Server 发送精心构造的请求,从而在服务器上写入 webshell,最终造成远程任意代码执行。在 CVE-2021-21972 VMware vCenter Server 远程代码漏洞 中,攻击者可直接通过443端口构造恶意请求,执行任意代码,控制vCenter。

影响版本

VMware vCenter Server 7.0系列 < 7.0.U1c

VMware vCenter Server 6.7系列 < 6.7.U3l

VMware vCenter Server 6.5系列 < 6.5 U3n

复现过程

环境搭建

笔者这里搭建的版本为6.7.0 u2,安装教程可参考下面链接:

https://cloud.tencent.com/developer/news/246135

内部版本号和版本对应关系

https://www.mr-mao.cn/archives/vmware-vcenter-release-version.html

复现

vCenter Server 的 vROPS 插件的 API 未经过鉴权,存在一些敏感接口。其中 uploadova接口存在一个上传 OVA 文件的功能:代码逻辑是将 TAR 文件解压后上传到 /tmp/unicorn_ova_dir目录。

直接将 TAR 的文件名与 /tmp/unicorn_ova_dir拼接并写入文件。如果文件名内存在 ../即可实现目录遍历。对于 Linux 版本,可以创建一个包含 ../../home/vsphere-ui/.ssh/authorized_keys的 TAR 文件并上传后利用 SSH 登陆

poc探测

通过访问:https://10.0.12.12/ui/vropspluginui/rest/services/uploadova的回包来判断是否存在漏洞(回404则不存在漏洞,200,405则代表存在漏洞)

EXP:

这里复用网上的exp,但是有一个注意的点,默认是写到磁盘根目录的,故如果直接写文件名就会报错,操作不被允许

https://github.com/NS-Sp4ce/CVE-2021-21972

python CVE-2021-21972.py -t 10.0.12.12 -o win -f cmdjsp.jsp -p a\cmd.jsp

因为是写jsp脚本的形式,故要写在vcenter可执行权限目录下,默认安装路径为

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

这里执行exp,将jsp木马写入webapps\statsreport\目录下,文件名为test.jsp

访问该jsp,成功执行

应急排查

因为前期的利用过程并不是通过http请求获取,故访问日志中并没有记录,但是有一点,因为利用方式是通过上传shell,故后续会有访问shell文件的记录,此可作为一个排查点(注:利用方式不唯一,这只作为一个排查方向

https://kb.vmware.com/s/article/2110014?lang=zh_CN

VMware vCenter Server 6.0 日志位于 %ALLUSERSPROFILE%\VMWare\vCenterServer\logs 文件夹中。VMware vCenter Server Appliance 6.0 日志位于 /var/log/vmware/ 文件夹中

vmware vcenter 日志路径:C:\ProgramData\VMware\vCenterServer\logs\perfcharts

修复建议

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

Print Friendly, PDF & Email

发表回复

您的电子邮箱地址不会被公开。