Nesta postagem eu vou estar analisando o bug do momento: Shellshock!. Eu também vou fazer uma rápida análise sobre alguns scripts que ja foram disponibilizados publicamente para realizar o ataque (Metasploit).
Observação:
O
conteúdo apresentado nesta postagem deve ser reproduzido apenas em um
ambiente no qual você possui autorização para a realização de testes de
segurança.
ShellShock
O Shellshock explora um bug (alguns consideram como sendo uma funcionalidade) do bash (presente em sistemas Linux e Mac OS X). Para entender melhor a vulnerabilidade vamos dividir a análise em 2 partes: Definição de funções e exploração da vulnerabilidade.
Definição de funções e variáveis de ambiente
No bash podemos definir uma função da seguinte forma:
 |
Figura 01: Definindo uma função |
Esta função entretanto não pode ser chamada em uma nova sessão do bash
 |
Figura 02: Chamando função em nova sessão |
Para conseguirmos chamar uma função entre diferentes sessões do bash, precisamos exportar a função como uma nova variável de ambiente.
 |
Figura 03: Exportando a função |
Explorando a vulnerabilidade
É possível "injetar" mais instruções
após o término da definição da função exportada. Os códigos injetados serão executados quando a nova variável de ambiente for processada. A figura 04 apresenta um exemplo no qual um comando ("echo Owned") é injetado após a definição de uma função vazia. Como resultado, o comando injetado é executado pela nova sessão (bash -c).
 |
Figura 04: Injetando comando na variável de ambiente |
A figura 05 apresenta mais um exemplo no qual o comando "uname -a" é injetado na definação de uma variável de ambiente.
 |
Figura 05: Injetando comando na varíavel de ambiente 02 |
Exploits publicados: Metasploit
O pessoal do Metasploit ja publicou alguns módulos (auxiliary) para o ShellShock. Eu vou pegar o módulo "apache_mod_cgi_bash_env" como exemplo. A figura 06 apresenta as opções básicas do módulo.
 |
Figura 06: Módulo apache_mod_cgi_bash_env |
O script foi feito para scannear servidores web com arquivos cgi e passa o comando injetado (parâmetro CMD) no 'User-Agent' do cabeçalho HTTP (como demonstrado na figura 07).
 |
Figura 07: Payload no cabeçalho HTTP |
Conclusão
Nesta postagem eu fiz uma pequena análise sobre o Shellshock e também demonstrei um módulo do Metasploit publicado para explorar esta vulnerabilidade. Acredito que o Shellshock e o HeartBleed ja podem ser considerados os maiores bugs de 2014 (Mas ainda estamos em Outubro hehehe). Por favor escrevam suas sugestões e comentários!
Obrigado :)
Keep Hacking!
Nenhum comentário:
Postar um comentário