Explorar Shellshock com Burp Suite

OWASP Top 10 é um documento de conscientização, que descreve os riscos de segurança mais críticos para aplicações  Web. O pentesting é realizado de acordo com o padrão OWASP TOP 10 para reduzir/mitigar os riscos de segurança.

Vamos explorar a vulnerabilidade shellshock, também conhecida como Bashdoor (CVE-2014-6271 e CVE-2014-7169), é uma falha de segurança shell Bash  em sistemas Unix-like, que foi divulgada em 24 de setembro de 2014.

A falha consiste em inserir código malicioso dentro de valores que serão armazenados em variáveis de ambiente. Ao inserir código a versão vulnerável do Bash expandia o conteúdo da variável e interpretava o código inserido como instruções a serem executadas.

No exercício, focaremos  no OWASP Top Ten A9:2017- Usando componentes com vulnerabilidades conhecidas - OWASP A9 Using Components with Known Vulnerabilities  - e realizaremos ataques contra um servidor Web vulnerável ao CVE-2014-6071. Por incrível que pareça, recentemente algumas empresas de segurança alertaram sobre a quantidade de servidores ainda vulneráveis a shellshock.

Objetivo: Explorar a vulnerabilidade e executar comandos arbitrários na máquina alvo.

Host Atacante (kali): 192.107.253.2

Host Alvo: 192.107.253.3

1 - Realizando scan com Nmap

Primeiro vamos verificar as portas abertas com o Nmap:

# nmap 192.107.253.3

Perceba que na saída do comando vemos a porta 80 aberta. Então devemos abrir a página em um browser.

Interessante. O próximo passo é ver o código fonte da página para tentar obter mais alguma informação. Claro que você poderia rodar outras ferramentas como o nikto, dirbuster para analisar a aplicação. Mas uma regra que devemos seguir é "fazer o simples".

Então vemos que tem uma página chamada "gettime.cgi". Que iremos usar em seguida como argumento no Nmap. Agora, será que existe algum script do Nmap para verificar se esse máquina é vulnerável ao shellshock?

Faremos assim:

# updatedb
# locate *.nse | grep shellshock

Tem um script do Nmap, então vamos utilizá-lo para verificar se a máquina é vulnerável. Devemos passar a URI para o script também, conforme pode ser visto na documentação do script.

O comando ficaria assim:

# nmap --script=http-shellshock.nse --script-args uri=/gettime.cgi  192.107.253.3

O servidor é vulnerável a vulnerabilidade de Shellshock - CVE-2014-6271.

2 - Como explorar a Vulnerabilidade de Shellshock?

Vamos procurar exploits para essa vulnerabilidade no Google, usando o seguinte dork:

"shellsh0ck vulnerability exploit"

Tem uma página interessante,  onde mostra exemplos de exploração da vulnerabilidade aqui.

Um exemplo simples seria de como ler o conteúdo do arquivo "/etc/passwd" do servidor vulnerável:

curl -H "user-agent: () { :; }; echo; echo; /bin/bash -c 'cat /etc/passwd'" \
http://localhost:8080/cgi-bin/vulnerable

Vemos a indicação da manipulação do cabeçalho HTTP  na variável "user-agent:

3 - Explorando com Burpsuite

Iremos iniciar o burpsuite. Basta clicar no ícone do Kali e digitar "burpsuite". Quando iniciado, clique na aba "Proxy". Estará tudo em branco ainda.

Agora abrir o browser, você deve ter configurado o FoxyProxy para enviar as requisições para o BurpSuite, quando acessar a página será enviado a requisição pelo Burp.

Vamos manipular agora essa requisição enviando para o repetidor do Burp. Clique em Action, depois Send to Repeater. A aba Repeater será acionada. Clique nela.

Na aba Repeater, vamos apagar o conteúdo de User-Agent e inserir o comando para verificar o conteúdo do arquivo /etc/passwd. Clique em Send e aguarde o resultado.

Sucesso! Conseguimos rodar um comando na aplicação vulnerável. Agora podemos rodar outros comandos como 'id', 'uname -a' e etc.

Anterior
Anterior

Mantenha o seu IPS atualizado - Check Point

Próximo
Próximo

Pentest - Encontrando máquinas com o Bettercap