Hace unos días se hizo pública una vulnerabilidad que afecta a todas muchas de las versiones de Ubuntu y otras Distros.
Todas las pruebas que haremos ahora son validas para Zentyal v3.x
En el caso de Zentyal se ve afectado dado que trabaja sobre las distintas versiones de Linux Ubuntu que existen la actualidad.
El exploit en términos simples permite que alguien externo a la empresa pueda realizar una elevación de permisos y realizar alteraciones como ROOT a nuestro sistema por lo que es prioridad solucionar esta vulnerabilidad en nuestros servidores, más si tenemos nuestro SSH abierto en el firewall hacia internet.
Intentaremos primero ver si somos vulnerables a dicho exploit con el siguiente comando:
sudo -i
env x='() { :;}; echo vulnerable' bash -c 'echo hello'
Si no somos vulnerable nos indicara lo siguiente:
bash: warning: x: ignoring function definition attempt
bash: error importing function definition for `x'
hello
Si somos vulnerables nos indicara lo siguiente:
vulnerable
hello
Lo primero sera actualizar nuestro sistema y dejarlo sin actualizaciones pendientes con el siguiente comando o lo hagan a traves de la web (Recomiendo que lo haga a traves de la web y no por APT):
sudo apt-get update && sudo apt-get upgrade
Una vez no tengamos actualizaciones pendientes verificaremos si somos vulnerables aun con el siguiente comando:
env x='() { :;}; echo vulnerable' bash -c 'echo hello'
En mi caso tanto en las versiones de Zentyal v3.x a pesar de tener todo al dia por APT o por la web aun era vulnerable lo que ponia en riesgo mis servidores, al tratar de instalar «bash» solo por apt me indicaba que estaba en la ultima version.
Para solucionar esto realizamos la compilacion de una version de BASH que no sea vulnerable. Con los siguientes comandos, recuerden que deben tener instalado «gcc» y «make».
cd /tmp/
mkdir src
cd src
wget http://ftp.gnu.org/gnu/bash/bash-4.3.tar.gz
#download all patches
for i in $(seq -f "%03g" 0 25); do wget http://ftp.gnu.org/gnu/bash/bash-4.3-patches/bash43-$i; done
tar zxvf bash-4.3.tar.gz
cd bash-4.3
#apply all patches
for i in $(seq -f "%03g" 0 25);do patch -p0 < ../bash43-$i; done
#build and install
./configure && make && make install
cd ..
cd ..
rm -r src
Una vez completemos con exito la compilacion probaremos nuevamente si somos vulnerables, con el siguiente comando:
env x='() { :;}; echo vulnerable' bash -c "echo this is a test"
Si el resultado es el siguiente, estamos ok y ya nuestro servidor no es vulnerable:
bash: warning: x: ignoring function definition attempt
bash: error importing function definition for `x'
this is a test
Espero haberlos ayudado con sus sistemas y recuerden apoyar al proyecto Zentyal (www.zentyal.org)
Equipo de Soporte Outsourcing
PC Ready Chile
Categories: Soporte PC Ready