
Die neue Brücke zwischen Burp Suite und Frida!
Brida ist eine Burp Suite-Erweiterung, die als Brücke zwischen Burp Suite und Frida fungiert und es Ihnen ermöglicht, die eigenen Methoden von Anwendungen zu verwenden und zu manipulieren, während der Datenverkehr zwischen den Anwendungen und ihren Backend-Diensten/Servern abgefangen und verändert wird. Sie unterstützt alle Plattformen, die von Frida unterstützt werden (Windows, macOS, Linux, iOS, Android und QNX).
Diese Idee entsteht aus der Notwendigkeit, die sich bei der Analyse einiger mobiler Anwendungen ergibt, die starke symmetrische Verschlüsselung mit zufälligen Schlüsseln verwenden, ohne den korrekten geheimen Schlüssel zu kennen, waren alle Daten weder über Burp noch mit einem benutzerdefinierten Plugin modifizierbar. Allgemeiner gesagt, die Logik von Anwendungen könnte auf kryptografischen Token basieren, sie könnte einen komplexen Challenge-Response-Algorithmus verwenden, und so weiter. Wie können wir die Nachrichten manipulieren? In den meisten Fällen besteht der einzig gangbare Ansatz darin, die Anwendung zu dekompilieren/disassemblieren, die Funktionen oder Methoden zu identifizieren, die uns interessieren, UND sie neu zu implementieren. Dieser Ansatz ist offensichtlich zeitaufwendig und nicht immer wirklich praktikabel: z.B. die Generierung von Token und/oder die Verschlüsselungsroutinen könnten auf kryptografischem Material basieren, das eng an den Gerätezustand gebunden ist oder in geschützten Bereichen gespeichert ist und daher nicht direkt zugänglich ist... Hier kommt Brida ins Spiel: Anstatt zu versuchen, Schlüssel/Zertifikate zu extrahieren und die Routinen, die uns interessieren, neu zu schreiben, warum lassen wir nicht die Anwendung die Drecksarbeit für uns erledigen?
Kurze Antwort: jeder!
Die lange Antwort ist, dass Brida eine Sammlung von Werkzeugen ist, einige davon entwickelt, um alltägliche Mobile-Assessments zu beschleunigen und neuen Frida-Benutzern zu helfen, während andere darauf abzielen, sehr komplexe Situationen zu bewältigen, in denen Brida wirklich den Unterschied ausmachen kann.
Werkzeuge, die nützlich sein können, um alltägliche Mobile-Assessments zu handhaben und zu beschleunigen, sind die folgenden:
Die Idee, die zur Entwicklung von Brida führte, bestand jedoch darin, Pentestern/Reversern/Hackern zu helfen, die Webservices von Ziel-Mobile-Anwendungen zu analysieren, bei denen komplexe Sicherheitsfunktionen zum Schutz der Vertraulichkeit und Integrität der HTTP-Anfragen und -Antworten implementiert sind. Verschlüsselung, Verschleierung, Signaturroutinen, die auf Anfragen und Antworten angewendet werden, können die Arbeit der Tester sehr schwierig und zeitaufwendig machen, da es normalerweise notwendig ist, die Sicherheitsmechanismen zu reverse-engineeren und ein Burp Suite-Plugin oder ein externes Werkzeug zu implementieren, das die HTTP-Nachrichten zuerst entschlüsselt/entverschleiert und dann bearbeitete Nachrichten schließlich verschlüsselt/verschleiert/signiert. Gleiches gilt auch für einige nicht-sicherheitsrelevante Szenarien, wie zum Beispiel, wenn ein benutzerdefiniertes Binärprotokoll verwendet wird, um den Körper von HTTP-Anfragen/-Antworten aus Interoperabilitäts- oder Leistungsgründen zu formatieren.
Brida versucht, diese Verfahren so weit wie möglich zu beschleunigen, indem der Reverse-Engineering-Aufwand begrenzt und (in den meisten Situationen) der Entwicklungsaufwand vollständig vermieden wird, indem eine Engine angeboten wird, die es ermöglicht, grafisch benutzerdefinierte Plugins zu erstellen, die HTTP-Anfragen und -Antworten mit denselben mobilen Funktionen, die auch von der mobilen Anwendung selbst verwendet werden, überprüfen und bearbeiten – dank Frida. Nehmen wir als Beispiel eine mobile Anwendung, die alle Anfragen und Antworten mit einem benutzerdefinierten/unbekannten Verschlüsselungsalgorithmus verschlüsselt/entschlüsselt: Brida ermöglicht es, grafisch ein einfaches benutzerdefiniertes Plugin zu erstellen, das die verschlüsselten HTTP-Nachrichten direkt mit dem mobilen Code entschlüsselt, der von der mobilen Anwendung für diese Aufgabe verwendet wird. Ein weiteres Beispiel kann ein benutzerdefiniertes Plugin sein, das transparent Signaturen von signierten HTTP-Anfragen aktualisiert, wenn diese an das Backend gesendet werden, unter Verwendung derselben mobilen Funktionalität, die von der Anwendung selbst verwendet wird.
Im Detail ermöglicht Brida die grafische Erstellung von Plugins, die:
Und wenn die Brida-Engine für benutzerdefinierte Plugins für unsere super-komplexen Situationen nicht ausreicht, ist es auch möglich, externe Python/Java-Burp-Suite-Erweiterungen zu schreiben, die Brida die Aufgabe überlassen, die Funktionen der Ziel-Mobile-Anwendung auf den Daten der Erweiterung auszuführen. Das Brida-Tool 'Generate Stubs' generiert den Java- oder Python-Code, der in externe Python- oder Java-Erweiterungen eingefügt werden kann, um die Brida-Brücke zu nutzen.
Frida 17 bringt große Aktualisierungen im Tool selbst und in seinen JavaScript-APIs. Ein größeres Refactoring des JS-Codes war notwendig, das die Kompatibilität mit früheren Frida-Versionen gebrochen hat. Folglich erfordern die letzten Versionen von Brida eine Frida-Version größer oder gleich 17. Wenn Sie eine ältere Version von Frida benötigen, können Sie Version 0.6pre von den GitHub-Releases herunterladen.
Voraussetzungen:
pip install frida frida-tools pyro4)Installation von GitHub:
Installation aus dem Burp Suite BApp Store:
Updates im BApp Store benötigen Zeit. Überprüfen Sie auf GitHub nach der neuesten Version.
Voraussetzungen:
npm install [email protected]).pip install frida frida-tools pyro4)Installation von GitHub:
Pfadfehler unter MacOS sind recht häufig; lesen Sie diesen Link, wenn Sie Probleme mit dem Systempfad haben.
Sie können Brida mit Gradle oder Maven erstellen. Brida verwendet eine modifizierte Version von RSyntaxTextArea, die Sie in diesem Fork finden.
Das Erstellen mit Gradle ist einfacher. Die 'jar'-Aufgabe erledigt die gesamte Arbeit, unter Verwendung einer kompilierten Version der modifizierten RSyntaxTextArea (Ordner 'libs').
Um Brida mit Maven erstellen zu können, müssen Sie die modifizierte RSyntaxTextArea-Version lokal mit Maven installieren, indem Sie die folgenden Parameter verwenden:
Installations- und Nutzungshinweise finden Sie auf der Wiki-Seite.
Die Folien unserer Konferenz, vorgestellt auf der HackInBo 2017 Winter Edition, die die erste Version beschreibt, finden Sie unter:
Die Folien und das Video unserer Konferenz, vorgestellt auf der Hack In The Box 2018 Amsterdam, die die neuen Funktionen der Version 0.2 beschreiben, finden Sie unter:
Das Video unserer Konferenz, vorgestellt auf der Hack In Paris 2020 2021 (verschoben aufgrund der globalen COVID-19-Situation), das die neuen Funktionen der Version 0.4 0.5 beschreibt, finden Sie unter:
Zwei verschiedene Demo-Anwendungen finden Sie im Demo-Ordner, eine für Android und eine für iOS.
Der Demo-Ordner enthält auch die Brida-Plugins, die verwendet werden können, um die von den Apps verwendeten Verschlüsselungsmechanismen zu umgehen!
Brida verwendet viel Frida-Code für dynamisches Hooken und für die Binärinspektion, basierend auf der Arbeit von:
Darüber hinaus integriert Brida viele Frida-Hooks, die von verschiedenen Autoren entwickelt wurden, um viele Sicherheitsfunktionen zu überprüfen/umgehen. Eine Liste von Projekten (ich hoffe ziemlich vollständig), aus denen ich Frida-Code für den Abschnitt 'Hooks and functions' von Brida übernommen habe, ist (zufällige Reihenfolge):

