
Exploit de solo datos para CVE-2024-0582
Este exploit implementa un método de ataque Dirty Cred para obtener acceso de escritura no autorizado a /etc/passwd. A diferencia de muchos exploits similares que crean numerosas páginas o rocían agresivamente descriptores de archivo, este enfoque toma una ruta más específica para corromper las estructuras necesarias del kernel.
Establecer afinidad de CPU y aumentar el límite de FD
Garantiza un rendimiento estable y suficientes descriptores de archivo para el spray.
Inicializar io_uring
Crea una instancia de io_uring y registra un anillo de búferes para el uso de memoria del kernel.
Desregistrar el anillo de búferes
Activa la vulnerabilidad, dejando las estructuras de datos del kernel en un estado explotable.
Spray de descriptores de archivo
Abre numerosos FD a /etc/passwd, con la esperanza de corromper el objeto del kernel deseado.
Modificar el modo de archivo
Corrompe los flags f_mode para que /etc/passwd se vuelva escribible.
Escribir entrada de puerta trasera
Inserta evil::0:0:root:/root:/bin/bash en /etc/passwd.
io_uring vulnerable (probado en un kernel con el bug CVE-2024-0582)..rs).EXT4_FOPS_OFFSET en main.rs (por defecto está establecido en 0x122b3c0) dependiendo de tu versión de Linux. Un desajuste puede hacer que el exploit falle o se comporte incorrectamente.Si tu kernel exporta información de símbolos y tienes los permisos adecuados (a menudo esto está restringido en sistemas de producción), puedes leer desde /proc/kallsyms:
Obtén la dirección de _text:
grep " _text" /proc/kallsyms
Llamemos a la dirección resultante TEXT_ADDR.
Obtén la dirección de ext4_file_operations:
grep ext4_file_operations /proc/kallsyms
Llamemos a la dirección resultante EXT4_FOPS_ADDR.
Resta:
EXT4_FOPS_OFFSET = EXT4_FOPS_ADDR – TEXT_ADDR