¿Hay alguna manera de ejecutar un archivo binario ejecutable en Linux que no tenga el bit de ejecución establecido? chmod +xno es una opinión.
Por ejemplo, sus permisos pueden ser r--r--r--únicos.
Es posible ejecutar scripts sin establecer el bit de ejecución y poner un shebang pasando la fuente al intérprete, por ejemplo, bash script.sho python script.py.
Entonces, ¿hay algo así execute abinaryfileque cargará el código objeto en la memoria y lo ejecutará?

Respuestas:
Puede usar /lib/ld*.so como intérprete ELF, de esta manera:
El nombre real difiere de una arquitectura a otra. Algunos nombres incluyen
/lib/ld-linux.so.2,/lib/ld-linux-x86-64.so.2y/lib/ld-2.7.so. Probablemente pueda encontrarlo singularmente como/lib/ld*.fuente
ldes el enlazador / cargador de programas. Encuentra y carga las bibliotecas compartidas utilizadas por el programa, y luego lo ejecuta.ld-linuxmaneja binarios ELF./lib/ld-linux.so.2no es ejecutable (¿es eso posible?).sose pueden cargar s ejecutables , yld-linuxes algo importante./lib64/ld-linux-x86-64.so.2No. Al menos, no de la misma manera. Todavía está ejecutando un binario cuando hace lo de Python. Python es + x. Necesitaría compilar algo que pueda cargar un archivo y ejecutarlo.
TiCL debe hacer que su respuesta sea una respuesta porque es la mejor manera de hacerlo.
fuente
La
execsyscall del kernel de Linux fallaEACCESsi el archivo no es ejecutableSi bien puede hacerlo
sh myprog.sh, tratar de ejecutar el programa como./myprog.shno puede funcionar, ya que cuando lo hace:./myprog.shexecllamada al sistema del kernel de Linux como se explica en: https://stackoverflow.com/questions/2429511/why-do-people-write-the-usr-bin-env-python-shebang-on -la-primera-línea-de-un-pyt / 40938801 # 40938801Esto se puede verificar con
main.c:y
myprog.sh:Si
myprog.shno es ejecutable,mainfalla con:Probado en Ubuntu 17,10,
gcc -std=c99.POSIX 7 menciona que en:
Se pueden encontrar más razones en: https://security.stackexchange.com/questions/66550/unix-execute-permission-can-be-easily-bypassed-is-it-superfluous-or-whats-the
fuente