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).

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

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

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

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

Clique em Add (Figura 6).

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).

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

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.

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).

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).

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).

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

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).

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

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).

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.