Ejecute un binario propiedad de root sin sudo

12

Tenía una pregunta en una entrevista de trabajo:

¿Cómo puede ejecutar (ejecutar) el programa con el usuario user1sin sudoprivilegios y sin acceso a la rootcuenta?

$ whoami
user1
$ ls -l ~/binary_program
-rw-r--r-- 1 root root 126160 Jan 17 18:57 /home/user1/binary_program
inivanoff1
fuente

Respuestas:

17

Como has leído el permiso:

$ cp ~/binary_program my_binary
$ chmod +x my_binary
$ ./my_binary

Por supuesto, esto no le otorgará automáticamente privilegios escalados. Aún estaría ejecutando ese binario como usuario normal.

Joseph R.
fuente
44
@ user2555595 Me temo que te equivocas. Intente eliminar el bit de ejecución en un archivo que posea y ejecútelo . Incluso el root obtiene "permiso denegado" cuando ejecuta un archivo sin el bit de ejecución establecido.
Joseph R.
tienes razón, gracias por la información
user2555595
55
@ user2555595 Eso solo se aplica a los scripts , no a los binarios. Más específicamente solo basho scripts de shell POSIX si bashse invoca como intérprete.
Thomas Nyman
¡Gracias por su información, gente! ¡Que tengas un buen día!
inivanoff1
2
@ inivanoff1 Por favor, no olvide marcar una de las respuestas "Aceptada" para que la gente sepa que esta pregunta está resuelta.
Joseph R.
20

Puede usar el enlazador / cargador dinámico de Linux directamente para ejecutar ejecutables ELF para los que ha leído, pero no ejecutar derechos:

$ /lib/ld-linux.so.* /home/user1/binary_program

Cuando un ejecutable ELF se ejecuta normalmente, .interpse utiliza el enlazador dinámico que se almacena en la sección del código del programa. Las razones para invocar el enlazador dinámico directamente (fuera de las entrevistas de trabajo) incluyen pasarle las opciones de la línea de comandos para modificar su comportamiento.

Tenga en cuenta que la ubicación real del vinculador dinámico puede depender mucho del entorno, por ejemplo, en Ubuntu de 64 bits en el que se encuentra el vinculador /lib64/ld-linux-x86-64.so.2.

Thomas Nyman
fuente