Use o Ataque Pitchfork no Burp Intruder

Beginner
Pratique Agora

Introdução

Burp Suite é uma plataforma poderosa para testes de segurança de aplicações web. Uma das suas ferramentas mais versáteis é o Burp Intruder, que permite automatizar ataques personalizados contra aplicações web. O Intruder possui vários tipos de ataque, cada um projetado para diferentes cenários de teste.

O tipo de ataque Pitchfork é usado quando você precisa testar múltiplos parâmetros com payloads diferentes, mas relacionados, simultaneamente. Ele utiliza uma lista de payloads separada para cada posição marcada. Durante o ataque, o Intruder pega o primeiro payload da primeira lista e o combina com o primeiro payload da segunda lista, depois o segundo com o segundo, e assim por diante. Isso é ideal para testar coisas como uma lista de pares conhecidos de nome de usuário e senha.

Neste laboratório, você aprenderá como configurar e executar um ataque Pitchfork no Burp Intruder contra um formulário de login simples.

Enviar um Pedido com Dois Parâmetros para o Intruder

Nesta etapa, você iniciará o Burp Suite, capturará um pedido de login e o enviará para a ferramenta Intruder para modificação. O ambiente de laboratório já iniciou uma aplicação web simples para você testar.

Primeiro, abra um terminal a partir da área de trabalho e inicie o Burp Suite. Normalmente, você o encontrará no menu de aplicações ou poderá iniciá-lo a partir da linha de comando. Para este laboratório, nós o iniciaremos a partir do terminal.

burpsuite

No assistente de inicialização, selecione "Temporary project" (Projeto temporário) e clique em "Next" (Próximo), em seguida, clique em "Start Burp" (Iniciar Burp).

Assim que o Burp Suite estiver aberto, vá para a aba Proxy e, em seguida, para a sub-aba Intercept. Clique no botão "Open Browser" (Abrir Navegador). Isso iniciará um navegador Chromium pré-configurado para funcionar com o proxy do Burp.

No navegador do Burp, navegue até a aplicação alvo inserindo o seguinte URL:

http://127.0.0.1:8000

Você verá um formulário de login simples. Volte para a janela do Burp Suite e desative a interceptação clicando no botão "Intercept is on" (Interceptação está ativa) para que ele mude para "Intercept is off" (Interceptação está desativada). Isso permite que os pedidos fluam livremente para a aplicação.

Agora, retorne ao navegador. Insira test para o nome de usuário e test para a senha, e clique em "Submit" (Enviar).

Volte para a janela do Burp Suite e navegue até a aba Proxy > HTTP history (Histórico HTTP). Você deverá ver um pedido POST /login na lista de histórico. Clique com o botão direito neste pedido e selecione "Send to Intruder" (Enviar para Intruder).

Esta ação envia uma cópia do pedido para a ferramenta Intruder, onde você pode configurar o ataque. Você deverá ver a aba Intruder destacada.

Adicionar Marcadores de Payload a Ambos os Parâmetros

Nesta etapa, você definirá as posições na requisição onde o Intruder deve colocar seus payloads. Para um ataque Pitchfork, você precisa marcar cada valor de parâmetro que deseja testar (fuzz).

Navegue até a aba Intruder e, em seguida, para a sub-aba Positions. Você verá a requisição POST /login capturada.

O Burp Intruder frequentemente identifica automaticamente posições potenciais de payload e as marca com símbolos §. Para este laboratório, queremos controlar as posições com precisão. Primeiro, clique no botão Clear § no lado direito para remover quaisquer marcadores padrão.

O corpo da requisição na parte inferior da janela se parece com isto:

username=test&password=test

Queremos inserir payloads nos valores de ambos os parâmetros username e password.

  1. No editor de requisição, selecione o valor test para o parâmetro username.
  2. Clique no botão Add § à direita. O parâmetro agora deve parecer username=§test§.
  3. Em seguida, selecione o valor test para o parâmetro password.
  4. Clique no botão Add § novamente. O parâmetro agora deve parecer password=§test§.

Seu corpo de requisição agora deve ter duas posições marcadas:

username=§test§&password=§test§

Esses marcadores dizem ao Intruder exatamente onde colocar os payloads dos conjuntos de payloads correspondentes.

Definir o Tipo de Ataque para 'Pitchfork'

Nesta etapa, você selecionará o tipo de ataque Pitchfork. Esta é a configuração crucial que habilita o comportamento de injeção de payload pareado que queremos testar.

Ainda na aba Intruder > Positions, localize o menu suspenso "Attack type" (Tipo de ataque) na parte superior da tela. Provavelmente estará definido como Sniper por padrão.

