lunes, 14 de diciembre de 2009

Ficheros con permisos especiales

Para buscar ficheros del sistema con permisos especiales asignados, podemos hacer uso del comando find:

# find / -user root -perm +7000 -exec ls -la {} \;

De esta forma se obtienen todos los ficheros que tienen como propietario a root, y tienen almenos un bit especial asignado: Sticky bit, SUID o SGID.
Puede ser útil crear un cron con este comando, para comprobar periódicamente las alteraciones de estos permisos sobretodo en los ficheros de root.

En una intrusión, el atacante puede dejarse una shell preparada con el bit SUID activado, y así conseguir privilegios de root al entrar en dicha shell. Si tenemos controlados este tipo de ficheros podremos detectar una entrada no deseada al sistema, aunque no podamos haberla evitado, esto es mejor que nada.

Modificaremos la búsqueda según queramos encontrar ficheros con únicamente uno o dos de los bits especiales asignados:

Sitcky bit:
# find / -user root -perm -1000 -exec ls -la {} \;
SGID:
# find / -user root -perm -2000 -exec ls -la {} \;
Sitcky bit + SGID:
# find / -user root -perm -3000 -exec ls -la {} \;
SUID:
# find / -user root -perm -4000 -exec ls -la {} \;
Sitcky bit + SUID:
# find / -user root -perm -5000 -exec ls -la {} \;
SUID + SGID:
# find / -user root -perm -6000 -exec ls -la {} \;

O con almenos uno o más de los bits especiales asignados, cambiando el carácter - por un + en los comandos anteriores:

Sitcky bit:
# find / -user root -perm +1000 -exec ls -la {} \;

No hay comentarios: