
CVE-2022-0847「Dirty Pipe」脆弱性に対するスクリプト化されたLinux権限昇格

CVE-2022-0847 の Linux "Dirty Pipe" 脆弱性をチェックし、悪用するBashスクリプト
このスクリプトを使用すると、脆弱性のあるシステム上の権限のないユーザーは以下を行うことができます:
このリポジトリには2つのエクスプロイトが含まれています:
ルートパスワードを "piped" というパスワードに置き換え、元の /etc/passwd ファイルを /tmp/passwd.bak としてバックアップします。その後、エクスプロイトは昇格したルートシェルへのアクセスを提供し、シェルを終了すると元のpasswdファイルを復元します。

rootとして実行される読み取り専用のSUIDプロセスのメモリにデータを注入し、上書きします。

このリポジトリをクローンし、作業ディレクトリを変更します
git clone https://github.com/rexpository/linux-privilege-escalation.git
cd linux-privilege-escalation
現在のターゲットシステムが脆弱かどうかを確認します
./check.sh
エクスプロイトをコンパイルするためにGCCをインストールします
sudo apt-get install gcc
両方のエクスプロイトのコンパイルを自動化するbashスクリプトをコンパイルして実行します
chmod +x compile.sh
./compile.sh
任意のエクスプロイトバイナリを実行してください
./exploit-1
または
./exploit-2 /usr/bin/sudo
この脆弱性は、プロセス間の一方向通信に使用される pipe ツールに存在するため、"Dirty Pipe" という名前が付けられています。
権限のないローカルユーザーは、この脆弱性を悪用して、Linuxカーネル内の読み取り専用のはずのファイルを上書きし、その結果としてシステム上の権限を昇格させることができます。
この脆弱性は、pipe バッファ構造の構築中に部分的に初期化されていないメモリが使用されるために発生します。新しい構造体のメンバーがゼロ初期化されていないため、flags の値が古くなります。攻撃者はこれを悪用して、元々 読み取り専用 属性がマークされていたページであっても、キャッシュ内のページへの書き込みアクセスを取得できます。
この脅威および類似の脅威からインフラストラクチャを確実に保護するには: