Supongamos que se te entrega un sistema con el que no estás familiarizado, es un sistema operativo Linux y quieres descubrir que los usuarios no pueden hacer nada de lo que no deberían, que los usuarios / grupos no permitirían Cualquier cosa que pudiera abusar y que no pasáramos por alto. Dado que esto depende en gran medida del entorno de usuario / organización, el software, etc. Lo más genérico que podemos obtener es averiguar qué grupos y usuarios existen y qué hacen.
Mis primeros pasos serían los siguientes:
- Listar todos los usuarios con:
cat /etc/passwd
ycat /etc/shadow
- Listar todos los grupos:
cat /etc/group
- Listar todos los accesos de sudo:
cat /etc/sudoers
- Listar todas las cuentas con UID 0:
egrep ':0+' /etc/passwd
- Listar las claves SSH de la raíz:
cat /root/.ssh/authorized_keys
Pero aquí es donde estoy perplejo, ¿qué podemos hacer con esta información? ¿Cómo sabemos que los grupos son lo que parecen y no pueden sobrepasar sus límites? Puedo pensar en:
- Listado de los procesos que pertenecen a un usuario:
ps aux | grep $USER
- Listado de archivos que pertenecen a un usuario / grupo:
find / -user $USER
ofind / -group $GROUP
(con| grep -v $HOMEDIR
si no queremos ver información en los directorios principales de nuestros usuarios) - Listar todos los paquetes instalados (solo se puede instalar la raíz, pero podríamos usar esto como referencia para verificar qué usuarios / grupos pueden acceder a estas aplicaciones)
sudo dpkg --get-selections > installed-applications.txt
Pero eso es lo que he llegado hasta ahora.