
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 :