systemadmin.es > Seguridad > Ejecutar binarios sin permisos de ejecución

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”

  1. 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.

Deja un comentario:

XHTML - Tags permitidos:<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>