HTTPS-Verkehr eines iPhones vom Mac aus untersuchen
Diese Anleitung führt von einem Telefon mit installiertem Chute zu einem Mac-Fenster, das die entschlüsselten Anfragen dieses Telefons zeigt, mit Anfrage- und Antwort-Bodies, bereit zum Filtern und Exportieren. Sie reiht Dinge, die eigene Referenzseiten haben — die CA, die Hostliste, die Aufzeichnung, den Steuerkanal, Dashboard — in der Reihenfolge aneinander, in der man sie tatsächlich tut, und sagt bei jedem Schritt, was Sie sehen sollten, bevor Sie weitergehen.
Sie brauchen:
- Chute iOS auf dem Telefon, mit Lizenz. HTTPS-Entschlüsselung und Body-Aufzeichnung sind auf dem iPhone lizenzpflichtig; ohne Lizenz verbindet sich alles Folgende trotzdem, aber HTTPS-Zeilen bleiben undurchsichtig und die Daten-Reiter leer. Siehe Lizenz und Aktivierung.
- Chute Dashboard auf dem Mac — kostenlos, keine Lizenz.
- Ein USB-Kabel (empfohlen: nichts muss im Netzwerk geöffnet werden, und es funktioniert auch über Mobilfunk), oder Telefon und Mac im selben WLAN.
Wenn Sie lieber nichts auf dem Mac installieren möchten: Die Web-Konsole zeigt dieselben Verbindungen, Bodies und Umschreibungen im Browser und braucht auf dem Telefon nur
external-http-controller. Die Schritte 1–3 unten gelten unverändert; ab Schritt 4 folgen Sie stattdessen Die Web-Konsole öffnen.
1. CA installieren und als vertrauenswürdig einstufen
Auf dem Telefon, im Konfigurationseditor: MITM → CA konfigurieren → Neues CA-Zertifikat generieren, dann CA-Zertifikat im System installieren, dann unter Einstellungen → Allgemein → Info → Zertifikatsvertrauenseinstellungen vertrauen. Die vollständige Anleitung, einschließlich des Schritts, den alle übersehen, steht auf der Seite HTTPS-Entschlüsselung.
Sie sollten sehen: Die Zertifikatsseite zeigt Vertrauenswürdiges CA-Zertifikat. Zeigt sie Nicht vertrauenswürdig, ist der Vertrauensschalter in den Zertifikatsvertrauenseinstellungen noch aus — nichts Weiteres funktioniert, bis er an ist.
2. Festlegen, welche Hosts entschlüsselt werden
Chute entschlüsselt nur die Hosts, die Sie auflisten. Fügen Sie im MitM-Abschnitt des Editors (dem mit CA konfigurieren) die Hosts hinzu, die Sie sehen wollen. Beginnen Sie eng — mit dem API-Host der App, die Sie untersuchen — statt mit *: Jeder entschlüsselte Host kostet CPU auf dem Telefon, und manche Apps pinnen ihre Zertifikate und brechen, wenn sie entschlüsselt werden. *.apple.com schließen Sie am besten von Anfang an aus.
[MITM]
enable = true
hostname = api.example.com, *.example.net, -*.apple.com
Die Grammatik — Ports, --Ausschlüsse, /path-Eingrenzung — steht auf der Seite HTTPS-Entschlüsselung. Sie können Hosts später auch im Feld MitM-Regeln von Dashboard hinzufügen und entfernen, während Sie die Wirkung beobachten, und die passenden in die Konfiguration übernehmen.
3. Entschlüsselung und Aufzeichnung einschalten
Im Kontrollzentrum des Telefons zwei Schalter:
- MitM — Entschlüsselung ein, für die Hosts aus Schritt 2.
- Daten ausgeben — Anfrage- und Antwort-Bodies aufzeichnen (die Einstellung
replica). Ohne sie zeigt Dashboard jede Verbindung mit Regel und Richtlinie, aber keine Daten.
Beide lassen sich später auch von der Symbolleiste von Dashboard aus umschalten, es ist also kein Problem, sie jetzt zu vergessen. Keiner überlebt einen Neustart, sofern er nicht in der Konfiguration steht (replica = true in [General], enable = true in [MITM]).
4. Dashboard die Verbindung erlauben
Im Konfigurationseditor: Externer Controller → Externer Controller-Zugriff.
- Schalten Sie Chute Dashboard/Chute CLI-Verbindung erlauben ein.
- Geben Sie einen Port ein (irgendein freier Port;
6170, wenn Sie keine Präferenz haben) und ein eigenes Passwort. - Zugriff über WLAN erlauben: für USB aus lassen. Nur einschalten, wenn Sie über WLAN verbinden werden — es öffnet den Listener für jeden in diesem Netzwerk, der das Passwort hat.
- Sichern und den Tunnel starten (oder neu starten).
Sie sollten sehen: Das Kontrollzentrum zeigt Externer Zugriffsport: 6170 (Ihren Port). Fehlt die Zeile, läuft der Tunnel nicht mit der gesicherten Konfiguration — starten Sie ihn neu.
5. Dashboard verbinden
Schließen Sie das Telefon an den Mac an und tippen Sie auf dem Telefon, falls gefragt, auf Vertrauen. Öffnen Sie Chute Dashboard; verwenden Sie im Fenster Chute – Neues Dashboard den Abschnitt USB: den Port aus Schritt 4 und das Passwort, dann verbinden.
Stattdessen über WLAN: der Abschnitt Entfernt, mit Host = Adresse des Telefons (Einstellungen → WLAN → ⓘ, IP-Adresse), und denselben Port und Passwort.
Sie sollten sehen: ein Dashboard-Fenster mit dem Namen der Verbindung im Titel, dessen Liste Aktiv sich füllt, während das Telefon Verbindungen aufbaut. Benutzen Sie das Telefon ein paar Sekunden, wenn sie leer ist. Zwei Dinge können hier schiefgehen, und beide haben klare Meldungen: Passwort stimmt nicht überein, und das Fenster öffnet sich gar nicht — das Telefon ist nicht erreichbar (falsche Adresse, WLAN-Zugriff aus, Tunnel läuft nicht). Die Seite Dashboard hat die Details.
6. Die Schalter in der Symbolleiste prüfen
Oben in der Liste „Aktiv“ die beiden Schalter aus Schritt 3, wie Dashboard sie sieht:
- Datenverkehr aufzeichnen sollte Aufzeichnung deaktivieren anzeigen — die Aufzeichnung läuft. Steht dort noch Datenverkehr aufzeichnen, klicken Sie darauf.
- MitM aktivieren (N Regeln) sollte MitM deaktivieren (N Regeln) anzeigen — die Entschlüsselung läuft, und
Nist die Zahl der Hosts aus Schritt 2. IstNgleich0, hat die Hostliste das Telefon nicht erreicht: Prüfen Sie Schritt 2 und starten Sie den Tunnel neu.
7. Reproduzieren und die Anfrage finden
Tun Sie in der App das, dessen Verkehr Sie sehen wollen. Dann engen Sie die Liste ein: Filtern in der Symbolleiste öffnet die Filterleiste; tippen Sie den Host in Host/URL filtern …, oder aktivieren Sie Nur MitM, um nur die entschlüsselten Zeilen zu behalten.
Sie sollten sehen: Zeilen für Ihren Host mit einem M in der Spalte Flags, einer echten Methode (GET, POST) und einem Status statt CONNECT. Öffnen Sie eine: Der Reiter Anfrage-Header hat die Header, Query-Parameter und Cookies; Antwort-Daten zeigt den Body — als JSON-Baum, wenn es JSON ist, als Bild, wenn es ein Bild ist.
Zeigen die Zeilen Ihres Hosts CONNECT und kein M, wurde die Verbindung nicht entschlüsselt. Nach Wahrscheinlichkeit geordnet: Der Host steht nicht in der Liste (oder das Muster passt nicht — api.example.com deckt www.example.com nicht ab); MitM ist aus; die CA ist installiert, aber nicht vertrauenswürdig (die App selbst zeigt dann Zertifikatsfehler); die App pinnt ihr Zertifikat (schließen Sie den Host aus und akzeptieren Sie, dass Sie nicht hineinsehen können); die App spricht HTTP/3 über QUIC, das sich nicht entschlüsseln lässt — setzen Sie block-quic, um sie zurück auf TCP zu lenken.
Hat die Zeile ein M, aber die Daten-Reiter sagen Keine Daten: Die Aufzeichnung war aus, als diese Verbindung lief (einschalten, erneut reproduzieren); der Host wird von [Replica] auf dem Telefon ausgefiltert; oder der Body ist größer als 2 MiB, was das Telefon nicht herausgibt.
8. Das Gefundene aufbewahren
Rechtsklick auf die Zeilen: Auswahl als HAR exportieren … für eine Datei, die sich in den Entwicklerwerkzeugen eines Browsers, in Charles oder Proxyman öffnen lässt; curl-Befehl kopieren, um eine Anfrage vom Terminal des Mac aus zu wiederholen; Auswahl als CSV exportieren … für eine Tabellenkalkulation. Als bin exportieren in einem Daten-Reiter sichert einen Body, wie er aufgezeichnet wurde.
9. Etwas verändern (optional)
Die Felder der Ansicht MitM bearbeiten den laufenden Kernel. Zwei schnelle Experimente:
- Header-Umschreibung → eine Regel für Ihren Host hinzufügen: Anfrage, Hinzufügen,
X-Debug=1. Reproduzieren; die neuen Zeilen tragenHundR, und Ausgelöste Regeln im Detailfenster zitiert Ihre Regel. - Map Local → einen Endpunkt aus einer Datei beantworten. Für ein Telefon muss der Dateipfad einer sein, den das Telefon lesen kann, das Feld Dateipfad dieses Bereichs (ein Pfad auf Ihrem Mac) gilt also nicht; verwenden Sie stattdessen die Form
base64=der Regel über den Editor des Telefons oder die Web-Konsole — siehe den Hinweis unter MitM-Werkzeuge. Gemockte Zeilen tragenK.
Hier hinzugefügte Regeln verschwinden, wenn der Tunnel neu startet. Sobald eine funktioniert, schreiben Sie sie in die Konfiguration — die Referenzseiten: URL-Umschreibung, Header-Umschreibung, Body-Umschreibung, Mock-Antwort.
Wenn Sie fertig sind
- Schalten Sie Daten ausgeben aus oder setzen Sie
replica = false: Bodies sammeln sich auf dem Telefon, solange die Aufzeichnung läuft. - Schalten Sie Zugriff über WLAN erlauben wieder aus, falls Sie es eingeschaltet haben.
- Lassen Sie die CA installiert, wenn Sie das wieder tun werden; andernfalls entfernen Sie sie unter Einstellungen → Allgemein → VPN & Geräteverwaltung.
Diese Seite ist eine Übersetzung der englischen Version. Bei Abweichungen ist die englische Version maßgeblich.