- Einführung
- Warum sollte man den Datenverkehr mit mitmproxy analysieren?
- Praktische Anwendungsfälle
- Installation und Werkzeuge
- Einrichtung als expliziter Proxy (Clientkonfiguration)
- Transparenter Proxy-Modus (keine manuelle Client-Konfiguration)
- Datenströme aufzeichnen, speichern und konvertieren
- Skripte und Add-ons
- Filter und Flow-Suche
- TLS-Analyse und technische Details
- Skalierbarkeit und Leistung
- Betriebssicherheit und Datenschutz
- Praktische Beispiele: Mobilgeräte, API und Wiedergabe
- Integration mit anderen Tools (Wireshark, Burp, CI)
- Optimale Konfigurationen je nach Anwendung
- Schlussbemerkungen und rechtliche Hinweise
- Schlussfolgerung und praktische Empfehlungen
- Häufig gestellte Fragen
Einführung
mitmproxy ist ein leistungsstarkes und flexibles Werkzeug zum Untersuchen, Manipulieren und Analysieren des Datenverkehrs. HTTP/HTTPS In Entwicklungsumgebungen wird es zum Sicherheitstesten und Debuggen von mobilen und Webanwendungen verwendet. Diese Anleitung bietet eine schrittweise Implementierung, praktische Beispiele und gängige Konfigurationen (einschließlich transparenter ProxySicherheitstipps und Skalierungsmethoden werden besprochen.
Dieser Artikel richtet sich an Website-Administratoren, Entwickler, DevOps- und Sicherheitsteams und enthält Beispiele und ausführbare Linux-Befehle.
Warum sollte man den Datenverkehr mit mitmproxy analysieren?
mitmproxy Möglichkeit, TLS-verschlüsselte Anfragen und Antworten durch die Installation eines lokalen Zertifikats anzuzeigen (MITM CA) auf dem Client; diese Funktion eignet sich hervorragend zum Debuggen von APIs, zum Analysieren des Anwendungsverhaltens, für Sicherheitstests und zum Aufzeichnen/Wiedergeben von Datenverkehr.
Das Set enthält Werkzeuge mitmproxy (Interaktiv), mitmdump (für Skripte und Backend) und mitmweb (Weboberfläche).
Python-Skripte können Filterung, Protokollierung und Nutzlastmodifikation automatisieren. Dieses Tool ist Docker, systemd, iptables/nftables Es ist kompatibel und kann verwendet werden als explizit Oder transparenter Proxy Es ist.
Praktische Anwendungsfälle
API- und mobiles Debugging
Um JSON-Probleme, CORS-Fehler oder Probleme mit der OAuth-Authentifizierung zu beheben, können Sie mitmproxy zwischen Mobilgerät und Server platzieren und die Anfragen/Antworten beobachten.
Einfache Methode: Konfigurieren Sie den Client auf die IP-Adresse des mitmproxy-Servers (Standardport). 8080) und installieren Sie das CA-Zertifikat auf dem Gerät.
Penetrationstests und Sicherheitsbewertung (unter Einhaltung der rechtlichen Grundsätze)
Für Penetrationstests ermöglicht mitmproxy logische Angriffe, Token-Leak-Prüfungen und TLS-Analysen. Halten Sie immer einen schriftlichen Vertrag und eine schriftliche Genehmigung bereit. Und vermeiden Sie es, sensible Daten ohne Einwilligung zu sammeln.
Verkehrsaufzeichnung und -wiedergabe
Um Fehler zu reproduzieren oder einen Lasttest durchzuführen, können Sie den erfassten Datenverkehr mit dem Server-Replay Spielen Sie, um das Server- oder Clientverhalten neu zu bewerten.
Installation und Werkzeuge
Grundlegende Installation unter Debian/Ubuntu
Installation mit pip (empfohlen für die neueste Version):
pip3 install mitmproxyInstallation aus einem Paket (einfach, aber älter):
sudo apt update
sudo apt install mitmproxy
Schnelle Ausführung
Drei Hauptwerkzeuge:
mitmproxy — Interaktive Konsolenschnittstelle
mitmdump — Geeignet für die Aufzeichnung von Skripten und Backends
mitmweb — Webinterface mit grafischer Benutzeroberfläche
Ausführungsbeispiel:
mitmweb --listen-port 8080 --showhost
Ausführung in Docker
docker run --rm -p 8080:8080 -p 8081:8081 -v $(pwd)/certs:/home/mitmproxy/.mitmproxy mitmproxy/mitmproxy mitmweb --web-host 0.0.0.0
Einrichtung als expliziter Proxy (Clientkonfiguration)
Allgemeine Schritte:
Führen Sie mitmproxy aus:
mitmproxy --listen-port 8080Generieren und Installieren eines CA-Zertifikats:
Nach dem Ausführen von mitmproxy ist die CA in
~/.mitmproxy/wird platziert (Dateimitmproxy-ca-cert.pem).Im Client-Browser oder Betriebssystem können Sie das Zertifikat wie folgt anzeigen: Vertrauen Installieren (Windows: MMC > Zertifikate; macOS: Schlüsselbund; Android: Einstellungen > Sicherheit > Aus Speicher installieren).
Transparenter Proxy-Modus (keine manuelle Client-Konfiguration)
Für Umgebungen, in denen Proxy-Einstellungen nicht auf dem Client konfiguriert werden können (z. B. bei IoT-Geräten oder internen Netzwerken), verwenden Sie die transparent Dieser Modus erfordert eine Datenverkehrsweiterleitung mit iptables/nftables/TPROXY Und es verfügt über aktiviertes IP-Forwarding im Kernel.
IP-Weiterleitung aktivieren
sudo sysctl -w net.ipv4.ip_forward=1
iptables-Beispiel zur Umleitung von HTTP/HTTPS auf Port 8080
Leiten Sie die TCP-Ports 80 und 443 auf Port 8080 auf demselben Rechner weiter (für lokalen Datenverkehr):
sudo iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080
sudo iptables -t nat -A PREROUTING -p tcp --dport 443 -j REDIRECT --to-port 8080
mitmproxy im transparenten Modus ausführen
mitmproxy --mode transparent --listen-port 8080Hinweis: Für HTTPS-Datenverkehr im transparenten Modus muss eine Zertifizierungsstelle auf den Clients installiert sein. Für eine skalierbare Implementierung am Netzwerkrand verwenden Sie TPROXY + nftables Dient dazu, die ursprüngliche IP-Adresse des Clients zu erhalten.
Datenströme aufzeichnen, speichern und konvertieren
Aufzeichnung mit mitmdump
mitmdump -w flows.mitm
Lesen der aufgezeichneten Datei
mitmproxy -r flows.mitm
Konvertierung in HAR/pcap
mitmproxy/mitmdump verfügen über Exportfunktionen (mitmweb bietet eine Export-HAR-Option).
Für pcap können Sie gleichzeitig tcpdump ausführen und anschließend Wireshark mit pcap analysieren:
sudo tcpdump -i eth0 -w capture.pcap port 80 or port 443Wenn Sie TLS in Wireshark analysieren müssen und die Kontrolle über den Browser haben, können Sie Folgendes tun: SSLKEYLOGFILE Aktivieren Sie diese Option, um clientseitige Schlüssel zu generieren und an Wireshark zu übergeben.
Skripte und Add-ons
mitmproxy lässt sich in Python integrieren und ermöglicht die Entwicklung von Plugins. Das folgende Beispiel zeigt das Protokollieren und Bearbeiten des JSON-Antworttextes.
from mitmproxy import http
import json
def response(flow: http.HTTPFlow):
if "api.example.com" in flow.request.pretty_host():
# log URL
print(flow.request.url)
# modify JSON response
if "application/json" in flow.response.headers.get("content-type", ""):
data = json.loads(flow.response.get_text())
data["injected"] = True
flow.response.set_text(json.dumps(data))Führe das Add-on aus:
mitmdump -s modify_response.py
Filter und Flow-Suche
Nützliche Beispiele für Filter:
Nur Anfragen an eine bestimmte Domain anzeigen:
~d example.comNur Antworten mit 5xx-Fehlern anzeigen:
~s 500-599
Beispiel für die Ausführung von mitmproxy mit folgenden Einstellungen:
mitmproxy --set stream_large_bodies=2m --showhost
TLS-Analyse und technische Details
mitmproxy kann TLS-ClientHalloVerschlüsselungssuiten und SNI und bei der Abnahme der Fingerabdrücke mitwirken.
Für eine vollständige Analyse von TLS in Entwicklungsumgebungen installieren Sie die Zertifizierungsstelle und erfassen Sie die entsprechenden Daten. JA3 Oder UADetector Es funktioniert.
Skalierbarkeit und Leistung
mitmproxy Es basiert auf Python und muss auf geeigneter Hardware oder einem Cluster für hohe Arbeitslasten ausgeführt werden.
Für hohe Skalierbarkeit: Nutzen Sie dedizierte Server oder Cloud-Instanzen mit starker Netzwerkanbindung, z. B. einen Cloud-Server mit 10-Gbit/s-Anschlüssen.
In Produktionsumgebungen, die Angriffsresistenz erfordern, sollten Antivirenserver eingesetzt werden.DDoS und Load Balancer. Unser Unternehmen arbeitet mit Mehr als 85 Standorte weltweit Es bietet die Möglichkeit, an Randpunkten eingesetzt zu werden, was nützlich ist, um die Latenz beim Handel und bei Spielen zu reduzieren.
Betriebssicherheit und Datenschutz
Netzwerkanalysen dürfen nur mit ausdrücklicher Genehmigung durchgeführt werden. Das Aufzeichnen von Datenverkehr ohne rechtliche Einwilligung ist eine Straftat.
Speichern Sie den privaten CA-Schlüssel auf Hardware oder in einem Schlüsselmanager und beschränken Sie den Zugriff.
Protokolldateien können sensible Daten (Tokens, Cookies) enthalten; legen Sie eine Aufbewahrungsrichtlinie fest und verschlüsseln Sie diese.
Für sensible Bereiche (Zahlungen, Karten) gelten folgende Regeln: PCI/DSS und MITM-Tools nur in der Testphase verwenden.
Bei Verwendung für Handels- oder Spieleanalysen sollten Sie einen dedizierten Trading-VPS oder Gaming-VPS mit entsprechender Service-Level-Vereinbarung (SLA) und DDoS-Schutz nutzen.
Praktische Beispiele: Mobilgeräte, API und Wiedergabe
Mobile App-Debugging
Führen Sie mitmproxy auf Ihrem Laptop aus:
mitmweb --listen-host 0.0.0.0 --listen-port 8080Verbinden Sie den Laptop mit demselben WLAN-Netzwerk; IP-Adresse zum Beispiel. 192.168.1.10.
Stellen Sie in den WLAN-Einstellungen Ihres Telefons den Proxy auf „Manuell“ und geben Sie die IP-Adresse ein. 192.168.1.10 und Hafen 8080 Leg es hin.
Installieren Sie das mitmproxy-Zertifikat auf dem Telefon.
Datenverkehr auf mitmweb anzeigen und filtern.
API-Datenverkehr zu Testzwecken aufzeichnen und wiedergeben
Aufnahme:
mitmdump -w api_flows.mitmÜbertragen:
mitmdump --server-replay api_flows.mitm --server-replay-nopop
Integration mit anderen Tools (Wireshark, Burp, CI)
Verwenden Sie tcpdump, um pcap-Dateien aufzuzeichnen und diese in Wireshark zu analysieren.
Mitmproxy kann als Traffic-Vorprozessor für Burp oder jeden anderen Analysator verwendet werden.
Im CI/CD-Prozess ist es hilfreich, Verkehrsbeispiele mit mitmdump zu erfassen und diese während der Integrationsphasen abzuspielen, um reale Bedingungen zu simulieren.
Optimale Konfigurationen je nach Anwendung
Für den Handel: Latenzarmer VPS, Server in Börsennähe, Netzwerk mit BGP und geeignetem CDN. Nutzen Sie einen dedizierten Trading-VPS, um mitmproxy im Testmodus und ein separates Logging-Tool auszuführen, damit die Handelsausführung nicht beeinträchtigt wird.
Für das Spiel: Gaming-VPS mit niedrigem Ping. Hinweis: Nur mitmproxy. TCP/HTTP unterstützt; zur Analyse von UDP benötigen Sie andere Tools wie z. B. tcpreplay/Wireshark Und tun/tap Verwenden.
Für KI/Rendering: mitmproxy eignet sich gut zum Debuggen von Modell-APIs; für rechenintensive Netzwerkprozesse sollte ein Grafikserver (GPU Cloud) verwendet und mitmproxy auf einem separaten Rechenserver platziert werden.
Schlussbemerkungen und rechtliche Hinweise
Vor jeder Analyse muss die schriftliche Genehmigung des Dienstinhabers oder Nutzers eingeholt werden.
Daten wie Karteninformationen, Passwörter und Token sollten sicher aufbewahrt und nach Gebrauch gelöscht werden.
Für den Produktivbetrieb sollten geschützte Server und eine Anti-DDoS-Lösung eingesetzt werden, um Missbrauch zu verhindern.
Schlussfolgerung und praktische Empfehlungen
Mitmproxy bietet eine flexible Lösung zur Verkehrsanalyse für Debugging, Sicherheitstests und die Analyse des Datenverkehrs. Dank einfacher Installation, Python-Skriptfähigkeit und Aufzeichnungs-/Wiedergabefunktionen ist es besonders nützlich in der Entwicklung, Qualitätssicherung und bestimmten Sicherheitsszenarien.
Für die Produktion und Analyse im großen Maßstab sollten Server mit einem starken Netzwerk, DDoS-Schutz und Einsatzorten in der Nähe der Nutzer verwendet werden.









