Realizando um brute force com Burp Suite

Realizando um brute force com Burp Suite

Em ambientes com configuração padrão, é comum que administradores e desenvolvedores utilizem senhas de fácil adivinhação para acesso a algum portal administrativo. Na maior parte dos casos, um ataque de força bruta pode ser realizado com sucesso com ferramentas específicas para isso, como por exemplo, o Hydra, Medusa, ncrack, entre outros.

Porém em ambientes com uma configuração minimamente mais robusta, tokens anti-CSRF estarão presentes, o que dificultará o ataque de força bruta, pois para cada requisição enviada, um token é gerado, criando uma requisição HTTP dinâmica e dificultando o uso do ferramental supramencionado.

Uma possibilidade é programar um script em Python para que o mesmo realize uma requisição HTTP, parsing a resposta em busca do valor do token CSRF e posteriormente realize o ataque de força bruta com o valor do token obtido.

Outra possibilidade é criar um mecanismo de macro no Burp para que uma ação seja tomada no momento da requisição HTTP. No nosso caso, a ação a ser tomada é capturar de forma automática o valor do token anti-CSRF. De forma análoga, a macro no Burp é similar a criar uma macro em documentos da suíte Microsoft Office (Word, etc): um script que irá executar uma determinada ação ao ser invocado.

Para criar uma macro no Burp Suite que capture automaticamente o valor do token vá em:

Project Options > Sessions > Session Handling Rules > Add (Figura 1).

Figura 1 – Criando uma regra.

Adicione uma descrição em Rule Description e depois clique em Rule Actions > Add > Run a macro (Figura 2).

Figura 2 – Criando uma regra.

Clique em Add, habilite também o checkbox Tolerate URL mismatch when matching parameters (use for URL-agnostic CSRF tokens) (Figura 3).

Figura 3 – Habilitando o checkbox.

Selecione a URL em que foi enviada a requisição GET para a página de login (Figura 4).

Figura 4 – Selecionando a URL.

Insira uma descrição da macro e depois clique em Configure item (Figura 5).

Figura 5 – Inserindo uma descrição.

Clique em Add (Figura 6).

Figura 6 – Adicionando o item de macro.

Em Parameter name insira o nome do token anti-CSRF e no código HTML (canto inferior) selecione o valor do Token, sem selecionar as aspas (Figura 7).

Figura 7 – Inserindo o nome do token anti-CSRF.

Retroceda as janelas abertas clicando em OK até voltar para a janela exibida pela Figura 8.

Figura  8 – Volte até essa janela.

Ainda na janela representada pela Figura 8, clique em Scope e nessa parte será definido como será aplicada a Macro. Como será feito somente o teste de força bruta, deixe habilitado somente o checkbox Intruder. Já em URL Scope, deixe como sendo Use suite scope [defined in Target tab], nesse caso certifique-se de adicionar o domínio no escopo do Burp Suite. Todo o procedimento é representado na Figura 9.

Burp
Figura 9 – Definindo somente o Intruder para realização dos testes de força bruta.

Para realizar o ataque de força bruta em si, selecione a requisição contendo os dados de login no histórico do Burp. Provavelmente será utilizado o método POST. Clique em Send to Intruder (Figura 10).

Burp
Figura 10 – Selecionando a requisição contendo os dados de login.

Selecione o método Cluster Bomb, o mais apropriado para ataques de força bruta, deixando entre o caractere especial $ somente o nome de usuário e senha. (Figura 11).

Burp
Figura 11 – Selecionando o método Cluster Bomb.

Certifique-se de inserir a sua wordlist para os nomes de usuários na guia Payloads.

Na guia Options desabilite o checkbox Make unmodified baseline request (Figura 12).

Figura 12 – Desabilitando o checkbox desejado.

Ainda na guia Options, vá em Grep – Extract > Add (Figura 13).

Burp
Figura 13 – Criando um texto a ser extraído.

Na janela que será aberta, selecione algum trecho de código HTML que você tenha certeza que o mesmo não será apresentado quando um login bem sucedido for efetuado. Por exemplo, dificilmente o trecho Forgot your password? será apresentado quando um login for bem sucedido (Figura 14).

Burp
Figura 14 – Extraindo o texto desejado.

Inicie o ataque de força bruta clicando em Start Attack (Figura 15).

Figura 15 – Iniciando o ataque de força bruta.

Na janela que será aberta, o login contendo credenciais válidas não terá a coluna criada pela Figura 14 marcada. Outro detalhe é o tamanho da página. Em um login bem sucedido o tamanho da página retornada será diferente das outras requisições (Figura 16).

Figura 16 – Ataque de força bruta realizado com sucesso.

Após realizar o ataque de força bruta, o login ao painel web pode ser efetuado. A partir desse ponto dependerá muito da arquitetura e a forma como a aplicação foi construída. Porém outros ataques podem ser efetuados, como envio de arquivo malicioso ou escalonamento de privilégios até que o controle completo do servidor seja tomado.

Qualquer dúvida entre em contato com nossos especialistas.

About the Author

Deixe uma resposta