Um administrador ou usuário de servidor Linux?
Uma vulnerabilidade de segurança recente foi descoberta no GNU Bourne Again Shell (Bash). Se você usa o sistema operacional Windows, pode parar de ler agora. 🙂 Caso contrário, você pode querer corrigir seu sistema operacional baseado em Unix: Ubuntu, CentOS, Fedora e um monte de outros caras legais.
A vulnerabilidade apelidada por alguns de “Shellshock”, foi supostamente encontrada em uso por um exploit ativo contra servidores web.
Então, aqui está como você proceder para não ser uma vítima.
Verifique o estado do seu bash:
- Verifique se você está vulnerável executando isto em seu shell bash:
Comando abaixo:
env x='() { :;}; echo vulnerable' bash -c "echo this is a test"
Um sistema vulnerável produziria:
vulnerable
this is a test
Um sistema corrigido deve gerar:
bash: warning: x: ignoring function definition attempt
bash: error importing function definition for `x'
this is a test
Consertar
- Para Ubuntu, execute isto em seu Bash:
Comando abaixo:
sudo apt-get update && sudo apt-get upgrade
Isso baixa e instala todas as atualizações.
- Para CentOS:
Comando abaixo:
yum update
Isso deve atualizar e corrigir seu bash junto com quaisquer outras atualizações.
Deixe-me saber se você tiver qualquer problema nos comentários.
Obrigado.
Fonte : Bash Bug
ATUALIZAR
Como @montanaflynn apontou nos comentários, a solução acima não funcionaria para versões mais antigas do Ubuntu.
Aqui está um script que ele adicionou para contornar isso
#!/bin/sh
GCC=`which gcc`
if [ -z "$GCC" ]; then
echo "Your system does not have the GNU gcc complier installed."
echo "Please install the gcc complier and then run this script again."
exit 1
fi
echo "Creating tmp folder..."
cd /tmp
mkdir bash
cd bash
echo "Downloading Bash..."
wget -N https://ftp.gnu.org/gnu/bash/bash-4.3.tar.gz
echo "Downloading Bash patches..."
while [ true ];
do i=`expr $i + 1`; wget -N https://ftp.gnu.org/gnu/bash/bash-4.3-patches/bash43-$(printf '%03g' $i);
if [ $? -ne 0 ];
then break;
fi;
done
echo "Extracting bash from tar.gz..."
tar zxvf bash-4.3.tar.gz
cd bash-4.3
echo "Applying Patches..."
for p in `ls ../bash43-[0-9][0-9][0-9]`; do patch -p0 < $p; done
echo "Ready to install. Configuring..."
./configure --prefix=/
echo "Running make"
make
echo "Running make install"
if [[ "$USER" == "root" ]]
then
make install
cp /bin/bash /usr/local/bin/bash
else
sudo make install
sudo cp /bin/bash /usr/local/bin/bash
fi
echo "----------------------------------------------"
echo "Now open a new bash shell to see if it's still vulnerable."
Copie o conteúdo, colar em um arquivo file.sh .
Execute file.sh como um script bash.
Obrigado @montanaflynn