
Exploit de escalada de privilegios local para needrestart (CVE-2024-48990)
Este repositorio contiene un exploit mínimo de escalada de privilegios local
que apunta a una vulnerabilidad en needrestart (CVE-2024-48990).
La vulnerabilidad permite la ejecución arbitraria de código Perl como root al
abusar de la opción de configuración -c, que se analiza y ejecuta
en un contexto privilegiado.
Muchos exploits de escalada de privilegios existentes requieren compilar binarios personalizados, generar shells adicionales o depender de cadenas de comandos interactivas.
Este exploit se desarrolló para evitar esos requisitos al proporcionar una
técnica sencilla de escalada de privilegios local que no requiere
compilación, herramientas adicionales ni abuso interactivo de editores o
paginadores. La escalada de privilegios se logra creando un shell SUID-root
mediante la ejecución de configuración privilegiada de needrestart.
needrestart está implementado en Perl y ejecuta los archivos de
configuración pasados mediante la opción -c como código Perl con
privilegios de root.
Al suministrar un archivo de configuración manipulado que contiene una llamada
a system(), se pueden ejecutar comandos arbitrarios como root, lo que
conduce a una escalada de privilegios local.
Ejecute el exploit:
python3 needrestart_privesc.py
Si el usuario tiene permitido ejecutar needrestart mediante sudo, el script
lo invocará y creará un shell SUID-root en /tmp/bash. Si sudo requiere una
contraseña, se solicitará de forma normal.
Tras una ejecución exitosa, se genera automáticamente un shell de root.
Deshabilitar la generación automática del shell:
python3 needrestart_privesc.py --no-shell
Limpiar los artefactos creados:
python3 needrestart_privesc.py --cleanup
needrestart mediante sudo.Este código se proporciona únicamente con fines educativos y de investigación.