Por Henrique Scocco

/ Em Dados e Análises /

Postado em

jul 30, 2020

Manipulando sessões com BurpSuite

Neste artigo abordarei algumas funcionalidades do BurpSuite não muito conhecidas que podem auxiliar durante a realização de testes autenticados em aplicações web.

Como sabemos, um grande vilão de muitos pentesters é o fato do ambiente fazer uso de alguma autenticação, sendo ela validada via Headers ou via Cookies. Ao realizar pentests autenticados, muitas ferramentas/scanners que podemos utilizar para auxiliar nos testes acabam se tornando ineficazes devido à falta da funcionalidade de autenticação da própria ferramenta. Vale reforçar: ferramentas não são humanos, são “burras”, rs. Se não configurarmos ela corretamente, ela não irá realizar tudo sozinha.

No decorrer do artigo explicarei como realizar essas autenticações de forma automatizada utilizando o BurpSuite, nosso canivete suíço durante os pentests. A vantagem da autenticação automática configurada no Burp é que pode auxiliar até mesmo para a realização dos scans autenticados no ambiente ou para uso de outras extensões da ferramenta.

Analisando ambientes

Antes de configurar nossa autenticação, precisamos entender como o ambiente está validando a sessão do usuário. Por padrão temos 2 cenários comuns quando nos referimos à validação da sessão, sendo eles:

  • Via Headers – como, por exemplo, JWT (JSON Web Token);
  • Via Cookies.

Essa análise pode ser feita simplesmente se autenticando na aplicação e utilizando um proxy para analisar como a requisição na página autenticada está sendo enviada.

Configurando Autenticação via Cookies

Caso identifique que a sessão na página está sendo validada baseada no cookie da requisição, podemos configurar este cookie para ser inserido automaticamente em todas as requisições realizadas pela ferramenta. Desta forma, ao rodar um scan ou um brute force, por exemplo, irá ser executado com privilégios de autenticação do usuário.

Iniciando a configuração, primeiramente capture o valor do cookie da sessão do usuário analisando via proxy. Com o valor do cookie em mãos, realize o seguinte procedimento:

  • Acesse Project Options -> Sessions
  • Clique em Add
  • Selecione a opção “set a specific cookie or parameter value”

Depois de selecionar a opção marcada, coloque os seus cookies. Pode adicionar quantos cookies quiser. No exemplo abaixo, adicionamos o cookie .AspNet.Cookies, que era o cookie responsável pela validação da sessão:

Por fim, adicione na aba scope as ferramentas que quiser que o BurpSuite atualize o cookie sempre que for fazer uma requisição.

Neste caso, selecionando a opção scanner, por exemplo, todas as requisições realizadas pelo scanner do Burp serão feitas utilizando os cookies especificados anteriormente, possibilitando realizar um scan autenticado:

Configurando Autenticação via Headers

Em alguns ambientes, depararemos com a autenticação vindo com base nos headers. Por exemplo:

Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c

Nesse caso, a atualização de cookies não funcionaria, uma vez que no exemplo acima a autenticação está sendo realizada via JSON Web Token (JWT).

Para forçar a inserção de headers na requisição de forma automática e semelhante ao exemplo de cookies, primeiramente precisamos instalar a extensão “Add Custom Header” presente na BApp Store do BurpSuite. Para acessá-la: Extender -> BApp Store

BurpSuite

Instalada a extensão, acesse ela na aba superior do Burp e comece a configurá-la. Sua configuração é bem intuitiva, basta escolher o nome do header e inserir seus valores:

BurpSuite

Feito isso, os valores já estarão configurados com sucesso. Agora precisamos inseri-los de forma automática nas sessões. Para isso, realizaremos o procedimento semelhante ao de cookies:

BurpSuite

Em seguida, clique em Add novamente e selecione “Invoke a Burp extension

BurpSuite

Por fim, defina o escopo que quer que o Burp atualize os headers automaticamente. Isso pode ser feito na aba scope, como no exemplo abaixo:

BurpSuite

Seguindo todos os passos acima, sua sessão estará pronta. Agora, toda requisição que o Burp fizer neste caso usando o scanner ou o repeater, o Burp irá atualizar e adicionar o header que inserimos de forma automática.

Agradeço pela leitura e espero ter ajudado vocês em algum pontinho por aí, agora acalmem o coração, invistam em ir mais longe do que os outros já foram e partiu hackear! 🙂

Caso desconheça algum termo ou queira saber mais detalhadamente sobre alguma ferramenta, fique à vontade para entrar em contato comigo: henrique.scocco@redbelt.com.br

0

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *