
Le nouveau pont entre Burp Suite et Frida !
Brida est une extension Burp Suite qui, fonctionnant comme un pont entre Burp Suite et Frida, vous permet d'utiliser et de manipuler les propres méthodes des applications tout en modifiant le trafic échangé entre les applications et leurs services/serveurs back-end. Elle prend en charge toutes les plates-formes supportées par Frida (Windows, macOS, Linux, iOS, Android et QNX).
Cette idée est un besoin qui naît lors de l'analyse de certaines applications mobiles qui utilisent un chiffrement symétrique fort avec des clés aléatoires : sans connaître la bonne secret, toutes les données ne pouvaient pas être modifiées via Burp, même avec un plugin personnalisé. De manière plus générale, la logique des applications peut reposer sur des jetons cryptographiques, utiliser un algorithme complexe de challenge-réponse, etc. Comment pouvons-nous modifier les messages ? La plupart du temps, la seule approche viable est de décompiler/désassembler l'application, identifier les fonctions ou méthodes qui nous intéressent ET les réimplémenter. Cette approche est évidemment chronophage et pas toujours vraiment réalisable : par exemple, la génération de jetons et/ou les routines de chiffrement peuvent reposer sur du matériel cryptographique strictement lié à l'état de l'appareil ou stocké dans des zones protégées et donc non directement accessibles... C'est là que Brida intervient : au lieu d'essayer d'extraire des clés/certificats et de réécrire les routines qui nous intéressent, pourquoi ne pas laisser l'application faire le travail à notre place ?
La réponse courte est tout le monde !
La réponse longue est que Brida est une collection d'outils, dont certains créés pour accélérer les évaluations mobiles quotidiennes et aider les nouveaux utilisateurs de Frida, tandis que d'autres visent à traiter des situations très complexes, où Brida peut vraiment faire la différence.
Les outils qui peuvent être précieux pour gérer et accélérer les évaluations mobiles quotidiennes sont les suivants :
Cependant, l'idée qui a conduit à la création de Brida était d'aider les pentesteurs/reverseurs/hackeurs à analyser les webservices des applications mobiles cibles où des fonctionnalités de sécurité complexes sont en place pour protéger la confidentialité et l'intégrité des requêtes et réponses HTTP. Le chiffrement, l'obfuscation, les routines de signature exécutées sur les requêtes et réponses peuvent rendre le travail des testeurs très difficile et chronophage, car il est généralement nécessaire de reverser les mécanismes de sécurité et d'implémenter un plugin Burp Suite ou un outil externe qui d'abord déchiffre/désobfusque les messages HTTP, puis éventuellement chiffre/obfusque/signe les messages modifiés. La même chose s'applique également à certains scénarios non liés à la sécurité, comme par exemple si un protocole binaire personnalisé est utilisé pour formater le corps des requêtes/réponses HTTP à des fins d'interopérabilité ou de performance.
Brida essaie d'accélérer ces procédures autant que possible, en limitant l'effort de reverse engineering et en supprimant complètement (dans la plupart des situations) l'effort de développement, en offrant un moteur qui permet de créer graphiquement des plugins personnalisés qui inspectent et modifient les requêtes et réponses HTTP en utilisant les mêmes fonctions mobiles que l'application mobile elle-même, grâce à Frida. Prenons l'exemple d'une application mobile qui chiffre/déchiffre toutes les requêtes et réponses avec un algorithme de chiffrement personnalisé/inconnu : Brida permet de créer graphiquement un simple plugin personnalisé qui déchiffre les messages HTTP chiffrés en utilisant directement le code mobile utilisé par l'application mobile pour le faire. Un autre exemple peut être un plugin personnalisé qui met à jour de manière transparente les signatures des requêtes HTTP signées lorsqu'elles sont envoyées au backend en utilisant la même fonctionnalité mobile utilisée par l'application elle-même.
Plus en détail, Brida permet de créer graphiquement les plugins qui :
Et si le moteur de plugins personnalisés de Brida ne suffit pas pour nos situations super complexes, il est également possible d'écrire des extensions Burp Suite externes en Python/Java qui laissent à Brida la tâche d'exécuter les fonctions de l'application mobile cible sur les données de l'extension. L'outil "Generate Stubs" de Brida génère le code Java ou Python qui peut être collé dans des extensions Python ou Java externes pour utiliser le pont Brida.
Frida 17 apporte des mises à jour majeures dans l'outil lui-même et dans ses API JavaScript. Une refonte majeure du code JS était nécessaire, ce qui a rompu la compatibilité avec les versions précédentes de Frida. Par conséquent, les dernières versions de Brida nécessitent une version de Frida supérieure ou égale à 17. Si vous devez utiliser une version antérieure de Frida, vous pouvez télécharger la version 0.6pre à partir des versions GitHub.
Prérequis :
pip install frida frida-tools pyro4)Installation depuis GitHub :
Installation depuis le BApp Store de Burp Suite :
Les mises à jour dans le BApp Store prennent du temps. Vérifiez sur GitHub pour la dernière version.
Prérequis :
npm install [email protected]).pip install frida frida-tools pyro4)Installation depuis GitHub :
Les erreurs de chemin sous MacOS sont assez courantes ; référez-vous à ce lien si vous avez des problèmes avec le chemin système.
Vous pouvez compiler Brida en utilisant Gradle ou Maven. Brida utilise une version modifiée de RSyntaxTextArea, que vous trouverez dans ce fork.
La compilation avec Gradle est plus simple. La tâche "jar" fera tout le travail, en utilisant une version compilée de RSyntaxTextArea modifiée (dossier "libs").
Afin de pouvoir compiler Brida avec Maven, vous devez installer localement la version modifiée de RSyntaxTextArea avec Maven en utilisant les paramètres suivants :
Les notes d'installation et d'utilisation se trouvent dans la page Wiki.
Les diapositives de notre conférence présentée lors de l'édition hivernale 2017 de HackInBo, qui décrit la première version, se trouvent à l'adresse :
Les diapositives et la vidéo de notre conférence présentée lors de Hack In The Box 2018 Amsterdam, qui décrit les nouvelles fonctionnalités de la version 0.2, se trouvent à l'adresse :
La vidéo de notre conférence présentée lors de Hack In Paris 2020 2021 (reportée en raison de la situation mondiale liée au COVID-19), qui décrit les nouvelles fonctionnalités de la version 0.4 0.5, se trouve à l'adresse :
Deux applications de démonstration différentes se trouvent dans le dossier Demo, une Android et une iOS.
Le dossier de démonstration contient également les plugins Brida qui peuvent être utilisés pour contourner les mécanismes de chiffrement utilisés par les applications !
Brida utilise beaucoup de code Frida pour le hooking dynamique et l'inspection binaire, basé sur le travail de :
De plus, Brida intègre de nombreux hooks Frida développés par divers auteurs pour inspecter/contourner de nombreuses fonctionnalités de sécurité. Une liste de projets (j'espère assez exhaustive) à partir desquels j'ai pris du code Frida pour la section "Hooks and functions" de Brida est (ordre aléatoire) :

Copyright (c) 2025 Brida
Permission est accordée, gratuitement, à toute personne obtenant une copie de ce logiciel et des fichiers de documentation associés (le "Logiciel"), de traiter le Logiciel sans restriction, y compris sans limitation les droits d'utiliser, de copier, de modifier, de fusionner, de publier, de distribuer, de sous-licencier et/ou de vendre des copies du Logiciel, et d'autoriser les personnes à qui le Logiciel est fourni à le faire, sous réserve des conditions suivantes :
La mention de copyright ci-dessus et cette autorisation doivent être incluses dans toutes les copies ou parties substantielles du Logiciel.
LE LOGICIEL EST FOURNI "EN L'ÉTAT", SANS GARANTIE D'AUCUNE SORTE, EXPRESSE OU IMPLICITE, Y COMPRIS MAIS SANS S'Y LIMITER LES GARANTIES DE QUALITÉ MARCHANDE, D'ADÉQUATION À UN USAGE PARTICULIER ET D'ABSENCE DE CONTREFAÇON. EN AUCUN CAS LES AUTEURS OU TITULAIRES DU DROIT D'AUTEUR NE POURRONT ÊTRE TENUS RESPONSABLES DE TOUTE RÉCLAMATION, DOMMAGE OU AUTRE RESPONSABILITÉ, QUE CE SOIT DANS LE CADRE D'UNE ACTION CONTRACTUELLE, DÉLICTUELLE OU AUTRE, DÉCOULANT DE, OU EN RELATION AVEC LE LOGICIEL OU L'UTILISATION OU D'AUTRES INTERACTIONS AVEC LE LOGICIEL.