Ataque de Força Bruta com Hydra

18:41 Lucas Taraia 0 Comentarios



Image by shuttersstock

No artigo "Wordlist com CeWL" vimos como usar a ferramenta CeWL para criar uma wordlist com palavras disponíveis no site analisado. Agora vamos ver como realizar ataque de força bruta em formulários de login utilizando a lista de palavras coletada no alvo.
Para esse fim, utilizaremos uma excelente ferramenta de linha de comando para quebras de senhas: Hydra.

Por padrão o Hydra vem instalado no Kali Linux - distribuição na qual foi utilizada para realizar os testes apresentados neste artigo.
Caso a sua distribuição GNU/Linux não possua o aplicativo por padrão, é possível clonar o repositório na sua máquina e seguir as instruções de instalação disponíveis no source do projeto.
Para maiores informações sobre o projeto, assim como o guia de instalação, acesse o repositório disponível em https://github.com/vanhauser-thc/thc-hydra.

- Familiarizando-se com a ferramenta e coletando informações do alvo

Digite "hydra" no terminal para mostrar todas as opções disponíveis e suas respectivas descrições. O parâmetro -h mostra mais opções de uso da ferramenta.

Os testes realizados tem como alvo o site "http://testphp.vulnweb.com/" - aplicação em PHP intencionalmente vulnerável para testes de penetração manuais com propósitos educacionais, disponibilizada pela Acunetix.

O formulário de login encontra-se na URL "http://testphp.vulnweb.com/login.php".


Antes de iniciarmos o teste precisamos coletar algumas informações sobre o comportamento do formulário da página para assim inserir as devidas opções na ferramenta de força bruta e termos sucesso no ataque.

- URL da página;
- Campos de inserção de dados do formulário (usuário e senha);
- Método de envio de informações (GET ou POST);
- Ação tomada pela aplicação ao enviar os dados inseridos no formulário (action);
- Comportamento (mensagem de erro, alerta, status code) gerado pela aplicação ao inserir credenciais inválidas.

Para identificar os parâmetros do formulário enviados para o servidor, pode-se interceptar a requisição com um proxy como o Burp Suite, mas aqui foi utilizado o navegador web (Firefox) e sua função de inspecionar elemento para então obter as informações necessárias.


Conforme mostrado na imagem acima, temos o formulário HTML onde encontram-se o nome das entradas de dados que serão enviadas via POST para o site. Informações coletadas:

- URL da página: http://testphp.vulnweb.com/
- Input do usuário: uname
- Input da senha: password
- Método de comunicação HTTP: POST
- Arquivo PHP que receberá os dados ao clicar em Login: userinfo.php

Agora vamos fazer um login usando credenciais inexistentes e analisar qual será o comportamento do formulário na tratativa de um login inválido.



Conforme podemos observar, nenhuma mensagem de erro é visivelmente retornada. A fim de compreender melhor o comportamento de uma aplicação, é aconselhável o uso de um Proxy para manipular as requisições e obter informações que podem ajudar na etapa de um ataque de força bruta e também, claramente, em outros ataques explorando vulnerabilidades em aplicações web. Contudo vou mostrar uma opção super interessante do Hydra e que nos ajudará a obter sucesso no ataque.

Ao ataque!

hydra "http-post-form://testphp.vulnweb.com/userinfo.php:uname=^USER^&pass=^PASS^:S=logout" -L dicionario.txt -P dicionario.txt -f 


Explicando os parâmetros utilizados:

Sintax do comando: hydra {serviço atacado}://{URL da página}:{Parâmetros do corpo do formulário da requisição POST}:S={encontrar algum padrão na página após fazer login com sucesso}

http-post-form = método de ataque
uname=^USER^&pass=^PASS^ = O ^USER^ e o ^PASS^ serão substituídos pelas entradas nos arquivos de usuário e senha que estamos enviando para o programa.
S=logout =  palavras identificadas após login sucedido. Utilizamos a palavra "logout" por ser uma função de encerrar a sessão que é comumente utilizada em páginas de login
-L = Insira a lista de possíveis usuários (wordlist) - usaremos a lista gerada pelo cewl
-P = Insira a lista de possíveis senhas (wordlist) - usaremos a lista gerada pelo cewl
-f = Ao identificar um par de usuário:senha, o hydra é finalizado imediatamente e mostrado a credencial válida

Login válido identificado:

            test:test


Há muito mais o que ser aproveitado dessa ótima ferramenta que é o Hydra, já que neste artigo nós acabamos de aprender como usar a força bruta em formulários de login baseado em aplicações web, aprendemos apenas um protocolo "http-post-form". Também podemos explorar mais opções de ataque do Hydra contra outros protocolos como: ssh, ftp, stmp, rdp, telnet, VNC e etc.

Referências:
https://github.com/vanhauser-thc/thc-hydra

0 comentários: