
A nova ponte entre Burp Suite e Frida!
A Brida é uma extensão do Burp Suite que, funcionando como uma ponte entre o Burp Suite e o Frida, permite que você utilize e manipule os próprios métodos das aplicações enquanto altera o tráfego trocado entre as aplicações e seus serviços/servidores de back-end. Ela suporta todas as plataformas suportadas pelo Frida (Windows, macOS, Linux, iOS, Android e QNX).
Esta ideia nasce de uma necessidade que surge durante a análise de algumas aplicações móveis que utilizam criptografia simétrica forte com chaves aleatórias. Sem conhecer o segredo correto, todos os dados não eram modificáveis via Burp nem com um plugin personalizado. De forma mais geral, a lógica das aplicações pode ser baseada em tokens criptográficos, pode usar um algoritmo complexo de challenge-response, e assim por diante. Como podemos adulterar as mensagens? Na maioria das vezes, a única abordagem viável é descompilar/desmontar a aplicação, identificar as funções ou métodos que nos interessam E reimplementá-los. Essa abordagem é obviamente demorada e nem sempre realmente viável: por exemplo, a geração de tokens e/ou rotinas de criptografia podem ser baseadas em material criptográfico estritamente vinculado ao dispositivo (estado) ou armazenado em áreas protegidas e, portanto, não diretamente acessível... É aí que a Brida se torna útil: em vez de tentar extrair chaves/certificados e reescrever as rotinas que nos interessam, por que não deixar a aplicação fazer o trabalho pesado por nós?
A resposta curta é todos!
A resposta longa é que a Brida é uma coleção de ferramentas, algumas criadas para acelerar as avaliações móveis do dia a dia e ajudar novos usuários do Frida, enquanto outras são voltadas para lidar com situações muito complexas, nas quais a Brida pode realmente fazer a diferença.
As ferramentas que podem ser valiosas para lidar e acelerar as avaliações móveis diárias são as seguintes:
No entanto, a ideia que levou à criação da Brida foi ajudar pentesters/reversers/hackers a analisar os webservices de aplicações móveis alvo onde recursos complexos de segurança estão em vigor para proteger a confidencialidade e integridade das requisições e respostas HTTP. Criptografia, ofuscação, rotinas de assinatura executadas em requisições e respostas podem tornar o trabalho dos testadores muito difícil e demorado, porque geralmente é necessário reverter os mecanismos de segurança e implementar um plugin do Burp Suite ou uma ferramenta externa que primeiro descriptografe/desofusque as mensagens HTTP e depois eventualmente criptografe/ofusque/assine as mensagens editadas. O mesmo se aplica também a alguns cenários não relacionados à segurança, como por exemplo se um protocolo binário personalizado é usado para formatar o corpo das requisições/respostas HTTP para fins de interoperabilidade ou desempenho.
A Brida tenta acelerar esses procedimentos o máximo possível, limitando o esforço de engenharia reversa e removendo completamente (na maioria das situações) o esforço de desenvolvimento, oferecendo um motor que permite criar graficamente plugins personalizados que inspecionam e editam requisições e respostas HTTP usando as mesmas funções móveis usadas pela própria aplicação móvel, graças ao Frida. Tomando como exemplo uma aplicação móvel que criptografa/descriptografa todas as requisições e respostas com um algoritmo de criptografia personalizado/desconhecido, a Brida permite graficamente criar um plugin personalizado simples que descriptografe as mensagens HTTP criptografadas usando diretamente o código móvel usado pela aplicação móvel para fazer o trabalho. Outro exemplo pode ser um plugin personalizado que atualiza transparentemente as assinaturas de requisições HTTP assinadas quando são enviadas ao backend usando a mesma funcionalidade móvel usada pela própria aplicação.
Mais detalhadamente, a Brida permite criar graficamente os plugins que:
E se o motor de plugin personalizado da Brida não for suficiente para nossas situações supercomplexas, também é possível escrever extensões externas do Burp Suite em Python/Java que deixam para a Brida a tarefa de executar as funções da aplicação móvel alvo nos dados da extensão. A ferramenta 'Generate Stubs' da Brida gera o código Java ou Python que pode ser colado em extensões externas Python ou Java para usar a ponte Brida.
O Frida 17 traz grandes atualizações na própria ferramenta e em suas APIs JavaScript. Uma grande refatoração do código JS foi necessária, que quebrou a compatibilidade com versões anteriores do frida. Consequentemente, as últimas versões da Brida exigem uma versão do frida maior ou igual a 17. Se você precisar usar uma versão mais antiga do Frida, pode baixar a versão 0.6pre dos lançamentos do GitHub.
Requisitos:
pip install frida frida-tools pyro4)Instalação a partir do GitHub:
Instalação a partir da BApp Store do Burp Suite: