Skip to the content.

Página Inicial || Próximo || Anterior

Brute-Force - Login Form

O ataque de “força-bruta” contra uma aplicação web é muito comum. Atualmente, muitas aplicações tem proteção contra esse tipo de ataque como a implementação do duplo fator de autenticação e o uso de Captcha. Um dos métodos de ataque que será demostrado nesse artigo é antigo pois utiliza o método GET para envio de login e senha. No entanto, mesmo sendo difícil de encontrar, algumas aplicações antigas ainda mantém esse método no formulário de login e, quando se encontra uma aplicação assim, a possibilidade bem-sucedida de um ataque é grande, senão inevitável. Outro método é o POST que mesmo não expondo diretamente o login e senha como faz o método GET, ainda pode ser utilizado no ataque de força-bruta.

Executando o brute-force

No exemplo, eu utilizo a bem conhecida aplicação DVWA e uma máquina Kali. Para execução do teste, eu vou utilizar a ferramenta Burp na versão community. Existem muitas outras ferramentas disponíveis para execução do brute-force e o Burp é apenas mais uma das várias opções.

Método POST

A aplicação disponível para testes da Acunetix oferece um formulário de login em PHP que utiliza o método POST para envio das requisições. No Burp, a comunicação é interceptada e direcionada para o Intruder onde o ataque é montado.

Intercept

burp_intercept

No intruder são marcadas as posições onde o payload será aplicado

intruder

No payload são adicionados os logins e senhas. Na configuração do payload para o ataque de brute-force é necessário marcar a opção de 2 payloads, indicando que são 2 posições utilizadas durante o teste.

payload

Ao executar o ataque são feitas automaticamente combinações de login e senha com os dados adicionados no payload. Quando um login é bem-sucedido, a resposta retorna com o código http 200 e podemos ver que o login e senha da aplicação é test

brute_force

Método GET

Em aplicações que utilizam o método GET no formulário de login, o Burp pode ser igualmente utilizado.

metodo_get

Intruder

payload_for_get

Resultado

O resultado do brute-force no método GET é um pouco diferente do apresentado para o método POST. Quando um brute-force é feito utilizando o método GET, todas as tentativas retornam o código de status HTTP 200. Dessa forma, para identificar se o ataque foi bem sucedido, é necessário observar o tamanho do pacote. Quando a tentativa de acesso é bem-sucedida, o tamanho do pacote é 4951 indicando que a resposta do servidor foi diferente nessa combinação de usuário e senha.

resultado_get

O objetivo desse artigo foi mostrar um ataque de brute-force em uma aplicação web vulnerável. Esse teste é válido quando se precisa avaliar os mecanismos de defesa da aplicação contra esse tipo de ataque. Geralmente, recomenda-se o uso do duplo-fator-de-autenticação ou captcha, esse último não apresenta um nível alto de segurança e já existem métodos para quebrá-lo.