Clique no menu suspenso. Você verá quatro opções:

  • Sniper: Usa um único conjunto de payloads e itera por cada posição uma por uma.
  • Battering ram: Usa um único conjunto de payloads e coloca o mesmo payload em todas as posições de uma vez.
  • Pitchfork: Usa múltiplos conjuntos de payloads. Ele pareia o primeiro payload do conjunto 1 com o primeiro do conjunto 2, o segundo com o segundo, e assim por diante.
  • Cluster bomb: Usa múltiplos conjuntos de payloads e testa todas as combinações possíveis de payloads.

Para o nosso cenário de teste de pares de nome de usuário/senha, Pitchfork é a escolha correta. Selecione Pitchfork da lista.

Assim que você selecionar Pitchfork, notará que a interface não muda muito nesta tela, mas o Burp agora está preparado para lidar com duas listas de payloads separadas correspondentes aos dois marcadores de payload que você definiu na etapa anterior.

Configurar Duas Listas de Payloads Separadas na Aba Payloads

Nesta etapa, você configurará as duas listas de payloads que o ataque Pitchfork utilizará. A primeira lista conterá nomes de usuário e a segunda conterá senhas correspondentes.

Navegue até a sub-aba Payloads dentro da aba Intruder.

Como você selecionou o tipo de ataque Pitchfork e tem duas posições de payload, você verá um menu suspenso "Payload set" (Conjunto de payloads). Isso permite que você configure cada lista de payloads independentemente.

Configurar Conjunto de Payloads 1 (Nomes de Usuário):

  1. Certifique-se de que o menu suspenso "Payload set" esteja definido como 1.
  2. O "Payload type" (Tipo de payload) deve ser "Simple list" (Lista simples).
  3. Na seção "Payload Options" (Opções de Payload) abaixo, clique no botão Clear (Limpar) para remover quaisquer itens padrão.
  4. Clique no botão Add (Adicionar) e insira os seguintes nomes de usuário, um por um:
    • user
    • guest
    • admin
    • test

Configurar Conjunto de Payloads 2 (Senhas):

  1. Agora, selecione 2 no menu suspenso "Payload set".
  2. Novamente, certifique-se de que o "Payload type" seja "Simple list".
  3. Clique no botão Clear para esvaziar a lista.
  4. Clique no botão Add e insira as seguintes senhas, que correspondem aos nomes de usuário na primeira lista:
    • userpass
    • guest
    • password123
    • test

Você agora configurou duas listas de payloads distintas. O ataque Pitchfork as pareará em ordem: (user, userpass), (guest, guest), (admin, password123) e (test, test). O número total de requisições será 4, que é o tamanho das suas listas.

Executar o Ataque e Observar a Injeção de Payload Pareada

Nesta etapa final, você iniciará o ataque e analisará os resultados para ver o ataque Pitchfork em ação.

Com o tipo de ataque e os payloads configurados, você está pronto para começar. No canto superior direito da aba Intruder, clique no botão "Start attack" (Iniciar ataque).

Uma nova janela "Intruder attack (1)" será aberta, exibindo os resultados em tempo real. Observe a tabela de resultados. Você verá colunas para "Payload 1" e "Payload 2".

Note como os payloads são pareados exatamente como você os configurou:

  • Requisição 1 usa user e userpass.
  • Requisição 2 usa guest e guest.
  • Requisição 3 usa admin e password123.
  • Requisição 4 usa test e test.

Agora, olhe para as colunas "Status" e "Length" (Comprimento). A maioria das requisições provavelmente terá o mesmo código de status (por exemplo, 200) e comprimento de resposta, indicando uma tentativa de login falha. No entanto, uma requisição deve se destacar. A requisição com o par de payloads admin e password123 é o conjunto de credenciais correto. Você deverá ver um comprimento de resposta diferente para esta requisição, indicando uma resposta diferente do servidor (por exemplo, uma mensagem "Login successful!" - Login bem-sucedido!).

Exemplo de resultados esperados:

Requisição Payload 1 Payload 2 Status Comprimento
1 user userpass 200 450
2 guest guest 200 450
3 admin password123 200 452
4 test test 200 450

Ao observar essa diferença, você identificou com sucesso as credenciais válidas usando um ataque Pitchfork. Agora você pode fechar a janela de ataque.

Resumo

Neste laboratório, você configurou e executou com sucesso um ataque Pitchfork usando o Burp Intruder.

Você aprendeu a:

  • Interceptar uma requisição web usando o Burp Proxy e enviá-la para o Intruder.
  • Definir manualmente marcadores de payload em múltiplas posições de parâmetros.
  • Selecionar o tipo de ataque Pitchfork, que é projetado para fuzzing multi-parâmetro relacionado.
  • Configurar duas listas de payloads separadas e correspondentes para os parâmetros de nome de usuário e senha.
  • Lançar o ataque e analisar os resultados para identificar anomalias, encontrando com sucesso as credenciais de login corretas ao observar a injeção de payload pareada.

O ataque Pitchfork é uma técnica valiosa para testar cenários onde os dados em múltiplos parâmetros estão vinculados, como nomes de usuário e senhas, ou quaisquer outros conjuntos de dados pareados.