it-swarm.com.de

Wie kann der Netzwerkverkehr auf dem iPhone überwacht werden?

Wir suchen nach einem Wireshark-ähnlichen Tool, das auf dem iPhone zum Testen einer Drittanbieteranwendung verwendet werden kann, bevor eine Partnerschaft mit dem Drittanbieter geschlossen wird. Irgendwelche Vorschläge?

58
Jason Reynolds

Ein Man-in-the-Middle-Proxy ist, wie in anderen Antworten vorgeschlagen, eine gute Lösung, wenn Sie nur HTTP/HTTPS-Datenverkehr anzeigen möchten.

Die beste Lösung für das Paket-Sniffing (obwohl es nur für aktuelle iOS-Geräte funktioniert, nicht für den Simulator), die ich gefunden habe, ist die Verwendung von rvictl. Dieser Blog-Beitrag hat einen schönen Artikel. Grundsätzlich machen Sie:

rvictl -s <iphone-uid-from-xcode-organizer>

Dann schnüffeln Sie an der Schnittstelle, die mit Wireshark (oder Ihrem Lieblingswerkzeug) erstellt wurde, und wenn Sie fertig sind, schließen Sie die Schnittstelle mit:

rvictl -x <iphone-uid-from-xcode-organizer>

Das ist schön, denn wenn Sie den Simulator paketwirren möchten, müssen Sie auch durch den Datenverkehr zu Ihrem lokalen Mac waten, aber rvictl erstellt eine virtuelle Schnittstelle, die Ihnen nur den Datenverkehr vom iOS-Gerät anzeigt, das Sie verwenden habe in deinen USB-Port eingesteckt.

Hinweis: Dies funktioniert nur auf einem Mac.

44
mpontillo

Du hast nicht die Plattform angegeben, die du benutzt, also gehe ich davon aus, dass es ein Mac ist ;-)

Ich benutze einen Proxy. Ich verwende SquidMan , eine eigenständige Implementierung von Squid

Ich starte SquidMan auf dem Mac und gebe dann auf dem iPhone die Proxy-Parameter in den allgemeinen/WLAN-Einstellungen ein.

Dann kann ich den HTTP-Verkehr in der Konsolen-App beobachten, indem ich die Datei squid-access.log betrachte

Wenn ich mehr Informationen benötige, wechsle ich zu tcpdump, aber ich denke, WireShark sollte auch funktionieren.

36
Stephan Burlot

Ich benutze Charles Web Debugging Proxy es kostet aber sie haben eine Testversion.

Es ist sehr einfach einzurichten, wenn Ihr iPhone/iPad dasselbe Wifi-Netzwerk hat wie Ihr Mac.

  1. Installieren Sie Charles auf Ihrem Mac
  2. Holen Sie sich die IP-Adresse für Ihren Mac - verwenden Sie das Mac "Netzwerk-Dienstprogramm"
  3. Öffnen Sie auf Ihrem iPhone/iPad die WLAN-Einstellungen und wechseln Sie unter "HTTP-Proxy" in "Manuell". Geben Sie die IP von Schritt (2) und dann "Port" auf "8888" (Charles Standard-Port) ein.
  4. Öffnen Sie Charles und vergewissern Sie sich im Dialogfeld "Proxy-Einstellungen", dass die Kontrollkästchen "Mac OS X-Proxy aktivieren" und "HTTP-Proxy verwenden" aktiviert sind
  5. Sie sollten nun den Verkehr in Charles sehen
  6. Wenn Sie sich den HTTPS-Datenverkehr ansehen möchten, müssen Sie die zusätzlichen 2 Schritte ausführen, um das Charles Certificate Bundle herunterzuladen und anschließend die CRT-Datei per E-Mail an Ihr iPhone/iPad zu senden und zu installieren.
  7. Fügen Sie auf der Registerkarte SSL des Dialogfelds Proxyeinstellungen die spezifischen https-Domänen der obersten Ebene hinzu, die Sie mit Port 443 überwachen möchten.

Wenn sich Ihr Mac und Ihr iOS-Gerät nicht im selben WLAN-Netzwerk befinden, können Sie Ihren Mac mit der Option "Internetfreigabe" unter "Freigabe" in den Systemeinstellungen als WLAN-Router einrichten. Anschließend schließen Sie Ihr Gerät an das "Wifi" -Netzwerk an und führen die obigen Schritte aus.

21
joneswah

Führen Sie es über einen Proxy aus und überwachen Sie den Datenverkehr mit Wireshark .

16
Chris Ballance

Für Mac OS X

  1. Installieren Sie Charles Proxy
  2. Gehen Sie in Charles zu Proxy> Proxy-Einstellungen. Es sollte den HTTP-Proxy-Port anzeigen (standardmäßig 8888).

Für Windows

  1. Installieren Sie Fiddler2
  2. Extras -> Fiddler-Optionen -> Verbindungen und aktivieren Sie "Remotecomputern erlauben, eine Verbindung herzustellen".

