No estoy realmente seguro de lo que estás preguntando. Cuando ejecutas programas, se ejecutan como tú. Puede su
ellos para que se ejecute como otro usuario, pero primero debe convertirse en el otro usuario (es decir, debe conocer su contraseña).
Creo que el escenario que estás describiendo es que el usuario victim
ha creado un archivo con los siguientes permisos:
-rwxrwxrwx 1 victim victim exec_file
y desea que user
pueda ejecutar el archivo y ejecutarlo como victim
.
victim
podría usar setuid
para establecer el bit especial del ejecutable de esta manera:
victim$ chmod u+s exec_file
victim$ ls
-rwsrwxrwx 1 victim victim exec_file
Ahora cuando user
ejecuta el archivo, se ejecutará como victim
. Esto no es una vulnerabilidad o un ataque ya que victim
lo configuró explícitamente de esta manera.
Podría pensar que lo siguiente funcionaría:
user$ ls
-rwxrwxrwx 1 user user exec_file
user$ chmod u+s exec_file
user$ chown victim exec_file
user$ ./execfile # I'm victim now, right?
pero linux evitará que hagas chown
a menos que sudo
, ... pero si ya tienes sudo
powers, esto no es realmente un gran ataque.
Lo más cercano que se me ocurre para hacer de esto un ataque real es si varios usuarios ejecutan este programa de manera regular, y usted tiene permisos de escritura, entonces puede reemplazarlo con su propio código y esperar al propietario. (o cualquier otra persona) para volver y ejecutarlo. Ahora alguien más está ejecutando tu código malicioso como ellos mismos. En general, es una mala idea dar a los usuarios permiso de escritura sobre los archivos que otros usuarios ejecutarán. Mucho mejor tenerlo así:
-rwxr-xr-x 1 user user exec_file
o incluso mejor:
-rwxr-xr-x 1 root root exec_file