SUID no se utiliza después de la explotación

3

Sé lo siguiente

  

Cuando ejecutas un programa que tiene habilitado el bit SUID, heredas los permisos del propietario de ese programa.

Actualmente estoy user1 , pero quiero leer el pase de user2

  1. Verifico el bit SUID con ls -l file

    user1@ssh/path$ ls -l file
    -r-sr-x--- 1 user2 user1 5164 Nov  9 15:08 file
    
  2. Hago mi exploit = > %código%. Y se presenta con una concha

  3. Para verificar si funciona, hago un whoami.

    $ whoami
    user1
    

¡¿Sigo siendo el mismo usuario ?! , y no sé cómo puede ser esto.

Si necesita más información, avíseme.

    
pregunta Ludisposed 23.11.2017 - 15:29
fuente

1 respuesta

5

Tu comprensión de setuid es correcta. Cuando ejecuta un programa que tiene el bit suid, el proceso hereda los permisos del propietario de ese programa. El conocimiento que te falta es lo que hace el shell después de invocarlo. Muchas implementaciones populares de privilegios sh drop cuando se inician: restablecen su UID efectivo a su UID real. Esto incluye bash, dash, mksh y BusyBox sh, así que en Linux no verá nada más.

Cuando el programa ejecuta un shell (por ejemplo, llamando a la función system desde la biblioteca estándar de C, o un equivalente en otro idioma), el shell comienza con privilegios elevados pero cae a los privilegios ordinarios antes de ejecutar cualquier código de usuario. Esto mitiga las vulnerabilidades en los programas de setuid donde el atacante solo ejecuta un comando de shell que no estaba destinado a ejecutarse con privilegios elevados (por ejemplo, porque el comando de shell estaba oculto en el código de la biblioteca que el programador de la aplicación no conocía). p>

Esto no mitiga las explotaciones en las que el atacante puede ejecutar código arbitrario. Es solo que para obtener un shell, tienes que trabajar un poco más duro que llamar a system . Haga arreglos para llamar a algún intérprete diferente, por ej. ejecute execve("/usr/bin/perl", "/usr/bin/perl") (bifurque primero si no desea terminar el programa principal).

    
respondido por el Gilles 23.11.2017 - 16:06
fuente

Lea otras preguntas en las etiquetas