¿Qué impide que este exploit funcione (Unix SUID)?

9

Si tengo un usuario en un sistema UNIX en el que tengo permiso para crear nuevos archivos, ¿qué me impide descargar un archivo ejecutable en ese sistema que ya tiene SUID en root en un sistema diferente?

Escenario:

  • He iniciado sesión en un shell con mi usuario Karrax (box1)
  • En un sistema diferente (box2) donde ya estoy root, configuro la SUID root en un ejecutable
  • Luego transfiero / copio el archivo a box1

¿Qué impide que este archivo se ejecute como root en el primer shell en el que inicié sesión?

    
pregunta Chris Dale 30.12.2010 - 15:28
fuente

3 respuestas

14

Cuando copia un archivo a un sistema de archivos diferente, lo que sucede debajo del capó es que usted crea un nuevo archivo y copia el contenido. El traslado de un archivo a un sistema de archivos diferente se realiza copiando y eliminando la fuente. Por lo tanto, no tiene más privilegios para copiar un archivo que en cualquier otro momento en que esté creando un archivo.

Cuando creas un archivo, te pertenece. Muchas variantes de Unix restringen el cambio del propietario ( chown ) a la raíz. Incluso aquellos que permiten al propietario de un archivo regalarlo borran los bits setuid y setgid cuando lo hacen. Los cambios en la propiedad del grupo ( chgrp ) también eliminan los bits de setxid a menos que se invocen con privilegios de root. Y necesitas ser propietario del archivo o ser root para cambiar sus permisos. Por lo tanto, no puede crear un archivo setxid para un usuario o grupo al que no tiene permiso para ejecutar programas como.

Un vector diferente para la inyección de archivos setxid es el montaje del sistema de archivos. La mayoría de las configuraciones solo permiten los bits setxid en sistemas de archivos montados directamente por la raíz (a diferencia de las entradas /etc/fstab con la opción user en Linux, Samba, FUSE, ...). A veces, por ejemplo, con montajes NFS, depende del administrador del sistema asegurarse de que los sistemas de archivos estén montados con la opción nosuid .

    
respondido por el Gilles 31.12.2010 - 01:26
fuente
3

Te acercas a este comportamiento cuando descargas el archivo comprimido de alguien y lo extraes, 'conservando la propiedad / permisos' si el uid es 7544 verás ese uid para los archivos que descomprimes si eres root, es posible que haya errores si no eres usuario privilegiado.

    
respondido por el hpavc 31.12.2010 - 11:17
fuente
3

ACTUALIZACIÓN: ignore mi respuesta errónea anterior, que he editado aquí para evitar confundir a la gente. Gilles tiene una respuesta mucho mejor, que podría incorporar aquí o reformular, pero merece el crédito ...

Si realmente quieres ver lo que tenía antes, puedes encontrarlo siempre en el historial de edición haciendo clic en el momento de la edición.

    
respondido por el nealmcb 30.12.2010 - 21:03
fuente

Lea otras preguntas en las etiquetas