domingo, 22 de octubre de 2017

Escala de privilegios - Archivos con el bit SUID activo

El bit suid es un permiso que se puede conceder tanto a directorios como ficheros. El SUID en ficheros es un permiso muy especial, que permite a un usuario con permisos de ejecución para dicho fichero, tomar los permisos del dueño del fichero durante su ejecución.

Para el ejemplo de hoy primero haremos un pequeño programa en C que ejecuta comandos de la terminal (el ejecutable lo generara nuestro usuario root). Luego le daremos el permiso de SUID y veremos como varia al activar el bit.

Aplicación:


Bueno para generar nuestro programa en C es solo esta pequeña porción de código que pueden verlo aqui.

Luego compilamos y ejecutamos el programa:

  • $ gcc filesuid.c -o filesuid
  • $ ./filesuid



Lo cual luego solo debes ingresar el comando que realizamos ejecutar y listo. En este caso ejecutaremos primero el comando ls -l para ver la informacion de los archivos y luego el comando whoami que lo que hace es mostrar el nombre del usuario en el que estamos.

  • my_shell > ls -l
  • my_shell > whoami
-rwxr-xr-x : el primero hace referencia al tipo de archivo, los 3 siguientes rwx al usuario,
3 siguientes grupo, 3 siguientes al resto de usuarios. Un guion (-) indica que no esta activo el bit en esa posición.


Como resultado nos muestra los permisos que tiene el archivo "filesuid" que es nuestro ejecutable y aqui debemos ver el simbolo X resaltado, que hace referencia a que el archivo puede ser ejecutado por el usuario, ademas seguido del siguiente comando nos indica que somos el usuario root, pues en realidad es así.

Continuando con el ejemplo ahora desde otra terminal veamos lo mismo pero con otro usuario, en este caso mi usuario se llama paolo, ejecutamos:
  • $ ls -l
  • $ ./filesuid
  • my_shell > whoami

En este caso al ejecutar whoami nos indica que somos el usuario paolo. Para salir del programa escriban salir.


Ahora asignemos el bit SUID a nuestro ejecutable, desde la terminal del usuario root, ejecutamos los siguientes comandos:

  • $ chmod 4755 filesuid
    4: activa el bit suid; 7: activa los bits rwx para el usuario; 5: activa los bits r-x para el grupo; 5 activa los bits r-x para los demas miembros;
  • $ ls -l
    vemos los permisos del ejecutable y notaremos que en vez de un x, aparece una s ( esto indica que el bit suid esta activo)
El bit suid es el que esta resaltado, donde la s minúscula indica que esta activo.

Por ultimo en nuestra terminal de otro usuario (no root) ejecutamos nuestro archivo que ya esta activado el bit suid:
  • $ ls -l
  • $ ./filesuid
  • my_shell > whoami


En el cual nos muestra que somos root cuando estamos como usuario paolo. Pues una vez aqui y con los permisos de root existen las vulnerabilidades por tener archivos -como en el ejemplo- con el bit SUID activo.

Enlaces:




Referencias:



No hay comentarios.:

Publicar un comentario