CVE-2024-38063 — Windows IPv6 スタックの脆弱性 (分析とPoC)
-red)
CVE-2024-38063 の技術分析と概念実証 (PoC)。これは Windows の IPv6 スタック (tcpip.sys) における重大なリモートコード実行 (RCE) 脆弱性です。KunLun Lab によって発見されたこの問題は ゼロクリック であり、ユーザーの操作なしに細工されたパケットによって引き起こされる可能性があります。
学術的な文脈: 「ネットワークセキュリティの基礎」コースの最終プロジェクト。
デモ
目次
概要
このリポジトリには以下が含まれます:
- 脆弱性の構造化された分析、
- Scapy を使用した PoC のデモンストレーション、
- およびコースの完全なドキュメントとラボの手順。
技術概要
核心的な問題は、フラグメント化されたトラフィック内の IPv6 拡張ヘッダー の解析中に tcpip.sys で発生する 整数アンダーフロー です。
- 論理的な障害: ヘッダー長の検証が計算中に失敗します。
- メモリ破損: アンダーフローによりバッファオーバーフローと安全でないメモリ書き込みが発生します。
- 影響: 特定の条件下で BSOD および RCE の可能性があります。
リポジトリの内容
- CVE-2024-38063 Analysis.pdf — 背景、根本原因、緩和策を扱ったスライド。
- CVE-2024-38063.py — Scapy ベースの PoC スクリプト (クラッシュ動作を実証)。
- WriteUP.pdf — 完全な解説、ラボの要件、実行に関する注意事項。
ラボのセットアップ
管理された教育用ラボ で環境を再現するには:
- 被害者: Windows 10/11 2024年8月のパッチ / 24H2 より前、IPv6 が有効。
- 攻撃者: Python 3 と Scapy を備えた Linux VM。
- ネットワーク: 同じネットワークセグメント上の両マシン間の IPv6 接続。
PoC のロジック (概要)
PoC はアンダーフローを引き起こすために一連のパケットを作成します:
- 認識されないオプションタイプを持つ 宛先オプション でエラー処理パスを誘導します。
- フラグメント 1 でフラグメンテーションを開始し、ペイロードを提供します。
- フラグメント 2 でシーケンスを終了します。
スクリプトはこれらのバッチを繰り返し、Hop Limit を変化させることで、脆弱な解析パスに遭遇する確率を高めます。
使用方法
- ターゲットの IPv6 アドレスを特定します。
CVE-2024-38063.py 内の ip_addr と iface を更新します。
- 攻撃者マシンからスクリプトを実行します:
pip install scapy
pip install getmac
python3 CVE-2024-38063.py
対象が脆弱な場合、カーネルが不正なヘッダーを処理する過程で、通常30〜60秒以内にBSODが発生します。
緩和策
- セキュリティ更新プログラムを適用する: Microsoftのパッチ(2024年8月13日)。
- パッチ適用が不可能な場合はIPv6を無効化する。
- ファイアウォールフィルタリング: 境界で断片化されたIPv6パケットをブロックする。
学んだこと
- IPv6ヘッダーアーキテクチャ: ネクストヘッダーチェーン(Hop-by-Hop、Destination Options、Fragmentation)と、ネストされたヘッダーの複雑さがネットワーク攻撃対象領域を広げる仕組みについて理解を深めました。
- カーネルレベルのパケット取り込み(
tcpip.sys): Ring 0でのパケット処理を直接観察しました。フラグメントの再構築と解析は、ユーザーモードのソケットに到達する前にネットワークドライバーの深部で行われるため、この層の欠陥はホストレベルのソフトウェア制御を回避し、ゼロクリック攻撃を可能にします。
- 根本原因となる脆弱性のメカニズム: ヘッダー長の計算における整数アンダーフローがポインターオフセットを破壊し、算術上の欠陥がカーネルメモリへの範囲外書き込みやシステムパニック(BSOD)につながる仕組みを分析しました。
- Scapyによるカスタムパケット生成: RFC非準拠のパケットを構築し、不正なDestination Option TLV(Type-Length-Value)を注入し、フラグメントを順序付けて対象カーネルでエッジケースのエラー処理を強制する実践経験を積みました。
免責事項
このプロジェクトは教育および研究目的のみを対象としています。所有していない、または評価の明示的な許可を得ていないシステムに対する無断のテストやアクセスは違法です。著者は悪用について一切の責任を負いません。