Copyright (c) 2025 Brida
Hiermit wird jeder Person, die eine Kopie dieser Software und der zugehörigen Dokumentationsdateien (die "Software") erhält, kostenlos die Erlaubnis erteilt, die Software ohne Einschränkung zu nutzen, einschließlich und ohne Einschränkung der Rechte zur Vervielfältigung, Änderung, Zusammenführung, Veröffentlichung, Verbreitung, Unterlizenzierung und/oder zum Verkauf von Kopien der Software, und Personen, denen die Software zur Verfügung gestellt wird, dies unter den folgenden Bedingungen zu gestatten:
Der obige Urheberrechtshinweis und dieser Genehmigungshinweis müssen in allen Kopien oder wesentlichen Teilen der Software enthalten sein.
DIE SOFTWARE WIRD OHNE MÄNGELGEWÄHR UND OHNE JEGLICHE AUSDRÜCKLICHE ODER STILLSCHWEIGENDE GEWÄHRLEISTUNG BEREITGESTELLT, EINSCHLIESSLICH, ABER NICHT BESCHRÄNKT AUF DIE GEWÄHRLEISTUNG DER MARKTGÄNGIGKEIT, EIGNUNG FÜR EINEN BESTIMMTEN ZWECK UND NICHTVERLETZUNG VON RECHTEN. IN KEINEM FALL SIND DIE AUTOREN ODER URHEBERRECHTSINHABER HAFTBAR FÜR JEGLICHE ANSPRÜCHE, SCHÄDEN ODER ANDERE VERPFLICHTUNGEN, OB AUS VERTRAG, UNERLAUBTER HANDLUNG ODER ANDERWEITIG, DIE AUS ODER IM ZUSAMMENHANG MIT DER SOFTWARE ODER DER NUTZUNG ODER ANDEREN GESCHÄFTEN MIT DER SOFTWARE ENTSTEHEN.