vRealize Operations 提供跨物理、虚拟和云基础架构的智能运维管理以及从应用程序到存储的可见性。使用基本策略的自动化,操作团队实现关键过程的自动化并提高 IT 效率。
VMWare vRealizes Operations曝光了多个漏洞:
-
CVE-2021-21975, vRealize Operations Manager API未授权SSRF;
-
CVE-2021-22023, vRealize Operations Manager API不安全对象引用;
-
CVE-2021-21983,vRealize Operations Manager API目录穿越任意文件写。
组合这些漏洞可以实现完整RCE利用链。
下载ova虚拟机,启动后进入网页设置:
选择新安装,设置管理员凭证:
使用默认证书:
设置NTP和可用性:
可继续添加节点:
完成后等待首次使用初始化:
漏洞主要产生于`vRealizes`产品的`CaSA`接口服务,运行目录位于`/usr/lib/vmware-casa`:
对外可通过443端口访问,协议为https:
curl --request GET --include --insecure --user admin:PASSWORD --silent https://<host-name-or-ip-address>/casa/ …
查看`cas-security-context.xml`,定位到多个接口无需认证便能登录,注意到其中的`/nodes/thumbprints`:
在`ClusterDefinitioinController`中定义路由规则:
`getNodesThumbPrints`调用`HttpMapFunction`发送HTTP请求:
`execute`经过执行最终发送请求,对输入内容没有进行检查过滤:
访问`/casa/nodes/thumbprints`,通过POST参数指定目标地址,经测试发送的请求为https且支持自签名SSL证书。默认访问路径为`/casa/node/thumbprint`,可以通过`?`拼接指定新的路径:
`/private/security/passwordsync`接口获取密码数据:
返回内容包含hash内容,造成信息泄露:
通过SSRF访问`https://127.0.0.1/casa/private/security/passwordsync,读取到格式为`SHA256、SHA512`的`admin`用户HASH,破解成功后便可登录443端口:
上文提到可以泄露登录HASH,但并不能保证完全被控制。在捕获SSRF请求中发现请求头中包含一个Basic Auth字段,用户和密码如下:
maintenanceAdmin:CX8mXScyXBDrdeHYWv*****
惊讶的发现使用该内置账户可直接登录443端口,相当于一个后门账户:
且认证后显示登录用户为`admin`,属于高权限用户组:
也可以使用这个密码直接访问`/casa/nodes/thumbprints`接口:
既然有了管理权限,就可更改admin账户密码:
之后使用22端口登录:
通过接口调用方法修改密码:
通过接口调用启用ssh:
问题接口位于`/private/config/slice/ha/certificate`,进行证书处理:
最终调用`FileCopyUtils.copy`拷贝文件:
未对输入输出进行检查,导致目录穿越问题产生:
通过`/casa/private/config/slice/ha/certificate` 穿越上传shell:
访问webshell,但需要添加`BasicAuth`头:
由于传播、利用此文档提供的信息而造成任何直接或间接的后果及损害,均由使用本人负责,且听安全团队及文章作者不为此承担任何责任。
点关注,不迷路!
原文始发于微信公众号(且听安全):玩转VMware之vRealize Operations Manager组合漏洞实现RCE