web-dev-qa-db-fra.com

Comment surveillez-vous le trafic réseau sur l'iPhone?

Nous recherchons un outil de type Wireshark à utiliser sur l'iPhone pour tester une application tierce avant de s'associer avec la tierce partie. Aucune suggestion?

58
Jason Reynolds

Un proxy man-in-the-middle, comme suggéré par d'autres réponses, est une bonne solution si vous ne voulez voir que le trafic HTTP/HTTPS.

La meilleure solution pour renifler des paquets (bien que cela ne fonctionne que pour les appareils iOS réels , pas le simulateur) que j'ai trouvée consiste à utiliser rvictl. Ce billet de blog a une belle rédaction. Fondamentalement, vous faites:

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

Ensuite, vous reniflez l'interface avec laquelle il crée avec Wireshark (ou votre outil préféré), et lorsque vous avez terminé, fermez l'interface avec:

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

C'est bien parce que si vous voulez renifler des paquets le simulateur, vous devez également parcourir le trafic vers votre Mac local, mais rvictl crée une interface virtuelle qui vous montre simplement le trafic de l'appareil iOS que vous 'ai branché sur votre port USB.

Remarque: cela ne fonctionne que sur un Mac.

44
mpontillo

Vous n'avez pas spécifié la plate-forme que vous utilisez, donc je suppose que c'est un Mac ;-)

Ce que je fais, c'est utiliser un proxy. J'utilise SquidMan , une implémentation autonome de Squid

Je lance SquidMan sur le Mac, puis sur l'iPhone j'entre les paramètres du proxy dans les paramètres généraux/Wifi.

Ensuite, je peux regarder le trafic HTTP dans l'application console, en regardant le squid-access.log

Si j'ai besoin de plus d'informations, je passe à tcpdump, mais je suppose que WireShark devrait aussi fonctionner.

36
Stephan Burlot

J'utilise Charles Web Debugging Proxy ça coûte mais ils ont une version d'essai.

Il est très simple à configurer si votre iPhone/iPad partage le même réseau Wifi que votre Mac.

  1. Installez Charles sur votre Mac
  2. Obtenez l'adresse IP de votre Mac - utilisez l'utilitaire réseau de Mac
  3. Sur votre iPhone/iPad, ouvrez les paramètres Wifi et sous le "proxy HTTP", passez au manuel et entrez l'IP de l'étape (2), puis portez sur 8888 (port Charles par défaut)
  4. Ouvrez Charles et sous la boîte de dialogue Paramètres du proxy, assurez-vous que les cases "Activer le proxy Mac OS X" et "Utiliser le proxy HTTP" sont cochées.
  5. Vous devriez maintenant voir le trafic apparaître au sein de Charles
  6. Si vous souhaitez consulter le trafic HTTPS, vous devez effectuer les 2 étapes supplémentaires, téléchargez le Charles Certificate Bundle , puis envoyez le fichier .crt sur votre iPhone/iPad et installez-le.
  7. Dans l'onglet SSL de la boîte de dialogue Paramètres du proxy, ajoutez les domaines de premier niveau https spécifiques que vous souhaitez renifler avec le port 443.

Si votre Mac et votre appareil iOS ne sont pas sur le même réseau Wifi, vous pouvez configurer votre Mac en tant que routeur Wifi en utilisant l'option "Partage Internet" sous Partage dans les Préférences Système. Vous connectez ensuite votre appareil à ce réseau "Wifi" et suivez les étapes ci-dessus.

21
joneswah

Exécutez-le via un proxy et surveillez le trafic à l'aide de Wireshark .

16
Chris Ballance

