
CVE-2025-32463(sudo権限昇格の脆弱性)を安全にテストするためのコンテナ化環境と署名済みNucleiテンプレートを提供し、検出とパッチ適用済みバージョンの比較を行います。
これは、悪意のあるエクスプロイトをNucleiテンプレートに移植して、非侵入型の脆弱性スキャンを実施しつつ、根本的な問題を実証するという初めての試みです。
このプロセスを学習演習として、より詳細に文書化しました。
私が直面した主な課題は以下のとおりです:
-itags localパラメータの指定が必要な点で、何度かつまずきました。この活動にWindows環境を選んだのは奇妙に思えるかもしれません。実際のところ、Windowsは私のデフォルトのオペレーティングシステムであり、その理由についてはここでは触れません。
docker-compose up --build -d
このテンプレートはcodeエンジンを使用しており、セキュリティ上の理由から署名が必要です。このテンプレートはこのリポジトリ内で既に署名されています。
docker-compose.yamlは、WindowsのNuclei署名キーをからコンテナ内にマウントするように設定されています。これにより、署名済みテンプレートを検証できます。
%APPDATA%\nuclei\keysWindowsホスト上(Nucleiのインストールが必要)。
nuclei -t cve-2025-32463.yaml -sign
これによりテンプレートが署名され、ダイジェストフィールドが追加されます。
注記: このコマンドを初めて実行すると、Nucleiは%APPDATA%\nuclei\keysに署名キーを作成し、以下を要求します:
Linux/macOS/Git Bash:
docker exec -u testuser vulnerable-sudo-target sh -c 'nuclei -itags local -t /tmp/template.yaml -target localhost -code'
Windows PowerShell/CMD:
docker exec -u testuser vulnerable-sudo-target sh -c "nuclei -itags local -t /tmp/template.yaml -target localhost -code"
代替(全プラットフォームで動作):
docker exec -u testuser vulnerable-sudo-target nuclei -itags local -t /tmp/template.yaml -target localhost -code
注記:
-codeフラグはコードプロトコルベースのテンプレートを有効にするために必須ですsh -c '...'を使用してください[INF] Executing 1 signed templates from <your-username>と表示されるはずですWindows PowerShell/CMD:
docker exec -u testuser patched-sudo-target sh -c "nuclei -itags local -t /tmp/template.yaml -target localhost -code"
代替(全プラットフォームで動作):
docker exec -u testuser patched-sudo-target nuclei -itags local -t /tmp/template.yaml -target localhost -code
注記:
-codeフラグはコードプロトコルベースのテンプレートを有効にするために必須です"..."またはsh -cなしの代替コマンドを使用してください[INF] Executing 1 signed templates from <your-username>と表示されるはずですNucleiテンプレートに署名せずに脆弱性を検証したい場合は、エクスプロイトスクリプトを直接実行できます:
エクスプロイトスクリプトをコピーして実行します。
docker cp exploit.sh vulnerable-sudo-target:/tmp/exploit.sh
docker exec -u testuser vulnerable-sudo-target bash /tmp/exploit.sh
期待される出力:woot!の後にルートシェル(インタラクティブモード時)。
[CVE-2025-32463] [code] [critical] localhost ["VULNERABLE UID=1000 EUID=0"]
[INF] Executing 1 signed templates from <your-username>
[INF] Scan completed in 140.454595ms. 1 matches found.
検出の確認: UID=1000 EUID=0は、testuser(1000)のコードがルート権限(0)で実行されたことを証明しています。
[INF] Executing 1 signed templates from <your-username>
[INF] Scan completed in 143.319373ms. No results found.
脆弱性は検出されません - パッチ適用済みのsudoバージョンはライブラリの読み込みを防止します。
脆弱性、攻撃ベクトル、および検出方法論の詳細な技術的説明については、テクニカルノート ドキュメントを参照してください。