•
Ejecutar binarios sin permisos de ejecución
En el caso que tengamos un binario sin permisos de ejecución, pero aún tengamos permisos de lectura sobre éste lo podemos ejecutar mediante ld-linux.
Para ejecutar un binario, dependiendo si es de 32 o 64 deberemos escoger:
- 32 bits: /lib/ld-linux.so.2
- 64 bits: /lib64/ld-linux-x86-64.so.2
Por ejemplo, quitamos el permiso de ejecución de /bin/true:
# chmod -x /bin/true # /bin/true -su: /bin/true: Permission denied
Mediante ld-linux lo podremos ejecutar, incluso desde un usuario no privilegiado:
$ /lib64/ld-linux-x86-64.so.2 /bin/true
La única condición es que tengamos permisos de lectura:
# cp /bin/true /bin/trueblood # chmod o-rwx /bin/trueblood # /lib64/ld-linux-x86-64.so.2 /bin/trueblood /bin/trueblood: error while loading shared libraries: /bin/trueblood: cannot open shared object file: Permission denied
Por lo tanto, no basta en quintar permisos de ejecución para que no sea ejecutable, deberemos quitar siempre también el permiso de lectura para evitar esta forma de ejecución de binarios. Para el caso de scripts no funciona, al ser interpretados.
•
One comment to “Ejecutar binarios sin permisos de ejecución”
•
27. June 2014 at 10:50 am :
Hola Jordi,
en el caso (un poco simple) de los scripts, si no hay permisos de ejecución podríamos ejecutarlos con el elf, por ejemplo, bash script.
Si eliminamos el permiso de lectura, no podremos ejecutarlos de esa manera tampoco.
un saludo.