Esta web utiliza cookies, puedes ver nuestra política de cookies aquí. Si continuas navegando estás aceptándola

Ejecutar binarios sin permisos de ejecución


Todos sabemos que si un script no tiene permisos de ejecución podemos seguir ejecutándolo invocando el interprete e indicando el path hasta el script, lo que no sabe tanta gente es que se puede hacer lo mismo con ficheros binarios, de este modo logramos ejecutar binarios sin premisos de ejecución, el único requisito es tener permisos de lectura sobre este.

 

Escribimos un pequeño programa de ejemplo:

vi test.c
#include<stdio.h>

int main(void) {
  printf("Hello world!\n");
  return 0;
}

Compilamos el programa:

gcc test.c

Comprobamos que se ejecuta correctamente:

./a.out
Hello world!

Nos cercionamos de que tenga permisos de ejecución:

ls -la a.out
-rwxr-xr-x 1 kr0m kr0m 16600 may 13 23:37 a.out

Le quitamos los permisos de ejecución:

chmod -x a.out
ls -la a.out
-rw-r--r-- 1 kr0m kr0m 16600 may 13 23:37 a.out

Comprobamos que ya no podemos ejecutarlo directamente:

./a.out
bash: ./a.out: Permiso denegado

Comprobamos de que tipo de fichero se trata:

file a.out
a.out: ELF 64-bit LSB pie executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 3.2.0, not stripped

Ejecutamos el binario mediante el intérprete:

/lib64/ld-linux-x86-64.so.2 /home/kr0m/a.out
Hello world!

Autor: Kr0m -- 14/05/2019 19:51:22