
CVE-2015-1328の概念実証(PoC)エクスプロイト
CVE-2015-1328 の概念実証 (PoC) エクスプロイトです。この脆弱性は、Linux カーネルの overlayfs 実装に影響を与える権限昇格の脆弱性です。この脆弱性により、ローカルの非特権ユーザーが、ユーザーネームスペース内の overlayfs マウント操作における不適切なパーミッションチェックを悪用して、root アクセスを取得できます。
CVE-2015-1328 は、overlayfs サポートとユーザーネームスペースが有効な Linux カーネルに影響を与える重大なセキュリティ脆弱性です。この脆弱性により、非特権のローカルユーザーが以下を実行できます:
unshare(CLONE_NEWUSER) を使用してユーザーネームスペースを作成する/etc/ld.so.preload に書き込むこの PoC は以下の方法で脆弱性を実証します:
/etc/ld.so.preload を介してカスタム共有ライブラリを注入するgetuid() をハイジャックして root シェルを実行するkernel.unprivileged_userns_clone=1)-m32 フラグ対応)このプロジェクトには簡単にコンパイルできる Makefile が含まれています:
make
これにより以下がコンパイルされます:
ofs - メインのエクスプロイトバイナリ (静的 32ビット)ofs-lib.so - LD_PRELOAD フック用の共有ライブラリ (32ビット)手動でコンパイルする場合は:
# Compile main exploit
gcc -o ofs ofs.c -m32 -static
# Compile shared library
gcc -m32 -fPIC -shared -o ofs-lib.so ofs-lib.c -ldl -static-libgcc
⚠️ 警告: このエクスプロイトはシステムファイルを変更し、root 権限の取得を試みます。適切な許可を得た管理された環境でのみ使用してください。
エクスプロイトをコンパイル:
make
エクスプロイトを実行:
./ofs
成功した場合、エクスプロイトは以下を実行します:
/etc/ld.so.preload に書き込み/bin/su を実行して悪意のあるライブラリをトリガーunshare(CLONE_NEWUSER) を使用して新しいユーザーネームスペースを作成しますclone() と CLONE_NEWNS を使用してマウントネームスペースを作成します/etc/ld.so.preload への書き込みを行います/tmp/ofs-lib.so に書き込みます/bin/su を実行してプリロードされたライブラリをトリガーしますgetuid() をハイジャックし、root シェルを起動しますclone() を使用して、隔離されたマウントネームスペースを作成しますofs-lib.so) は LD_PRELOAD を介して getuid() をフックします/bin/su が getuid() を呼び出すと、代わりに悪意のある関数が実行されます.
├── ofs.c # メインのエクスプロイトコード
├── ofs-lib.c # 権限昇格用の共有ライブラリ
├── lib_so.h # 埋め込みバイナリライブラリデータ
├── Makefile # ビルド設定
└── README.md # このファイル
getuid() フックを実装この脆弱性から保護するには:
echo 0 > /proc/sys/kernel/unprivileged_userns_clone
このコードは教育およびセキュリティ研究目的でのみ提供されています。
このプロジェクトは教育目的で現状のまま提供されています。責任を持って、適用されるすべての法律および規制に従って使用してください。