mitmproxy Reverse-Engineering-Toolbox für Apps-API auf iOS

mitmproxy, entwickelt vom Mitmproxy-Projekt, ist ein leistungsstarker und interaktiver Intercepting-Proxy, der SSL/TLS unterstützt und eine Konsolenoberfläche für die Verarbeitung von HTTP/1-, HTTP/2- und WebSocket-Verkehr bietet. Dieses Tool eignet sich besonders gut zum Erfassen und Analysieren aller zwischen Ihrem iOS-Gerät und externen Servern ausgetauschten Daten und ist somit eine wertvolle Ressource für das Reverse Engineering privater APIs in Anwendungen.
Key Takeaways
- mitmproxy unterstützt nicht nur HTTP, HTTP/2, HTTP/3, sondern auch andere Webprotokolle wie WebSocket, DNS, generischen TCP/TLS-Proxy und generischen UDP/DTLS-Proxy.
- Mit der Python-API können Sie Add-ons und Skripte mit einer API schreiben, die Ihnen die volle Kontrolle über mitmproxy bietet und die Implementierung Ihrer eigenen Befehle ermöglicht.
- Einer der Hauptzwecke von mitmproxy ist die Möglichkeit, die private API von iOS-Apps mit Verschlüsselung durch Man-In-the-Middle-Angriffe (MITM) zurückzuentwickeln.
- mitmproxy ist ein Befehlszeilentool, das zusammen mit mitmweb eine intuitive Weboberfläche ähnlich den DevTools von Chrome bietet, um den Netzwerkverkehr zu überwachen.
Herunterladen
mitmproxy kann auf allen gängigen Desktop-Plattformen installiert werden, darunter Windows, Linux und macOS. Für die ersten beiden können Sie ein dediziertes Installationsprogramm verwenden. Es wird empfohlen, mitmproxy für macOS über den Missing Package Manager für macOS – brew – zu installieren.
Überblick
Mitmproxy dient als umfassende Toolbox für das Reverse Engineering der APIs von Anwendungen auf iOS-Geräten. Es umfasst drei Hauptmodule: mitmproxy, mitmdump und mitmweb. Das Modul mitmdump fungiert als Kommandozeilen-Gegenstück zu mitmproxy, vergleichbar mit tcpdump für HTTP. Mitmweb bietet eine benutzerfreundliche webbasierte Oberfläche für die nahtlose Interaktion mit den Funktionen von mitmproxy.
Einer der Hauptvorteile von mitmproxy ist die Möglichkeit, ein Root-SSL-Zertifikat zu generieren, das auf Ihrem iPhone installiert werden kann. Diese einzigartige Funktion ermöglicht Ihnen die Entschlüsselung von HTTPS-Kommunikation und ermöglicht eine umfassende Analyse aller App-Verbindungen zu Servern.
Diese Transparenz ist besonders vorteilhaft für das Reverse Engineering privater APIs, da sie ein tiefes Verständnis der zugrunde liegenden Kommunikationsprotokolle ermöglicht. Darüber hinaus kann mitmproxy genutzt werden, um die spezifischen privaten Daten aufzudecken, die von der App an externe Server übertragen werden, wie z. B. GPS-Standort, Gerätetyp, iOS-Version und mehr.

