miércoles, 10 de septiembre de 2008

Cómo ejecutar un programa no ejecutable

En un post anterior puse un problema que me pareció muy interesante para ejercitar la creatividad de los sysadmins/linuxeros ahí afuera.

El tema era como volver a darle permisos de ejecución si le sacamos estos permisos al chmod. En los comentaros se publicaron respuestas relacionadas con usar lenguajes de scripting (en el enunciado decia que no se podía compilar) pero la idea era ser un poco más creativos.

La primer solución que encontre fue:

cp otro_ejecutable xxx
cat /bin/chmod > xxx
mv xxx /bin/chmod

Lo interesante de esto es que los permisos de ejecucion de la copia original se mantienen al 'llenar' el archivo con otro contenido.

Isart, quien me propuso el acertijo, encontró otra un poco mas simple que es:

cp otro_ejecutable xxx
cp --no-preserve=mode /bin/chmod xxx
mv xxx /bin/chmod

Yo sabía que tenía que haber otra forma de ejecutar un archivo a la fuerza, y me encontré con esto:

/lib/ld-linux.so.2 /bin/chmod

Si lo dejamos estrictamente en el enunciado del acertijo, cualquiera de las tres sirve para cambiar los permisos de un archivo sin que el chmod sea ejecutable, pero la última me llamo mucho la atención porque incluso la puedo usar como un usuario normal sin ningún privilegio.

¿Puede ser esto una falla de seguridad?

No creo que sea demasiado grave porque no encontre la forma de cambiar el propietario de un archivo a root con un usuario común, pero hay que tener en cuenta que un usuario comun puede ejecutar cosas sin importar los permisos que tengan los archivos (bueno, por lo menos tiene que tener lectura)

lunes, 8 de septiembre de 2008

Acertijo para sysadmins

Hoy a la tarde, Isart me propuso un acertijo interesante, que suena más a pregunta de examen que otra cosa, pero me dio un buen rato de entretenimiento super geek.

Seguramente más de uno lo conoce, pero esta bueno para investigar un poco sobre el sistema, aca va el enunciado:

Alguien ejecutó el comando:
chmod -x /bin/chmod

¿Cómo lo arreglás sin reinstalar ni recompilar ningún programa?


Cada uno encontró una solución diferente, y después encontré una tercera solución más académica. Conclusión, somos un poco chapuceros, pero creativos :P

Que se diviertan, y dejen que el resto se divierta un rato antes de postear alguna solución ;)