CVE-2022-1388 F5 BIG-IP iControl REST 处理进程分析与认证绕过漏洞复现

admin 2022年5月10日02:48:01评论84 views字数 1534阅读5分6秒阅读模式

★且听安全-点关注,不迷路!



CVE-2022-1388 F5 BIG-IP iControl REST 处理进程分析与认证绕过漏洞复现

★漏洞空间站-优质漏洞资源和小伙伴聚集地!


漏洞信息


F5 BIG-IP是美国F5公司的一款集成了网络流量管理、应用程序安全管理、负载均衡等功能的应用交付平台。2022年5月4日,F5官方发布安全通告,修复了一个存在于BIG-IP iControl REST中的身份验证绕过漏洞。漏洞编号:CVE-2022-1388,影响版本如下:


CVE-2022-1388 F5 BIG-IP iControl REST 处理进程分析与认证绕过漏洞复现

环境搭建


下载v15.x系列:


CVE-2022-1388 F5 BIG-IP iControl REST 处理进程分析与认证绕过漏洞复现


首次运行需要修改密码:


CVE-2022-1388 F5 BIG-IP iControl REST 处理进程分析与认证绕过漏洞复现


进程分析


为了更加方便理解漏洞原理,下面首先简要分析下 F5 BIG-IP iControl 相关进程。


查看 443 端口对应 Apache 服务:


CVE-2022-1388 F5 BIG-IP iControl REST 处理进程分析与认证绕过漏洞复现


CVE-2022-1388 F5 BIG-IP iControl REST 处理进程分析与认证绕过漏洞复现


查看 Apache 版本:


CVE-2022-1388 F5 BIG-IP iControl REST 处理进程分析与认证绕过漏洞复现


漏洞存在于 iControl REST 接口,查看 API 接口文档和`httpd.conf`配置可知,通过`/mgmt/***`转发至`localhost:8100`端口:


CVE-2022-1388 F5 BIG-IP iControl REST 处理进程分析与认证绕过漏洞复现


寻找对应的进程如下:


CVE-2022-1388 F5 BIG-IP iControl REST 处理进程分析与认证绕过漏洞复现


可见是通过 Jetty 容器启动的 Java 进程,启动主类为`com.f5.rest.workers.RestWorkerHost`,主要 Jar 包位于`/usr/share/java/rest/`。查看进程树,定位`/proc/8597/cwd`,找到启动程序:


CVE-2022-1388 F5 BIG-IP iControl REST 处理进程分析与认证绕过漏洞复现


添加调试配置:


CVE-2022-1388 F5 BIG-IP iControl REST 处理进程分析与认证绕过漏洞复现


重启服务就可以打开远程调试:


CVE-2022-1388 F5 BIG-IP iControl REST 处理进程分析与认证绕过漏洞复现


为了能够远程访问,还需要关闭防火墙,可以通过`tmsh`进行配置:


CVE-2022-1388 F5 BIG-IP iControl REST 处理进程分析与认证绕过漏洞复现


CVE-2022-1388 F5 BIG-IP iControl REST 处理进程分析与认证绕过漏洞复现


漏洞分析


首先回顾一下去年爆出的 CVE-2021-22986 F5 BIG-IP iControl REST 认证绕过漏洞。F5 BIG-IP iControl REST API接口首先通过 Apache 进行认证(模块`mod_pam_auth.so`),当请求中存在`X-F5-Auth-Token`头时(不检查是否为空),将转发给后端的 Jetty来检查`X-F5-Auth-Token`的值是否合法(`EvaluatePermissions#evaluatePermission`),从而完成第二次认证,但是 Jetty 判断`X-F5-Auth-Token`为空时,将直接“认为” Apache已经完成认证从而不会检查提供的信息是否合法,从而实现了认证绕过:


CVE-2022-1388 F5 BIG-IP iControl REST 处理进程分析与认证绕过漏洞复现


先利用 CVE-2021-22986 的 POC 进行测试:


CVE-2022-1388 F5 BIG-IP iControl REST 处理进程分析与认证绕过漏洞复现


CVE-2022-1388 F5 BIG-IP iControl REST 处理进程分析与认证绕过漏洞复现


也就是说 CVE-2021-22986 打完补丁后,Apache 会检查`X-F5-Auth-Token`是否为空。只有当存在`X-F5-Auth-Token`头并且不为空时,才会交给后端的 Jetty 进行认证。


接下来我们看下官方提供的 CVE-2022-1388 临时修复方式:


CVE-2022-1388 F5 BIG-IP iControl REST 处理进程分析与认证绕过漏洞复现



从修复方式来看,主要是对 HTTP 头中的 connection 进行了修复。HTTP 有一种 hop-by-hop 滥用漏洞,可以参考:


CVE-2022-1388 F5 BIG-IP iControl REST 处理进程分析与认证绕过漏洞复现


如果请求中带有 HTTP 头`Connection: close, X-Foo, X-Bar`,Apache 会在请求转发到代理前,将`X-Foo`和`X-Bar`逐一删除。那么我们很容易联想到可以构造特殊请求,通过 Apache 的检查,同时由于  hop-by-hop 滥用漏洞导致转发进入 Jetty 前已经删除了`X-F5-Auth-Token`头:


CVE-2022-1388 F5 BIG-IP iControl REST 处理进程分析与认证绕过漏洞复现


顺利进入了 Jetty 解析,同时又不存在`X-F5-Auth-Token`头,从而实现了认证绕过。后面的逻辑处理与 CVE-2021-22986 是一样的,结合 F5 BIG-IP iControl REST 自带接口,很容易实现 RCE 。



由于传播、利用此文档提供的信息而造成任何直接或间接的后果及损害,均由使用本人负责,且听安全团队及文章作者不为此承担任何责任。



★且听安全-点关注,不迷路!

CVE-2022-1388 F5 BIG-IP iControl REST 处理进程分析与认证绕过漏洞复现



★漏洞空间站-优质漏洞资源和小伙伴聚集地!

CVE-2022-1388 F5 BIG-IP iControl REST 处理进程分析与认证绕过漏洞复现

原文始发于微信公众号(且听安全):CVE-2022-1388 F5 BIG-IP iControl REST 处理进程分析与认证绕过漏洞复现

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年5月10日02:48:01
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   CVE-2022-1388 F5 BIG-IP iControl REST 处理进程分析与认证绕过漏洞复现http://cn-sec.com/archives/993641.html

发表评论

匿名网友 填写信息