[HowTo] ShellShock – Como actualizar bash si tu Linux (Debian/Ubuntu) está medio viejito.

Es casi imposible que no te hayas enterado de esta nueva vulnerabilidad de Bash que dieron en llamar Shell Shock y lleva el CVE 6271.

En caso de que no estuvieras al corriente, como el nuevo theme que le puse al Blog tiene un CSS de mierda que nunca me molesté en corregir, tal vez no te diste cuenta pero en el párrafo de mas arriba hay dos hipervínculos que son clickeables y casi ni se nota. Ya arreglaré eso cuando se me pase lo pajero.

Como sea, si tenés ganas, leélos y parchá tu bash. Si no tenés ganas, simplemente parchá tu bash o que te rompan el culo, resumidamente esas son tus tres alternativas, por que este bug de mierda es wormable con lo que podemos esperar a corto plazo una ingente cantidad de bots tratando de hackearnos de forma automatizada (y van seis días desde el primer advisory).

 

Fuck the fucking fuckers. Yo ya parché mi Bash.

 

Si justo tenés la buena suerte de estar corriendo un Linux que recibe actualizaciones via gestor de paquetes, hacelo por ese medio. A mi me tocó tener que parchar decenas de Linux, en su mayoría Debian y derivados y encontré que no era tan fácil de hacer por que algunas versiones, sobre todo las mas viejitas ya no recibían actualizaciones. Como encontré –ya ni se donde– que alguien hizo un script para compilar bash desde los sources, le hice pequeñas modificaciones y te lo dejo acá para que lo uses si tenés que actualizar versiones de Debian o Ubuntu que ya no reciben updates via APT.

 

¿Como saber si tu Linux es vulnerable?

Ejecutá esto y si ves que dice «vulnerable», marche un parche:

~# env x='() { :;}; echo vulnerable' bash -c "echo esto es una prueba"

Como se aplica el parche:

– Debian 7 / Ubuntu LTS y superior, ejecutá como root:

~# apt-get update && apt-get install bash

 

– Debian 6:

Agregar estos repositorios a tu /etc/apt/sources.list:

deb http://http.debian.net/debian/ squeeze-lts main contrib non-free
deb-src http://http.debian.net/debian/ squeeze-lts main contrib non-free
deb http://http.debian.net/debian/ squeeze main contrib non-free
deb-src http://http.debian.net/debian/ squeeze main contrib non-free

Después ejecutá como root:

~# apt-get update && apt-get install bash

 

Debian 5 y 4, Ubuntu 11, 10, 9 ejecutando como root este patch que me robé y tuneé un poquito:

~# wget malditonerd.com/patch.sh && sh patch.sh

 

En todas las versiones mencionadas lo probé y anduvo.  Actualiza Bash desde los sources a la versión 3.2.54 aplicando los tres parches que fueron saliendo posteriores al Shellshock de mierda este y sirve también para Debian 6.

Acá te dejo el código por si preferís copiar y pegar:

#!/bin/bash

apt-get update
apt-get install bison patch build-essential

mkdir src && cd src
wget http://ftp.gnu.org/gnu/bash/bash-3.2.tar.gz
tar zxvf bash-3.2.tar.gz
cd bash-3.2
for i in $(seq -f "%03g" 1 54); do
wget -nv http://ftp.gnu.org/gnu/bash/bash-3.2-patches/bash32-$i
patch -p0 < bash32-$i
done
./configure && make
make install
mv /bin/bash /bin/bash.old
ln -s /usr/local/bin/bash /bin/bash
exit

 

 

IMPORTANTE:

Por último, tené en cuenta que este script mueve tu viejo bash vulnerable a /bin/bash.old indistintamente de si compiló bien o no la versión parchada con lo que si no verificás que todo funciona bien ejecutando de nuevo por ejemplo este   ~# env x='() { :;}; echo vulnerable’ bash -c «echo esto es una prueba»   para ver si dejó de decir «vulnerable», y cerraste la sesión –y era un host remoto-, te quedaste fuera y para siempre.

Si algo falla, pisá bash con bash.old en /bin. Como medida extra de seguridad, también podrías cambiar tu shell desde bash a cualquier otra cosa editando tu /etc/passw (dash, por ejemplo, que suele venir de serie en cualquier versión de Debian y derivados) antes de hacer todo esto y te asegurás así de que si algo falla, siempre vas a poder volver a entrar.

3 comentarios en “[HowTo] ShellShock – Como actualizar bash si tu Linux (Debian/Ubuntu) está medio viejito.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Wordpress Hashcash needs javascript to work, but your browser has javascript disabled. Your comment will be queued in Akismet!