Use Grep-Extract para Raspar Dados em Respostas do Intruder

Beginner
Pratique Agora

Introdução

Neste laboratório, você aprenderá a usar um dos recursos poderosos do Burp Intruder: 'Grep - Extract'. Este recurso permite definir regras para extrair pedaços específicos de texto das respostas recebidas durante um ataque Intruder. É incrivelmente útil para coletar informações valiosas que podem mudar a cada requisição, como tokens CSRF, IDs de sessão ou outros dados gerados dinamicamente.

Ao final deste laboratório, você será capaz de configurar o Burp Intruder para encontrar e exibir automaticamente dados personalizados das respostas, tornando seu fluxo de trabalho de testes de segurança mais eficiente. Simularemos um cenário onde precisamos extrair um token oculto da resposta de uma página web.

Em Intruder > Opções, Role até a Seção 'Grep - Extract'

Neste passo, começaremos lançando o Burp Suite e enviando uma requisição de exemplo para a ferramenta Intruder. Isso preparará o terreno para a configuração de nossas regras de extração.

Primeiro, você precisa lançar o Burp Suite. Geralmente, você o encontrará no menu de aplicativos do seu ambiente de desktop.

  1. Abra o Terminal do seu desktop.
  2. Inicie o Burp Suite executando o comando burpsuite. Selecione um projeto temporário e clique em "Next", depois em "Start Burp".
  3. Vá para a aba Proxy > Intercept e certifique-se de que "Intercept is on".
  4. Abra o navegador Chromium integrado indo para Proxy > Intercept e clicando em "Open Browser".
  5. No navegador, navegue até qualquer site simples, por exemplo, http://portswigger.net.
  6. A requisição será interceptada no Burp Suite. Clique com o botão direito em qualquer lugar na área de texto da requisição e selecione Send to Intruder.
  7. Agora, navegue até a aba Intruder. Você verá a requisição que acabou de enviar.
  8. Dentro da aba Intruder, clique na sub-aba Options.
  9. Role a página para baixo até encontrar a seção intitulada Grep - Extract. É aqui que configuraremos nossas regras de extração de dados.

Você agora localizou com sucesso a seção 'Grep - Extract' e está pronto para adicionar uma regra.

Adicionar uma Nova Regra de Extração

Neste passo, você adicionará uma nova regra vazia à seção 'Grep - Extract'. Esta regra será posteriormente configurada para definir quais dados específicos queremos extrair das respostas do servidor.

O recurso 'Grep - Extract' funciona criando uma lista de regras. Cada regra define um padrão a ser procurado na resposta. Quando uma resposta corresponde a uma regra, a parte especificada da resposta é extraída e exibida em uma nova coluna na tabela de resultados do Intruder.

Para adicionar uma nova regra, basta seguir esta instrução:

  1. Na seção Grep - Extract que você localizou no passo anterior, clique no botão Add.

Após clicar em Add, uma nova entrada aparecerá na tabela de regras. Esta nova entrada terá configurações padrão, que configuraremos no próximo passo. A caixa de diálogo para definir a extração também aparecerá, pronta para sua entrada.

Definir Delimitadores de Início e Fim para Extrair Dados (por exemplo, um token oculto)

Neste passo, você configurará a regra que acabou de adicionar. Diremos ao Burp o que extrair, definindo o texto que vem imediatamente antes e depois dos nossos dados alvo. Isso é feito usando delimitadores de início e fim.

Para este laboratório, vamos imaginar que estamos tentando extrair um token CSRF de uma resposta que contém o seguinte trecho de HTML:

<input type="hidden" name="csrf_token" value="a1b2c3d4e5f6g7h8i9j0" />

