sábado, 27 de setembro de 2014

Corrigindo vulnerabilidade no bash do OS X

Salve galera,

Me deparei com um probleminha de bash no linux, após ler o post sobre falha de segurança grave no bash de máquinas com Linux e OS X.
Segue o link do post:
https://tecnoblog.net/166271/shellshock-falha-grave-bash/

Loguei no pc da empresa, onde estou usando o Xubuntu 14.04 LTS e tudo ok com ele, mas ao tentar rodar os comandos no mac....

Cara, meu Mac estava vulnerável..... Vou postar o passo-a-passo pra quem tem mac......
Existe duas vulnerabilidade no bash do mac, uma é o que o post mostra, e a outra é essa aqui:
$ rm -f echo
$ env X='() { (a)=>\' sh -c "echo date"; cat echo

Se a data postar, ferrou....

Para verificar se os auto-imported functions estão habilitados, rode o comando: env ls="() { echo 'Game over'; }" bash -c ls

Se printar Game over..... Aí é porque eles ainda estão habilitados....

Provavelmente a versão do seu bash deve ser igual ao do comando abaixo:

$ bash --version
GNU bash, version 3.2.51(1)-release (x86_64-apple-darwin13)
Copyright (C) 2007 Free Software Foundation, Inc.

Bom, vamos as correções....

O seu bash pode ser corrigido pra quem tem o xcode instalado, aí é só abrir o terminal e realizar os comandos abaixo:

$ mkdir bash-fix
$ cd bash-fix
$ curl https://opensource.apple.com/tarballs/bash/bash-92.tar.gz | tar zxf -
$ cd bash-92/bash-3.2
$ curl https://ftp.gnu.org/pub/gnu/bash/bash-3.2-patches/bash32-052 | patch -p0
$ curl https://ftp.gnu.org/pub/gnu/bash/bash-3.2-patches/bash32-053 | patch -p0
$ [ "$ADD_IMPORT_FUNCTIONS_PATCH" == "YES" ] && curl http://alblue.bandlem.com/import_functions.patch | patch -p0
$ cd ..
$ xcodebuild
$ build/Release/bash --version # GNU bash, version 3.2.53(1)-release
$ build/Release/sh --version   # GNU bash, version 3.2.53(1)-release
$ sudo cp /bin/bash /bin/bash.old
$ sudo cp /bin/sh /bin/sh.old
$ sudo cp build/Release/bash /bin
$ sudo cp build/Release/sh /bin

Para verificar se o seu bash mudou, segue o comando abaixo:

$ bash --version
GNU bash, version 3.2.53(1)-release (x86_64-apple-darwin13)
Copyright (C) 2007 Free Software Foundation, Inc.

E para desabilitar que as versões antigas não tenham mais permissões:

$ sudo chmod a-x /bin/bash.old /bin/sh.old

Pronto, tente rodar os comandos de vulnerabilidade agora....
Seu bash agora está seguro.....

Espero ter ajudado....

Segue o link ensinando como fazer o passo-a-passo em inglês:

https://apple.stackexchange.com/questions/146849/how-do-i-recompile-bash-to-avoid-shellshock-the-remote-exploit-cve-2014-6271-an/146851#146851