Allgemeine Einrichtung

  1. Gehen Sie zu Einstellungen> Wifi> Das Symbol i> Am unteren Proxy> Auf manuell einstellen und geben Sie für den Server die IP-Adresse des Computers ein, für den Port 8888 ist dies die Standardeinstellung diese Anwendungen

ARP-Spoofing

Allgemeine Hinweise für den letzten Abschnitt: Wenn Sie den gesamten Netzwerkverkehr abhören möchten, verwenden Sie ARP-Spoofing , um den gesamten Verkehr von Ihrem iOS auf einen Laptop/Desktop weiterzuleiten. ARP-Fälschungen können mit mehreren Tools durchgeführt werden, und es müssten alle Einzelheiten untersucht werden. Auf diese Weise können Sie jede Unze Verkehr sehen, da Ihr Router alle für das iOS-Gerät bestimmten Daten an den Laptop/Desktop weiterleitet und Sie diese Daten dann (automatisch) an das iOS-Gerät weiterleiten.

Bitte beachten Sie, dass ich dies nur als letzten Ausweg empfehle.

13
abc123

Auf einem iPhone/iPod mit Jailbreak wird das Erfassen des Datenverkehrs mit "tcpdump" und "pirni" problemlos durchgeführt - verfügbar im cydia-Repository. Die Analyse dieser Daten erfolgt, indem die Erfassung auf einen anderen Computer übertragen und so etwas wie Wireshark verwendet wird. Angesichts der aktiven Entwicklung dieser Tools ist es jedoch möglich, dass das iPhone in Kürze mit all dem fertig wird.

9
Arty Man

Ohne genau zu wissen, was Ihre Anforderungen sind, habe ich die folgenden Schritte ausgeführt, um zu sehen, wie Pakete vom iPhone gesendet werden: Schließen Sie einen Mac über Ethernet an, geben Sie das Netzwerk über den Flughafen frei und verbinden Sie das iPhone mit diesem drahtlosen Netzwerk. Führen Sie Wireshark oder Packet Peeper auf dem Mac aus.

9
Rog
8
Oleh Kudinov

Hier ist ein anderer Weg http://www.tuaw.com/2011/02/21/how-to-inspect-ioss-http-traffic-without-spending-a-dime/

Ich habe die Antwort von Roger Nolan nicht gesehen. Der obige Link ist derselbe Workflow mit einem anderen Tool.

6
palaniraja

Abhängig davon, was Sie tun möchten, ist es nicht ideal, es über einen Proxy auszuführen. Ein transparenter Proxy funktioniert möglicherweise einwandfrei, solange die Pakete nicht manipuliert werden.

Ich bin dabei, die GPS-Daten, die vom iPhone auf das iPad unter iOS 4.3.x übertragen werden, umzukehren, um die Vanilla-Daten zu erhalten. Der beste Weg, um einen sauberen Netzwerk-Dump zu erhalten, ist die Verwendung von "tcpdump" und/oder "pirni". wie schon vorgeschlagen.

In diesem speziellen Fall müssen die Tethered-Daten so transparent wie möglich sein. Natürlich muss Ihr Telefon JailBroken sein, damit dies funktioniert.

3
Steve Clement

Probieren Sie Debookee unter Mac OS X aus, das dank MITM den Datenverkehr Ihres iPhones transparent abfängt, ohne dass Sie einen Proxy benötigen, wie bereits erwähnt. Sie sehen dann in Echtzeit die verschiedenen von Ihrem Gerät verwendeten Protokolle.

Haftungsausschluss: Ich bin Teil des Entwicklungsteams von Debookee, einer kostenpflichtigen Anwendung. Die Testversion zeigt Ihnen alle Funktionen für eine begrenzte Zeit.

2
Tom

Eine allgemeine Lösung wäre die Verwendung einer Linux-Box (die sich in einer virtuellen Maschine befinden könnte), die als transparenter Proxy konfiguriert ist, um den Datenverkehr abzufangen und ihn dann mit Wireshark, tcpdump oder was auch immer zu analysieren. Vielleicht kann MacOS das auch, ich habe es nicht versucht.

Wenn Sie die App im Simulator ausführen können, können Sie möglicherweise den Datenverkehr auf Ihrem eigenen Computer überwachen.

1
frankodwyer

Com'on, keine Erwähnung von Fiddler ? Wo ist die Liebe :)

Fiddler ist ein sehr beliebter HTTP-Debugger, der sich an Entwickler und nicht an Netzwerkadministratoren (d. H. Wireshark) richtet.

Das Einrichten für iOS ist ziemlich einfach . Es kann auch HTTPS-Verkehr entschlüsseln!

Unser mobiles Team ist endlich erleichtert, nachdem die QA-Abteilung begonnen hat, Fiddler zur Fehlerbehebung einzusetzen. Vor Fiddler haben die Leute herumgespielt, um zu wissen, wer schuld ist, das mobile Team oder das API-Team, aber nicht mehr.

1
Korayem