
PythonベースのDirtyPipe (CVE-2022-0847) PoC - ルートシェルを起動する
これは Max Kellerman によって発見された Linux カーネルの脆弱性 CVE-2022-0847(DirtyPipe)に対するエクスプロイトです。
このコードは、既存の DirtyPipe の PoC を 1 つに統合したものです。
このコードは以下をチェックします。
そして、その順序で最初に可能なオプションを実行し、ユーザーを直接ルートシェルに落とします。
脆弱性そのものの優れた説明については、Kellerman の解説 を参照してください。
os.splice を使用するため Python 10.X が必要です。
usage: dirty.py [-h] [--target {passwd,group,sudo,su}]
Use dirty pipe vulnerability to pop root shell
options:
-h, --help show this help message and exit
--target {passwd,group,sudo,su}
The target read-only file to overwrite
vulnerable@kali:~$ python dirty.py
vulnerable@kali:~$ python dirty.py --target passwd
スクリプトは /tmp にいくつかのファイルを書き込むことがあります。
生成されたファイルは実行後に削除する必要がありますが、削除には root 権限が必要になる場合があります。
このエクスプロイトは、ページキャッシュ内にあるファイルのページを上書きします。実際のファイルが破損する可能性は低いです。もし破損やエラーが発生した場合は、キャッシュ内のページが上書きされるまで待つか、コンピュータを再起動すれば問題は解決するでしょう。ただし、本コードによって生じたいかなる損害についても私は責任を負いませんので、よく読んで責任を持ってハッキングしてください。Max Kellerman の cm4all.com での解説も必ず確認してください。