Pour Mac OS X

  1. Installer Charles Proxy
  2. Dans Charles, accédez à Proxy> Paramètres proxy. Il devrait afficher le port proxy HTTP (c'est 8888 par défaut).

Pour les fenêtres

  1. Installer Fiddler2
  2. Outils -> Options Fiddler -> Connexions et cochez "Autoriser les ordinateurs distants à se connecter"

Configuration générale

  1. Allez dans Paramètres> Wifi> Le symbole i> En bas Proxy> Réglez sur manuel puis pour le serveur, mettez l'ordinateur sur lequel vous travaillez sur l'adresse IP, pour le port mettez 8888 car c'est la valeur par défaut pour chacun des ces applications

ARP Spoofing

Remarques générales pour la dernière section, si vous souhaitez renifler tout le trafic réseau, utilisez surpation ARP pour transférer tout le trafic de votre iOS vers un ordinateur portable/de bureau. Il existe plusieurs outils pour usurper l'ARP et des recherches devraient être effectuées sur toutes les spécificités. Cela vous permet de voir chaque once de trafic, car votre routeur acheminera toutes les données destinées à l'appareil iOS vers l'ordinateur portable/bureau, puis vous transférerez ces données vers l'appareil iOS (automatiquement).

Veuillez noter que je ne recommande cela qu'en dernier recours.

13
abc123

Sur un iPhone/iPod jailbreaké, la capture du trafic se fait bien à la fois par "tcpdump" et "pirni" - disponibles dans le référentiel cydia. L'analyse de ces données se fait en transférant la capture sur une autre machine et en utilisant quelque chose comme wirehark. Cependant, étant donné le développement actif qui semble se produire avec ces outils, il est possible que bientôt l'iPhone gère tout cela.

9
Arty Man

Sans savoir exactement quelles sont vos exigences, voici ce que j'ai fait pour voir les paquets passer de l'iPhone: Connectez un mac sur Ethernet, partagez son réseau sur l'aéroport et connectez l'iPhone à ce réseau sans fil. Exécutez Wireshark ou Packet Peeper sur le mac.

9
Rog
8
Oleh Kudinov

Voici une autre façon http://www.tuaw.com/2011/02/21/how-to-inspect-ioss-http-traffic-without-spending-a-dime/

Je n'ai pas vu la réponse de Roger Nolan, le lien ci-dessus est le même workflow avec un outil différent.

6
palaniraja

Selon ce que vous voulez faire, l'exécuter via un proxy n'est pas idéal. Un proxy transparent peut fonctionner correctement tant que les paquets ne sont pas altérés.

Je suis sur le point d'inverser les données GPS qui sont transférées de l'iPhone à l'iPad sur iOS 4.3.x pour accéder aux données Vanilla, la meilleure façon d'obtenir un vidage réseau propre est d'utiliser "tcpdump" et/ou "pirni" comme déjà suggéré.

Dans ce cas particulier où nous voulons que les données captives, elles doivent être aussi transparentes que possible. De toute évidence, vous avez besoin que votre téléphone soit JailBroken pour que cela fonctionne.

3
Steve Clement

Essayez Debookee sur Mac OS X qui interceptera de manière transparente le trafic de votre iPhone sans avoir besoin d'un proxy, grâce au MITM, comme indiqué précédemment. Vous verrez alors en temps réel les différents protocoles utilisés par votre appareil.

Avertissement: je fais partie de l'équipe de développement de Debookee, qui est une application payante. La version d'essai vous montrera toutes les fonctionnalités pendant un temps limité.

2
Tom

Une solution générale serait d'utiliser une boîte Linux (qui pourrait être dans une machine virtuelle) configurée en tant que proxy transparent pour intercepter le trafic, puis de l'analyser à l'aide de Wireshark ou tcpdump ou tout ce que vous voulez. Peut-être que MacOS peut le faire aussi, je n'ai pas essayé.

Ou si vous pouvez exécuter l'application dans le simulateur, vous pouvez probablement surveiller le trafic sur votre propre machine.

1
frankodwyer

Com'on, aucune mention de Fiddler ? Où est l'amour :)

Fiddler est un débogueur HTTP très populaire destiné aux développeurs et non aux administrateurs réseau (c'est-à-dire Wireshark).

Le configurer pour iOS est un processus assez simple . Il peut également décrypter le trafic HTTPS!

Notre équipe mobile est enfin soulagée après que le service d'assurance qualité a commencé à utiliser Fiddler pour résoudre les problèmes. Avant le violoneux, les gens tripotaient pour savoir qui blâmer, l'équipe mobile ou l'équipe API, mais plus maintenant.

1
Korayem