
このリポジトリは、needrestart の脆弱性 (CVE-2024-48990) を標的とした最小限のローカル権限昇格エクスプロイトを含んでいます。
この脆弱性により、-c 設定オプションを悪用して、特権コンテキストで解析および実行される任意の Perl コードを root として実行できます。
既存の権限昇格エクスプロイトの多くは、カスタムバイナリのコンパイル、追加のシェルの起動、またはインタラクティブなコマンドチェーンへの依存を必要とします。
このエクスプロイトは、コンパイル、追加ツール、またはインタラクティブなエディタやページャの悪用を必要としない、簡単なローカル権限昇格手法を提供することで、それらの要件を回避するために開発されました。権限昇格は、needrestart の特権設定実行を通じて SUID-root シェルを作成することで達成されます。
needrestart は Perl で実装されており、-c オプションで渡された設定ファイルを root 権限で Perl コードとして実行します。
system() 呼び出しを含む細工された設定ファイルを提供することで、任意のコマンドを root として実行でき、ローカル権限昇格につながります。
エクスプロイトを実行します:
python3 needrestart_privesc.py
ユーザーが sudo 経由で needrestart を実行することを許可されている場合、スクリプトはそれを呼び出し、/tmp/bash に SUID-root シェルを作成します。sudo がパスワードを要求する場合、通常通りプロンプトが表示されます。
正常に実行されると、root シェルが自動的に起動されます。
自動シェル起動を無効にする:
python3 needrestart_privesc.py --no-shell
作成されたアーティファクトをクリーンアップする:
python3 needrestart_privesc.py --cleanup
needrestart を実行することが許可されている必要があります。このコードは教育および研究目的でのみ提供されます。