Estoy leyendo esto y estoy un poco confundido. ¿Qué es exactamente esta suplantación de la raíz del script basado en setuid?
Este es un ataque teórico que podría permitir a un usuario elevar sus privilegios a root.
Supongamos que tenemos un setuid-root script.sh
como este:
#!/bin/bash
echo Hello World!
Cuando se ejecuta el script, el sistema operativo lee la primera línea, el programa utiliza ese programa para ejecutar el script. El comando que ejecutará es: /bin/bash script.sh
Un giro en los scripts de setuid es que un usuario puede crear un enlace al script, por ejemplo, myscript.sh
y ahora el comando sería /bin/bash myscript.sh
Esto está empezando a ser un poco preocupante porque quizás el usuario podría llamar a su enlace -c ls
y ejecutar un comando como root que no debería.
Sin embargo, bash y Linux tienen otras defensas que lo hacen poco práctico. Por ejemplo, el comando en Linux sería /bin/bash "./-c ls"
que no es explotable. Es posible que otros shells y sistemas operativos sean vulnerables.
Todo esto solo se aplica si tiene un script de shell setuid-root. Esto no se recomienda de todos modos, por estas razones y más. De hecho, en Linux no puede tener scripts de shell setuid en absoluto.
Si está interesado en esta área en general, Nebula merece una visita.
Lea otras preguntas en las etiquetas spoofing