Salir de una Shell sudo

18 de agosto 2009 por Chris Dejar una respuesta »

He estado queriendo escribir esto por un tiempo, pero había un puesto de pasar en uno de los SecurityFocus listas de correo que me motivó a hacerlo. El puesto le preguntó: "¿Cómo se restringe el sudo de forma que un usuario no puede borrar el disco duro entero?". La respuesta corta es, es muy difícil.

Sudo es una herramienta de seguridad utilizada en el mundo UNIX y Linux. Que permite al administrador restringir el acceso a los comandos de alto nivel. Se diferencia del comando su en que Su inmediatamente le da al usuario acceso a nivel de raíz. Sudo permite al administrador afinar los comandos que en realidad la raíz se puede acceder. Además, sudo crea un registro de auditoría de todos los comandos ejecutados.

El problema con sudo es que no tiene visibilidad cuando la herramienta permite que un intérprete de comandos que se generó. Esto significa que un usuario puede portarse mal en el sistema, mientras que la generación de una pista de auditoría, lo que hace que parezca que se ha hecho nada malo.

Compruébalo por ti mismo

Yo voy a caminar a través de un ejemplo para que usted pueda experimentar exactamente lo que quiero decir. Usted necesitará un sistema Linux para ello. Si usted no tiene uno a mano, Backtrack debería funcionar bien. El sistema de prueba que estoy usando está basada en Fedora pero son bastante similares.

Paso # 1: Agréguese al grupo de usuarios

Use su editor de texto favorito para editar el archivo / etc / grupo. Busque el grupo "users" y añadir su nombre de cuenta. En este ejemplo he añadido el nombre de cuenta "cbrenton".

los usuarios: x: 100: cbrenton

Paso # 2: Crear una entrada sudousers

A continuación tenemos que editar el archivo / etc / sudoers para definir lo que el grupo de usuarios de la facultad de hacerlo. Tenemos que utilizar visudo para esto, que es un editor de texto basado en el editor vi . Si se siente cómodo con vi, escriba el comando "visudo" y añadir esta línea al final del archivo:

% De usuarios ALL = / usr / bin / less

Si usted no sabe vi, te voy a dar las órdenes exactas. Recuerde que todo es sensible a mayúsculas:

visudo

G

o <- minúsculas letra O

% De usuarios ALL = / usr / bin / less

<Esc> <Esc>

: Wq

Paso 3: Monitor de actividad sudo

Abrir una ventana de terminal segundo y el uso de "su -" para asumir los privilegios de root. Escriba el siguiente comando:

tail-f / var / log / secure

Esto nos permitirá monitorear toda la actividad sudo.

Paso 4: Ejecutar un comando sudo

De vuelta en el tipo de terminal ventana por primera vez en el comando:

sudo menos / etc / hosts

Se le pedirá su contraseña (la contraseña, la contraseña no root). Una vez que usted ingrese su contraseña, debe ver el contenido de los archivos / etc / hosts. En la ventana del segundo terminal que ahora debe tener una entrada de registro similar al siguiente:

18 de agosto 16:07:58 sudo FUBAR: cbrenton: TTY = pts / 4; PWD = / home / cbrenton; user = root; COMMAND = / usr / bin / less / etc / hosts

Así que podemos ver la fecha / hora, que ejecutó el comando, la terminal que estaban encendidas, lo que el directorio que se encontraban, qué nivel de permisos que estaban usando, y qué comandos se ejecutan como cualquier de línea de comandos (en este caso, una especificación de archivo) . Hasta ahora, todo bien.

Paso 5: Busto de un proyectil

En la primera ventana de terminal (que se ejecuta el comando less) escriba:

! <enter>

Ahora debe buscar en un símbolo de la raíz. Para comprobar que está en la raíz del hecho, escriba el comando:

whoami

Tenga en cuenta que escribir en el comando "whoami" no generar una entrada de registro de seguridad. En otras palabras, una vez que dio lugar a una línea de comandos con el comando less, podemos hacer lo que queramos y sudo no lo registro.

Paso 6: Verificación adicional

En la primera ventana de terminal en la que "menos" es en el fondo, escriba el comando:

superior

Esto mostrara las estadísticas sobre el sistema en funcionamiento.

En la ventana de terminal de segunda nota de la terminal en uso. En la entrada del ejemplo de registro por encima de la terminal es "TTY = pts / 4", pero el tuyo puede ser diferente. Tome nota de la terminal. Ahora, en esta segunda ventana de prensa:

<CTRL>-C

para matar el comando tail. Ahora ejecuta el comando:

ps ax | grep 'pts / 4'

La sustitución de "pts / 4" con el nombre de la terminal lo que observó. Usted debe recibir una salida similar a lo siguiente:

17.330 pts / 4 Ss 0:00 fiesta

18.392 pts / 4 S 0:00 less / etc / hosts

18.410 pts / 4 S 0:00 / bin / bash

18.432 pts / 4 S + 0:00 superior

Esto nos dice que tenemos dos conchas que se ejecutan en esa terminal. La primera es buscar en el archivo de hosts, mientras que la segunda se ejecuta el comando top. Así que el sistema se ve realmente que estamos jugando dentro de la segunda capa, es sólo que sudo no puede iniciar sesión.

Algunos otros comandos de nivel raíz puede probar que no dañe nada:

iptables-L

ifconfig

lsof-i

Cuando usted está convencido de que tiene pleno acceso de root, volver atrás y comprobar el registro para comprobar que sudo no se ha registrado nada:

tail / var / log / secure

Cuando haya terminado con la cáscara en la primera ventana de terminal, escriba:

salida

q

¿Qué hemos aprendido?

Hemos aprendido que no podemos permitir que los usuarios tengan acceso sudo completo al sistema y en realidad mantener un registro de auditoría de lo que hacen. El acceso debe ser restringido a las herramientas que no son compatibles con la invocación de una concha. Si no estamos seguros, es una simple cuestión de comprobar las páginas de manual. Pruebe lo siguiente:

hombre menos

/

concha

El comando "hombre menos" trae el manual para el uso de los "menos" de comandos. Al pulsar la tecla de barra invertida nos lleva a la función de búsqueda. Cuando se escriba la palabra "concha" y presione la tecla Enter, el hombre salta a la primera instancia de la cadena "shell" y pone de relieve todos los casos. Tenga en cuenta que el hombre saltó a la sección describe cómo menos puede invocar un shell. Ahora sabemos que no se puede permitir el acceso sudo a la orden "menos". Una mejor opción podría ser el comando "cat", que no es compatible con la invocación de una concha.

Otra posibilidad es simplemente usar una herramienta diferente. Por ejemplo el op herramienta se ha diseñado específicamente para hacer frente a algunas de las deficiencias de seguridad en sudo, incluyendo la capacidad para controlar el acceso shell.

Resumen ejecutivo

Sudo es una gran herramienta de seguridad siempre y cuando utilizarlo sabiamente. Uno de los errores más comunes cometidos con sudo lo está utilizando para permitir el acceso a todas las herramientas de root. Sudo puede generar una pista de auditoría eficaz, pero sólo si se limita a las herramientas que no tienen capacidad de shell.

Puestos relacionados con:

  1. Generando un sistema CMD de MS Word o Excel

Anuncio

Deja un comentario