¿Puedo comparar los permisos de usuario de Linux sin acceso de root?

7

He comprometido dos cuentas de usuario de Linux en una máquina RHEL (ninguna de las cuales tiene permisos de root) y quiero determinar qué cuenta es más "útil" para mí en términos de acceso y privilegios. ¿Hay alguna manera de poder comparar rápida y fácilmente los permisos / accesos entre esas dos cuentas?

    
pregunta NULLZ 10.09.2013 - 03:26
fuente

2 respuestas

6

Ejecute sudo -l como usuario para ver qué privilegios complementarios puede obtener ese usuario ejecutando sudo . Deberá conocer o recopilar la contraseña del usuario para hacer uso de estos privilegios, a menos que una de las reglas de sudoers esté etiquetada como NOPASSWD .

Ejecute id para ver a qué grupos pertenece el usuario. Puede que desee mirar a su alrededor para ver el valor de estos grupos .

Estas dos son formas comunes de escalar el acceso y son fáciles de comparar. Aquí hay algunas áreas más que puede ver con más trabajo necesario para obtener resultados útiles.

Mire a su alrededor para ver a qué archivos puede acceder el usuario. Los permisos se pueden otorgar a través de listas de control de acceso, no solo de propiedad y membresía de grupo. Los siguientes comandos enumeran los archivos que el usuario puede leer, escribir y ejecutar respectivamente, pero no todos los usuarios. Los dos primeros excluyen el directorio de inicio del usuario (donde no es sorprendente tener archivos a los que otros no pueden acceder), y el tercero solo apunta a los ejecutables setuid / setgid. Estos comandos se ejecutan solo en el sistema de archivos raíz, agregan más rutas si hay más sistemas de archivos montados (o elimine -xdev y excluya /proc y quizás /sys en su lugar).

find -xdev / -path ~ -prune -o -readable ! -perm -a+r
find -xdev / -path ~ -prune -o -writable
find -xdev / -perm /u+s,g+s -executable ! -perm -a+x

Verifique el registro del usuario y los archivos de configuración para ver qué tipo de cosas relacionadas con la administración han estado haciendo: comandos de shell en ~/.bash_history (u otros archivos según la elección del shell y la configuración del usuario), alias en ~/.bashrc (del mismo modo, u otros archivos), scripts en ~/bin , ...

Verifique si el usuario tiene claves SSH (en ~/.ssh/ ) que puede usar para escalar su acceso a otras máquinas (u ocasionalmente a otras cuentas en la misma máquina). Es posible que pueda ver en qué sitios ha iniciado sesión el usuario marcando ~/.ssh/known_hosts , pero de manera predeterminada, las direcciones están escritas de manera tal que solo puede verificar las conjeturas.

Si se trata de una máquina de escritorio, busque un administrador de contraseñas en ejecución. Es poco probable que encuentre uno en un servidor, pero en su lugar, compruebe si hay una conexión SSH existente en la que pueda realizar la conexión (por ejemplo, mediante el reenvío X11).

Los correos electrónicos también pueden dar una pista. Compruebe a quién se reenvían los correos electrónicos administrativos ( /etc/aliases ) y quién tiene un buzón local en /var/mail o /var/spool/mail .

    
respondido por el Gilles 10.09.2013 - 17:14
fuente
4

Compruebe en qué grupos están presentes los usuarios. Compruebe a qué grupos tienen acceso con

find / -group yourgroup

También puede obtener todos los archivos de los que un usuario es propietario y usa

find / -user user

Ahora compara esos resultados. Desde aquí, intente ver qué archivos en /etc y /var son legibles en todo el mundo. Trate de ver si hay algo interesante en los registros también (si puede acceder a ellos).

    
respondido por el Lucas Kauffman 10.09.2013 - 08:08
fuente

Lea otras preguntas en las etiquetas