Nosso objetivo é extrair o valor a1b2c3d4e5f6g7h8i9j0.

  1. Após clicar em "Add" no passo anterior, uma caixa de diálogo "Define extract grep" aparece. Se não estiver aberta, clique na nova regra que você adicionou para abri-la.
  2. A ferramenta busca automaticamente a resposta da requisição original que você enviou ao Intruder. Você pode vê-la na visualização da resposta na parte inferior.
  3. Para definir a extração, especificaremos um delimitador de início e fim. A maneira mais confiável é usar a opção "Define start and end".
  4. Encontre um trecho de texto único na resposta que você deseja extrair. Para o nosso exemplo, vamos fingir que a resposta contém o trecho de HTML acima.
  5. Na visualização da resposta, destaque o valor que você deseja extrair (por exemplo, a1b2c3d4e5f6g7h8i9j0).
  6. Os campos "Start" e "End" serão preenchidos automaticamente.
    • O campo Start after expression deve conter o texto imediatamente anterior aos seus dados alvo. Para o nosso exemplo, isso seria name="csrf_token" value=".
    • O campo End at delimiter deve conter o texto imediatamente posterior aos seus dados alvo. Para o nosso exemplo, isso seria ".
  7. Clique em OK para salvar a regra.

Você agora configurou uma regra que procurará em cada resposta o texto entre name="csrf_token" value=" e ", e o extrairá.

Executar um Ataque Intruder

Neste passo, você configurará um payload básico e iniciará o ataque Intruder. À medida que o ataque é executado, o Burp aplicará a regra Grep-Extract a cada resposta que receber.

Primeiro, precisamos definir uma posição de payload.

  1. Navegue até a sub-aba Intruder > Positions.
  2. O template da requisição é mostrado aqui. Por padrão, o Burp pode ter adicionado automaticamente marcadores de payload (§...§) em torno dos valores dos parâmetros. Para este exercício, não importa onde o payload está, pois estamos focados na resposta. Você pode deixar os marcadores padrão ou removê-los e adicionar um em qualquer lugar. Por exemplo, você pode adicioná-lo a um valor de cookie ou a um parâmetro.
  3. Certifique-se de que o tipo de ataque esteja definido como Sniper.

Em seguida, configuramos um payload simples.

  1. Navegue até a sub-aba Intruder > Payloads.
  2. Em Payload Sets, mantenha o Payload set como 1.
  3. Em Payload Options, selecione Numbers na lista suspensa.
  4. Configure-o para rodar de 1 a 5 com um passo de 1. Isso enviará 5 requisições.

Finalmente, inicie o ataque.

  1. Clique no botão Start attack no canto superior direito da aba Intruder.
  2. Uma nova janela "Intruder attack" será aberta, mostrando os resultados do ataque em tempo real.

O ataque está agora em execução, e o Burp está ocupado extraindo dados com base na regra que você criou.

Visualizar os Dados Extraídos nas Novas Colunas da Tabela de Resultados

Neste passo final, você observará os resultados da sua configuração Grep-Extract. Os dados que você instruiu o Burp a encontrar agora estão organizados de forma clara na janela de resultados do ataque.

  1. Olhe para a janela Intruder attack que foi aberta no passo anterior.
  2. Você verá uma tabela com colunas como "Request", "Position", "Payload", "Status", "Length", etc.
  3. Role a tabela para a direita. Você deverá ver uma nova coluna. Por padrão, ela será nomeada Extract 1. Se você adicionou mais regras, elas seriam nomeadas Extract 2, e assim por diante.
  4. Esta nova coluna contém os dados que foram extraídos de cada resposta usando a regra que você definiu.

Se o site que você visou não contiver a string csrf_token que usamos como exemplo, esta coluna pode estar vazia. No entanto, a presença da coluna confirma que sua regra estava ativa. Se você tivesse visado um token real e dinâmico em uma página de login, esta coluna agora estaria preenchida com os tokens únicos de cada resposta, prontos para você analisar ou usar em ataques subsequentes.

Você pode clicar com o botão direito no cabeçalho da tabela para adicionar ou remover colunas, ou clicar em um cabeçalho de coluna para ordenar os resultados com base nesses dados.

Resumo

Neste laboratório, você aprendeu com sucesso como usar o recurso 'Grep - Extract' no Burp Intruder. Você percorreu todo o processo, desde o envio de uma requisição para o Intruder, adicionando e configurando uma regra de extração com delimitadores específicos, executando um ataque e, finalmente, visualizando os dados raspados na janela de resultados.

Esta habilidade é essencial para automatizar o processo de coleta de dados dinâmicos de aplicações web, o que é uma tarefa comum em testes de penetração e análise de segurança. Agora você pode aplicar esse conhecimento para extrair tokens CSRF, identificadores de sessão, chaves de API ou qualquer outra informação específica de respostas HTTP durante suas avaliações de segurança.