VMware 认证绕过漏洞分析。
近日,VMware recently修复了VMware Workspace ONE Access、Identity Manager 和vRealize Automation产品中的一个认证绕过漏洞。漏洞CVE编号CVE-2022-22972,CVSS评分7.6分。攻击者利用该漏洞可以获得admin管理员权限,并以任意已知本地用户登录。
补丁分析
研究人员通过对补丁进行分析,发现了名为patch-vRA-7.6.0-19482496-HF27.content和patch-vRA-7.6.0-19772459.19640138-HF28.content的zip压缩文件,研究人员进一步分析发现horizon service rpm被移动了。
研究人员使用rpm2cpio来提取2个rpm的内容,发现了3个差异,分别是dbConnection-0.1-jar-with-dependencies.jar、analytics-0.1.war和 frontend-01.war。研究人员提取了.war文件并在frontend-01.war中找到了以下内容:
Frontend war文件差异
研究人员发现了一个新的HostHeaderFilter.class文件和web.xml中的差异,表明新的HostHeaderFilter应用于所有url模式。
web.xml 差异
然后,研究人员使用Java反编译器将HostHeaderFilter.class转化为HostHeaderFilter.java:
HostHeaderFilter.java
研究人员发现过滤器拒绝了所有含有host header的请求。
运行时分析
研究人员发现发送无效的host header到登录终端时会出现一些奇怪的现象。然后,研究人员将Host header设置为asdf:
无效的host header请求
研究人员查看应用上的horizon.log,发现应用尝试解析asdf。
DNS解析失败
这表明应用尝试连接到host header中的任意内容。
运行登录服务器
研究人员搭建了一个简单的https服务器:
https服务器
研究人员将IP地址插入host header中,发现日志中有新的异常:
Ssl异常
异常表明应用无法验证证书。因为服务器上的证书是自签名的。研究人员将政府添加到应用上存储的Java证书库后,发现应用可以连接并在HTTP POST请求中发送登录信息。
Auth服务器连接
应用希望得到一个来自HTTP 服务器的响应来确定用户是否被授予权限。为此,研究人员重写服务器对任意POST请求都影响200状态码。
https服务器
有了新的服务器,就可以成功登录:
成功登录
自动化漏洞利用
研究人员使用Burp Suite代理来修改浏览器发送的请求,但需要在漏洞利用脚本中实现流程自动化。研究人员最终要发送一个POST请求到定制host header的SAAS/auth/login/embeddedauthbroker/callback。终端要求一些额外的元数据来编码到POST的body部分。研究人员检查登录页面源发现了隐藏表单域中的信息:
隐藏的表单域
PoC发送/vcac终端的请求,并分析登录页面来提取器隐藏域。然后,隐藏的域编码到最终POST的body部分,其中host header设置为定制的登录服务器。然后PoC分析响应来提取认证cookie。这些cookie可以用于执行动作。PoC代码参见:https://github.com/horizon3ai/CVE-2022-22972
总结
CVE-2022-22972是一个Host header操作漏洞。攻击者利用该漏洞可以实现权限提升。VMware已经发布了漏洞补丁,研究人员建议用户尽快安装漏洞补丁。
本文翻译自:https://www.horizon3.ai/vmware-authentication-bypass-vulnerability-cve-2022-22972-technical-deep-dive/如若转载,请注明原文地址