Eine weitere bemerkenswerte Fähigkeit von mitmproxy ist die Fähigkeit, Anfragen abzufangen und zu modifizieren, bevor sie vom Server gesendet oder empfangen werden. Diese Funktionalität ist besonders wertvoll im Kontext von Sicherheits-Penetrationstests, da sie es Benutzern ermöglicht, benutzerdefinierten Code in die Anfragen einzufügen. Diese dynamische Modifikation von Anfragen bietet eine praktische Möglichkeit, die Widerstandsfähigkeit des Systems gegenüber verschiedenen Sicherheitslücken zu bewerten und potenzielle Schwachstellen zu identifizieren, die ausgenutzt werden könnten. Die Flexibilität von mitmproxy bei der Änderung von Anfragen erhöht seinen Nutzen als leistungsstarkes Werkzeug im Arsenal von Sicherheitsexperten und -forschern.
Mitmproxy spielte als eines der wichtigsten Tools, das die Sicherheitsforscher von Kaspersky während der Operation Triangulation einsetzten, eine entscheidende Rolle. Seine Funktionen trugen maßgeblich zur Entschlüsselung des HTTPS-Verkehrs bei und ermöglichten es den Forschern, die selbstinstallierende Messages-Malware auf iOS-Geräten zu verfolgen und zu analysieren, die darauf ausgelegt war, das iOS-Gerät spurlos zu übernehmen.
Info: mitmproxy unterstützt Windows-, macOS-, Linux-, iOS- und Android-Geräte.
Darüber hinaus ermöglicht mitmproxy die Echtzeitüberwachung und -änderung von Anfragen und ermöglicht dynamische Anpassungen während des Abfangvorgangs. Es ist jedoch zu beachten, dass die Installation eines Root-SSL-Zertifikats nicht das Abfangen von HTTPS-Verkehr von Apple-Diensten, einschließlich iMessage, ermöglicht. Diese Einschränkung entsteht durch die Implementierung von SSL-Pinning in iOS zur Verbesserung der Sicherheit.
Was ist neu
- Unterstützung für die Bearbeitung von Nicht-Textdateien in einem Hex-Editor hinzugefügt.
- Server_connect_error-Hook hinzugefügt, der ausgelöst wird, wenn der Verbindungsaufbau fehlschlägt.
- Abschnitt in Mitmweb zum Rendern, Hinzufügen und Entfernen eines Kommentars hinzugefügt.
- Fehler beim unbrauchbaren Anzeigen mehrteiliger Formularinhalte behoben.
- Dokumentationsverbesserungen bei der Generierung von CA-Zertifikaten.
- Ermöglichung des Lesens von Flows von stdin mit Mitmweb.
- Aioquic-Abhängigkeit auf >= 1.0.0, < 2.0.0 aktualisiert.
- Fehler behoben, bei dem asynchrone Client_Connected-Handler Mitmproxy zum Absturz brachten.
- Schaltfläche zum Schließen des Flow-Detailfensters hinzugefügt.
- SIGPIPE-Signale bei hohem Datenverkehr ignorieren. Socket-Fehler werden direkt behandelt und erfordern keine zusätzlichen Signale, die Rauschen erzeugen.
- Primitive WebSocket-Abfang- und -Änderungsfunktionen hinzugefügt.
- Unterstützung für den Export von WebSocket-Nachrichten beim Verwenden des „Raw“-Exports hinzugefügt.
- Die Funktion „Textkörper speichern“ umfasst jetzt auch WebSocket Nachrichten.
- Kompatibilität mit älteren Kryptografieversionen beheben und eine DeprecationWarning für Python <3.11 stummschalten.
- Einen Fehler beim Proxying von Unicode-Domänen beheben.
Mitmproxy bietet die Möglichkeit, sowohl HTTP- als auch HTTPS-Anfragen und -Antworten abzufangen und so dynamische Änderungen in Echtzeit vorzunehmen. Benutzer können komplette HTTP-Konversationen für die spätere Wiedergabe und detaillierte Analyse speichern. Das Tool unterstützt außerdem die Wiedergabe der Client-Seite einer HTTP-Konversation und kann HTTP-Antworten von einem zuvor aufgezeichneten Server reproduzieren. Darüber hinaus verfügt mitmproxy über einen Reverse-Proxy-Modus zur Weiterleitung des Datenverkehrs an einen Server.
Unter macOS und Linux bietet es einen transparenten Proxy-Modus. Für skriptbasierte Änderungen am HTTP-Verkehr unterstützt mitmproxy Python, sodass Nutzer individuelle Anpassungen vornehmen können. Darüber hinaus werden SSL/TLS-Zertifikate für die Interception im laufenden Betrieb generiert, was die Flexibilität und Anpassungsfähigkeit des Tools an verschiedene Sicherheitsszenarien erhöht. Der Quellcode befindet sich im GitHub-Repository .

Mitmweb dient als webbasierte Benutzeroberfläche von Mitmproxy und bietet eine interaktive Plattform zur Untersuchung und Bearbeitung von HTTP-Verkehr. Im Unterschied zu Mitmdump speichert Mitmweb alle Datenströme im Speicher und eignet sich daher gut für die Erfassung und Bearbeitung von Samples.
Mitmdump dient als Kommandozeilen-Gegenstück zu mitmproxy und bietet tcpdump-ähnliche Funktionen. Mit diesem Tool können Sie HTTP-Verkehr beobachten, aufzeichnen und programmgesteuert ändern. Eine umfassende Dokumentation finden Sie in der Ausgabe des Flags --help.
So installieren Sie mitmproxy unter macOS
Die bevorzugte Methode zur Installation von mitmproxy unter macOS ist Homebrew. Alternativ können eigenständige Binärdateien von mitmproxy für macOS von der offiziellen Website mitmproxy.org heruntergeladen werden. Bitte beachten Sie, dass für Apple Silicon Rosetta erforderlich ist.
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" brew install mitmproxy