Estoy trabajando en una "aplicación" de binario raíz SUID que ejecuta el comando system("ls -la /dir")
. Logré explotarlo al escribir un reemplazo malicioso ls
que inicia un shell, y cambié $PATH
de mi usuario para que se ejecute ls
en lugar del que está en /bin
.
Noté que ejecutarlo como usuario devuelve un shell de root mientras lo ejecuta con sudo "./example"
usa la ruta de root y simplemente lista los archivos en dir. Por lo que sé, setuid hereda los privilegios del propietario (en este caso, la raíz) al usuario y sudo se ejecuta como raíz.
¿Cómo se llaman tales vulnerabilidades?
¿Cómo un desarrollador de aplicaciones parchearlo?
¿Hay alguna forma en que pueda forzar a los usuarios a usar sudo ./app
para ejecutar un programa?
** el binario es un ejecutable estáticamente vinculado