
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: