El error SUDO de Linux le permite ejecutar comandos como raiz

linux

Se ha descubierto una vulnerabilidad en el comando sudo de Linux que podría permitir a los usuarios sin privilegios ejecutar comandos como root

Afortunadamente, esta vulnerabilidad solo funciona en configuraciones no estándar y la mayoría de los servidores Linux no se ven afectados.

Antes de llegar a la vulnerabilidad, es importante tener información básica sobre cómo funciona el comando sudo y cómo se puede configurar.

Al ejecutar comandos en un sistema operativo Linux, los usuarios no privilegiados pueden usar el sudo comando (super user do) para ejecutar comandos como root siempre que se les haya dado permiso o conozcan la contraseña del usuario root.

El comando sudo también se puede configurar para permitir que un usuario ejecute comandos como otro usuario agregando directivas especiales al archivo de configuración / etc / sudoers.

Por ejemplo, los siguientes comandos permiten al usuario `test` ejecutar los comandos / usr / bin / vim y / usr / bin / id como cualquier usuario, excepto root.

test ALL = (ALL, !root) /usr/bin/vim

test ALL = (ALL, !root) /usr/bin/id

Para que el usuario `test` ejecute uno de los comandos anteriores, usaría un comando sudo con el argumento -u para especificar el usuario para ejecutarlo. Por ejemplo, el siguiente comando lanzaría vim como el usuario `bleeping-test`. sudo -u bleeping-test vim

Al crear usuarios en Linux, cada usuario recibe un UID. Como se ve a continuación, el usuario `test` tiene un UID de 1001 y` bleeping-test` tiene un UID de 1002. UID de usuarios

Los usuarios pueden usar estos UID en lugar de un nombre de usuario al iniciar el comando sudo. Como ejemplo, el siguiente comando iniciará nuevamente VIM como `bleeping-test` pero esta vez al proporcionar el UID del usuario. sudo -u#1002 vim

La vulnerabilidad sudo

El investigador de seguridad de Apple, Joe Vennix, descubrió un error que permite a los usuarios iniciar un comando sudo permitido como root utilizando el UID -1 o 4294967295 en el comando sudo.

Por ejemplo, el siguiente comando podría utilizar este error para iniciar el usuario / usr / bin / id como root, a pesar de que al usuario `test` se le negó específicamente hacerlo en el archivo / etc / sudoers. sudo -u#-1 id

Si bien este error es poderoso, es importante recordar que solo puede funcionar si un usuario tiene acceso a un comando a través del archivo de configuración de sudoers. Si no lo fueran, y la mayoría de las distribuciones de Linux no lo hacen por defecto, entonces este error no tendrá ningún efecto.

Construyendo un ataque

Para explotar realmente esta vulnerabilidad, un usuario necesitaría tener una directiva sudoer configurada para un comando que pueda lanzar otros comandos.

En nuestro ejemplo de directivas sudoers de arriba, tenemos ese comando; el comando VIM! test ALL = (ALL, !root) /usr/bin/vim

Cuando está en VIM, un usuario puede iniciar otro programa usando :! mando. Por ejemplo, si está en VIM, puede ingresar ! Ls para ejecutar el lscomando en la carpeta actual.

Si utilizamos el sudo -u#-1 vimcomando para explotar esta vulnerabilidad, VIM se lanzará como root. Luego puede confirmar esto ejecutando el !whoamicomando.

Ahora que VIM se inicia como root, todos los comandos que se ejecutan desde él también se ejecutan como root.

Esto se puede usar fácilmente para iniciar un shell raíz que luego puede ejecutar cualquier comando que desee en el sistema comprometido

Si bien este error es obviamente poderoso, solo se puede usar en configuraciones no estándar que no afectarán a la gran mayoría de los usuarios de Linux.

Para aquellos que utilizan directivas sudoers para sus usuarios, deben actualizar a sudo 1.8.28 o posterior lo antes posible.

Fecha actualización el 2021-10-15. Fecha publicación el 2019-10-15. Categoría: linux Autor: Oscar olg Mapa del sitio Fuente: bleempingcomputer Version movil