前言
最近看到几个公众号发关于CVE-2021-22005的帖子,但是发现大家都是纸上谈兵,没有实操的帖子是没有灵魂的,实践才是检验真理的唯一准则。正好我前几天做渗透测试(正经渗透测试,有授权的!)的时候通过CVE-2021-21972拿下了一台机器,并且成功登陆进了控制平台里,下面我给大家复原一下整个攻击的思路。
vSphere 是 VMware 推出的虚拟化平台套件,包含 ESXi、vCenter Server 等一系列的软件。其中 vCenter Server 为 ESXi 的控制中心,可从单一控制点统一管理数据中心的所有 vSphere 主机和虚拟机。
这个CVE-2021-22005漏洞受影响的范围为:
1.VMware vCenter Server 7.0系列 < 7.0.U1c
2.VMware vCenter Server 6.7系列 < 6.7.U3l
3.VMware vCenter Server 6.5系列 < 6.5 U3n
4.VMware ESXi 7.0系列 < ESXi70U1c-17325551
5.VMware ESXi 6.7系列 < ESXi670-202102401-SG
6.VMware ESXi 6.5系列 < ESXi650-202102101-SG
实操
信息收集阶段
从外网打了个点,进内网的时候非常混乱,发现了一大堆ESXi,有个有经验的师傅说找到vcenter就妥了,这一大堆机器就全干下来了,于是我们写脚本将这些url全跑一遍,通过返回的字节长度以及状态码,最终锁定了两台机器。
锁定目标
首先我们访问https://ip/ui/vropspluginui/rest/services/uploadova
如果返回的状态码为405,那么可能机会存在这个洞。
然后在github找到一个exp
代码语言:javascript复制https://github.com/NS-Sp4ce/CVE-2021-21972
这里有点坑,payload是默认的linux。而我们的机器是windows,打了半天打不进去才发现这个问题,后来改了脚本一瞬间就梭进去了。这儿需要修改的地方就是那个函数,根据实际情况修改。
再攻击成功后会返回一个shell的地址,用冰蝎3进行连接。
连接成功后就拿到了目标系统的system权限。
我们发现拿到机器也登陆不上控制平台,要登录还需要密码。
这时候就有两个思路:
1.要么去读取vCenter cookie,通过解密脚本解密,登上控制台。
2.直接通过vdcadmintool.exe修改密码。
这里我选择直接改密码,在vcenter的安装目录里有一个vdcadmintool.exe,他的默认地址是C:Program FilesVMwarevCenter Servervmdird,我们可以利用这个工具对平台的密码进行修改,他会生成新的随机密码。
代码语言:javascript复制==================
Please select:
0. exit
1. Test LDAP connectivity
2. Force start replication cycle
3. Reset account password
4. Set log level and mask
5. Set vmdir state
6. Get vmdir state
7. Get vmdir log level and mask
==================
运行它会出现一下选项,我们选择3,然后输入用户名,在这我们直接蒙了一个他的初始用户名administrator@vsphere.local,正确之后就能修改密码了。
在修改成功之后。我们利用新生成的密码成功进入控制平台,进去之后发现里面有几十台虚拟机,其中包括好多的重要系统,内网一把梭了,报告提交game over!
由于信息非常敏感,所以我就在网上随便找了一张相同的图,就是这么回事儿,大家凑活看看吧。
总结
这次内网漫游的总结如下:
1.发现内网大堆ESXi,然后就联想到vcenter服务器,通过ip去批量跑路径,最终定位到vcenter
2.网上脚本有些脚本只支持Linux,修改一下就行。
3.如果拿下vcenter服务器,那么我们登陆上控制台大概有两种思路