
Escalation dei privilegi locali a root tramite sudo chroot in Linux
Escalation locale dei privilegi a root tramite Sudo chroot in Linux.
Per la notizia puoi leggere qui :
TL;DR e CMIIW Quindi, sudo è il comando per eseguire un comando come admin/root. Un utente può eseguire sudo solo se fa parte del gruppo sudoers. Ma c'è un bug nel binario sudo che consente a un utente normale, senza il permesso di eseguire sudo, di passare a root.
Il bug è una falla nell'opzione --chroot del comando sudo. Il comando chroot consente di eseguire un comando in una directory temporanea. Il problema è che sudo controlla il file di configurazione all'interno di quella directory temporanea, prima di verificare se l'utente può eseguire sudo o meno.
Se questo file di configurazione può essere in qualche modo modificato e indirizzato verso un codice modificato per ottenere l'accesso root, possiamo ottenere l'accesso root senza autenticarci o essere registrati come sudoer. Perché nel processo, per ottenere quelle informazioni, il sistema esegue il comando come root (temporaneamente).
Qual è il file di configurazione? /etc/nsswithc.conf. Questo file di configurazione viene usato dal sistema per sapere, ad esempio, a quale gruppo appartiene questo utente, e così via. All'interno di questo file nsswitch, più o meno è così:
<database> <source1> <source2> ... <sourcen>
passwd files systemd
group files systemd
shadow files
gshadow files
...
Ecco! Se la sorgente dati utilizzata è files, nss chiamerà una libreria chiamata libnss_files.so.2. Questo file contiene codice C che, se lo modifichiamo, molto probabilmente possiamo ottenere l'accesso root. Perché il sistema lo esegue come root anche se il comando non viene eseguito da un utente sudoers. Si può vedere nel file exploit.sh.
In sintesi :
/etc/nsswitch.conf in una cartella che controlliamo.