ld.so privesc exploit example
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Nella sezione seguente puoi trovare il codice dei file che utilizzeremo per preparare l'ambiente
Crea quei file nella tua macchina nella stessa cartella
Compila la libreria: gcc -shared -o libcustom.so -fPIC libcustom.c
Copia libcustom.so
in /usr/lib
: sudo cp libcustom.so /usr/lib
(privilegi di root)
Compila l'eseguibile: gcc sharedvuln.c -o sharedvuln -lcustom
Controlla che libcustom.so venga caricato da /usr/lib e che tu possa eseguire il binario.
In questo scenario supponiamo che qualcuno abbia creato un'entrata vulnerabile all'interno di un file in /etc/ld.so.conf/:
La cartella vulnerabile è /home/ubuntu/lib (dove abbiamo accesso in scrittura). Scarica e compila il seguente codice all'interno di quel percorso:
Ora che abbiamo creato la libreria maligna libcustom all'interno del percorso mal configurato, dobbiamo aspettare un riavvio o che l'utente root esegua ldconfig
(nel caso in cui tu possa eseguire questo binario come sudo o abbia il bit suid potrai eseguirlo tu stesso).
Una volta che ciò è accaduto, ricontrolla da dove l'eseguibile sharevuln
sta caricando la libreria libcustom.so
:
Come puoi vedere, lo sta caricando da /home/ubuntu/lib
e se un utente lo esegue, verrà eseguita una shell:
Nota che in questo esempio non abbiamo elevato i privilegi, ma modificando i comandi eseguiti e aspettando che l'utente root o un altro utente privilegiato esegua il binario vulnerabile saremo in grado di elevare i privilegi.
Nell'esempio precedente abbiamo simulato una configurazione errata in cui un amministratore ha impostato una cartella non privilegiata all'interno di un file di configurazione dentro /etc/ld.so.conf.d/
.
Ma ci sono altre configurazioni errate che possono causare la stessa vulnerabilità; se hai permessi di scrittura in qualche file di configurazione dentro /etc/ld.so.conf.d
, nella cartella /etc/ld.so.conf.d
o nel file /etc/ld.so.conf
puoi configurare la stessa vulnerabilità e sfruttarla.
Supponi di avere privilegi sudo su ldconfig
.
Puoi indicare a ldconfig
da dove caricare i file di configurazione, quindi possiamo approfittarne per far caricare a ldconfig
cartelle arbitrarie.
Quindi, creiamo i file e le cartelle necessari per caricare "/tmp":
Ora, come indicato nel precedente exploit, crea la libreria malevola all'interno di /tmp
.
E infine, carichiamo il percorso e controlliamo da dove il binario sta caricando la libreria:
Come puoi vedere, avere privilegi sudo su ldconfig
ti consente di sfruttare la stessa vulnerabilità.
Impara e pratica il hacking AWS:HackTricks Training AWS Red Team Expert (ARTE) Impara e pratica il hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)