Escalar privilegios a root (Error SUID) 3/3

  1. Introducción los permisos de Linux
  2. Problemas con los permisos /etc/passwd (este POST)
  3. Escalada mediante error en el SUID

En el primer articulo hablamos de un permiso especial, que se salia de la lectura, escritura y ejecución, que era el SUID que nos permitía ejecutar un archivo con los permisos del creador (muchas veces root) por lo que nos ponía en un grave problema de seguridad y es el tema que vamos a tratar en este POST.

Primero daremos un pequeño truco para localizar los ficheros que tienen los permisos SUID, y analizar si deben o no tenerlo y que los otros no ayuden al compromiso.

find / -perm -u=s -type f 2>/dev/null

ALERTA «cp» con permisos de SUID

Si tenemos el comando cp con SUID nos permitirá copiar y sobrescribir (pensar en el peligro) sobre otros ficheros aunque no sean nuestro. Desde el momento que tenemos ese poder nos podemos ir al POST2 y crear un fichero passwd con nuestro usuario trampa que tendrá la clave que decidamos como se vio en el.

ALERTA «find» con permisos de SUID

Y que daño puede realizar el comando find nos podríamos preguntar, pues mucho más que el comando anterior ya que find también permite ejecutar un comando cuando encuentra «find <buscado> -exec «<comando ejecuta> y lo curiosos es que el comando que ejecuta lo ejecutaría con el permiso SUID que seguro es root.

Así que en este caso podríamos realizar muchas cosas:

  • Una copia sobre el fichero que deseáramos, modificandolo a nuestro antojo, como comentamos con «cp».
  • Y si no solo copiamos sino que cogemos nuestro editor preferido (en mi caso el vi) y modifico el fichero a mi antojo o leo el fichero shadow que se supone no podría leer.
  • Y si preparo mi ejecutable, que claro sera un troyano, y le concedo los permiso que yo desee.
  • Así todo lo que nuestra imaginación se le ocurra ya que ejecutamos comandos como root.

Un Script con SUID y permiso de escritura para otros o mi grupo

Si tenemos un script que se ejecuta como SUID, en principio sin problema pero si puedo editarlo (problema del POST2) lo modifico a lo que considero y por lo tanto puede realizar otras acciones que no estaban previstas.

 

ESPERO que os haya servido para controlar los permisos de los ficheros.