Copyright © 2005-2024 LinuxTotal.com.mx
Se concede permiso para copiar, distribuir y/o modificar este documento siempre y cuando se cite al autor y la fuente de linuxtotal.com.mx y según los términos de la GNU Free Documentation License, Versión 1.2 o cualquiera posterior publicada por la Free Software Foundation.
En el artículo de LinuxTotal.com.mx sobre permisos se explica lo que es un archivo con permisos SUID o SGID, pueden ser potencialmente peligrosos porque básicamente se trata de ficheros ejecutables propiedad de root y a los que se les permite ser ejecutados por cualquier usuario normal del sistema. Los permisos de este tipo de archivos se ven asi:
#> ls -l /bin/mount -rwsr-xr-x 1 root root 90192 2007-10-11 10:29 /bin/mount
Nótese la 's' en vez de la 'x' en los permisos del propietario, esto es el bit SUID (Set UserID), que permite que el programa sea ejecutado por cualquier otro usuario del sistema, el bit SGID (Set GroupID) es lo mismo para los permisos del grupo.
En sistemas con varios usuarios, esto es peligroso, se debe de tener cuidado que archivos se dejan con este tipo de permisos, ya que pueden ser mal usuados o incluso 'troyanizados', es decir, sustituidos por otro idénticos en funcionalidad, pero cuando se ejecuta, además de hacer su trabajo puede por ejemplo abrir un puerto, copiar archivos, establecer una conexión, eliminar archivos, lo que sea, ya que el archivo pertenece a root!!!.
Para encontrar ficheros o archivos con los bits de permisos suid y sgid activadas, la manera más fácil y rápida es con el comando find
:
#> find / -perm -4000 -ls 5931076 96 -rwsr-xr-x 1 root root 90192 oct 11 10:29 /bin/mount 5931116 24 -rwsr-xr-x 1 root root 23156 sep 12 12:13 /bin/mount.cifs3 5931053 24 -rwsr-xr-x 1 root root 20824 sep 6 15:24 /bin/su 5931079 76 -rwsr-xr-x 1 root root 72020 oct 11 10:29 /bin/umount 5931062 32 -rwsr-xr-x 1 root root 32520 sep 19 16:46 /bin/ping 2916530 72 -r-sr-xr-x 1 root root 67080 sep 26 08:31 /sbin/mount.nfs 2916364 20 -rwsr-xr-x 1 root root 18816 sep 20 09:51 /sbin/unix_chkpwd 2916363 16 -rwsr-xr-x 1 root root 13020 sep 20 09:51 /sbin/pam_timestamp_check 5358576 128 ---s--x--x 2 root root 126344 sep 13 11:43 /usr/bin/sudo
Indicamos que find
busque desde la raíz '/' del sistema de archivos, todo lo que tenga permisos '-perm' del tipo SUID, es decir '-4000' y despliegue el resultado en formato de ls -l
Solo cambiamos un poco para buscar los que tengan el bit SGID:
#> find / -perm -2000 -ls 786770 4 drwxrwsr-x 2 root mail 4096 oct 29 03:51 /var/log/mailman 786768 4 drwxrwsr-x 2 root mail 4096 mar 7 2007 /var/lib/mailman/qfiles 738370 4 drwxrwsr-x 2 root mail 4096 oct 28 21:42 /var/lib/mailman/data 819514 4 drwxrwsr-x 2 root adm 4096 sep 12 12:12 /var/lib/samba/printers/WIN40 134628 4 drwxrwsr-x 2 root mail 4096 jul 27 10:17 /var/spool/mail 2916472 4 -rwxr-sr-x 1 root root 3908 oct 3 16:49 /sbin/netreport 9523868 12 -rwxr-sr-x 1 root tty 8912 oct 11 10:29 /usr/bin/write 9530735 84 -rwsr-sr-x 1 root mail 79944 sep 16 03:17 /usr/bin/procmail 5358037 88 -r-xr-sr-x 1 root games 85536 sep 19 04:55 /usr/bin/same-gnome
O agrupamos los dos permisos entre paréntesis con el caracter de escape '\' y con la opción '-o' que indica 'este o aquel' un or booleno pues.
#> find / \( -perm -4000 -o -perm 2000 \) -ls
Como los listados suelen ser bastante largos, puedes redireccionar la salida del comando a un archivo con '>', para ser analizado con calma.
#> find / \( -perm -4000 -o -perm 2000 \) -ls > archivos_con_suid_sgid.txt
Decide que ejecutables eliminar estos bits, es tedioso, pero tu sistema será mucho más seguro al restringir lo que los usuarios normales pueden ejecutar.
Si encuentras útil la información que proveé LinuxTotal, considera realizar un donativo que estimule a seguir proporcionando contenido de calidad y utilidad. Gracias.
Dona a través de paypal::
O a través de bitcoins:
Archivos como el de configuración de samba /etc/samba/smb.conf suelen tener comentarios que explican o detallan la variable a con....
Linux ofrece multitud de servicios o servidores, estos pueden iniciar o arrancar junto con la carga del sistema o pueden después ....
Si ya has usado la línea de comandos o shell de Linux por un tiempo, seguramente entonces, el comando date ya te es familiar, lo ....
Utilizar los recursos informáticos un proveedor externo es lo que ahora se conoce como la nube, Cloud en inglés. Pero por otro l....
Linux es un sistema multiusuario, por lo tanto, la tarea de añadir, modificar, eliminar y en general administrar usuarios se conv....
El comando find de Linux es extremadamente potente. No hay nada mejor para hacer todo tipo de búsquedas de archivos y carpetas qu....
GNU/Linux es increiblemente fácil de configurar, no bases de datos raras, no registros, no directorios regados por aquí y por al....
Una buena contraseña o password, todos lo sabemos, es esencial para dificultar la entrada a nuestro sistema, sobre todo si se es ....
ssh es quizás (en mi opinión) la mejor herramienta de comunicación que existe cuando se trata de establecer contacto con un ser....
Hay ocasiones en que se te ofrece hacer cálculos matemáticos o aritméticos y no estás en el ambiente gráfico para abrir una c....