Capturer le trafic des téléphones mobiles sur Wireshark

Réponses:

350

Voici quelques suggestions:

  1. Pour les téléphones Android, n'importe quel réseau : rootez votre téléphone, puis installez tcpdump dessus. Cette application est un wrapper tcpdump qui installera tcpdump et vous permettra de démarrer des captures à l'aide d'une interface graphique. Astuce: vous devrez vous assurer de fournir le bon nom d'interface pour la capture et cela varie d'un appareil à l'autre, par exemple -i eth0 ou -i tiwlan0 - ou utilisez -i any pour enregistrer toutes les interfaces

  2. Pour les téléphones Android 4.0+ : Android PCAP de Kismet utilise l'interface USB OTG pour prendre en charge la capture de paquets sans avoir besoin de root. Je n'ai pas essayé cette application et il existe certaines restrictions sur le type d'appareils pris en charge (voir leur page)

  3. Pour les téléphones Android : tPacketCapture utilise le service VPN Android pour intercepter les paquets et les capturer. J'ai utilisé cette application avec succès, mais elle semble également affecter les performances avec de gros volumes de trafic (par exemple, le streaming vidéo)

  4. Pour les appareils IOS 5+, tout réseau : iOS 5 a ajouté une fonction d'interface virtuelle à distance (RVI) qui vous permet d'utiliser des programmes de trace de paquets Mac OS X pour capturer des traces à partir d'un appareil iOS. Voir ici pour plus de détails

  5. Pour tous les téléphones, Wi-Fi uniquement: configurez votre PC comme point d'accès sans fil , puis exécutez Wireshark sur le PC

  6. Pour tous les téléphones, Wi-Fi uniquement: obtenez un appareil de capture capable de flairer le Wi-Fi. Cela a l'avantage de vous donner également des en-têtes 802.11x, mais vous risquez de manquer certains des paquets

  7. Capture à l'aide d'un serveur VPN : il est assez facile de configurer votre propre serveur VPN à l' aide d'OpenVPN. Vous pouvez ensuite acheminer votre trafic via votre serveur en configurant l'appareil mobile en tant que client VPN et capturer le trafic côté serveur.

rupello
la source
1
Si vous souhaitez configurer un point d'accès non autorisé sur Windows 7 et supérieur et capturer des paquets à l'aide de Wireshark, jetez un œil aux étapes que j'ai rassemblées sur mohit.io/blog/… Cela fonctionnera pour tout appareil prenant en charge le WiFi (Android , iOS, Wii, XBox, etc.)
mohit
2
Concernant l'option 2: c'est pratiquement une option inexistante. De leur page: "Vous aurez besoin [...] et d'une carte réseau sans fil basée sur RTL8187" !!!!
matteo
1
Pour moi, l'option # 3 est la plus simple pour effectuer des tâches simples telles que vérifier ce que fait une certaine application.
Nighto
1
La plupart d'entre eux ne fonctionnent pas pour les paquets qui ne quittent jamais l'appareil ou si vous utilisez déjà un VPN. Ils sont donc inutiles pour résoudre les problèmes liés à MTU / fragmentation.
Evi1M4chine
1
Et si je veux faire le contraire? Utiliser mon smartphone connecté USB pour capturer les paquets de mon PC? Fondamentalement, exécutez un logiciel de type wireShark sur mon téléphone Android
dominicbri7
40

En plus de l'excellente réponse de rupello, une astuce "sale" mais très efficace:

Pour tous les téléphones, tout réseau (local) : configurez votre PC pour Man-In-The-Middle votre appareil mobile.

Utilisez Ettercap pour effectuer une usurpation ARP entre votre appareil mobile et votre routeur, et tout le trafic de votre mobile apparaîtra dans Wireshark. Voir ce tutoriel pour les détails de configuration

minipif
la source
3
Vous pouvez également utiliser le proxy Charles sur Mac OS, pour capturer le trafic HTTP, il a une interface et des fonctionnalités très agréables. Vous devrez configurer l'adresse IP locale de votre ordinateur avec un proxy sur votre téléphone. Il peut également renifler le trafic TLS et le faire sans avertissement si vous installez le certificat de Charles sur le téléphone.
minipif
28

Une autre option qui n'a pas été suggérée ici est d'exécuter l'application que vous souhaitez surveiller dans l'émulateur Android à partir du SDK Android. Vous pouvez ensuite facilement capturer le trafic avec Wireshark sur la même machine.

C'était l'option la plus simple pour moi.

MazeChaZer
la source
1
C'est une option intéressante. Peut-il gérer les paquets SSL?
ransh
22

Wireshark + OSX + iOS:

Grande vue d'ensemble jusqu'à présent, mais si vous souhaitez des détails sur Wireshark + OSX + iOS:

  • installez Wireshark sur votre ordinateur
  • connecter un appareil iOS à un ordinateur via un câble USB
  • connecter un appareil iOS et un ordinateur au même réseau WiFi
  • exécutez cette commande dans une fenêtre de terminal OSX: rvictl -s xx est l'UDID de votre appareil iOS. Vous pouvez trouver l'UDID de votre appareil iOS via iTunes (assurez-vous que vous utilisez l'UDID et non le numéro de série).
  • goto Wireshark Capture->Options, une boîte de dialogue apparaît, cliquez sur la ligne rvi0puis appuyez sur le Startbouton.

Boîte de dialogue Options de capture de Wireshark

Vous verrez maintenant tout le trafic réseau sur l'appareil iOS. Cela peut être assez écrasant. Quelques conseils:

  • n'utilisez pas iOS avec un VPN, vous ne pouvez pas comprendre le trafic crypté
  • utilisez des filtres simples pour vous concentrer sur le trafic intéressant
  • ip.addr==204.144.14.134 affiche le trafic avec une adresse source ou de destination 204.144.14.134
  • http affiche uniquement le trafic http

Voici un exemple de fenêtre décrivant le trafic TCP pour le téléchargement de pdf à partir de 204.144.14.134:

Trafic TCP Wireshark pour téléchargement pdf à partir du 204.144.14.134

drbobdugan
la source
9

Pour le téléphone Android, j'ai utilisé tPacketCapture: https://play.google.com/store/apps/details?id=jp.co.taosoftware.android.packetcapture&hl=en

Cette application m'a sauvé la vie. Je déboguais un problème avec l'échec de la prise de contact SSL / TLS sur mon application Android. J'ai essayé de configurer un réseau ad hoc afin que je puisse utiliser Wireshark sur mon ordinateur portable. Ça n'a pas marché pour moi. Cette application m'a rapidement permis de capturer le trafic réseau, de le partager sur mon Google Drive pour pouvoir le télécharger sur mon ordinateur portable où je pourrais l'examiner avec Wireshark! Génial et aucune racine requise!

Farrukh Najmi
la source
Ne fonctionnera pas si vos problèmes se produisent uniquement lors de l'utilisation d'un VPN (et ne se retrouvent jamais sur le concentrateur / routeur non plus).
Evi1M4chine
8

L'application Packet Capture Android implémente un VPN qui enregistre tout le trafic réseau sur l'appareil Android. Vous n'avez pas besoin de configurer de serveur VPN / proxy sur votre PC. N'a pas besoin de root. Prend en charge le déchiffrement SSL, contrairement à tPacketCapture. Il comprend également une bonne visionneuse de journaux.

Akira Yamamoto
la source
Ce VPN ne fonctionne pas ... aucune page ne s'ouvre ni aucune donnée n'est récupérée ... avoir ce VPN, c'est comme ne pas avoir de connexion Internet ...
Himanshu Bansal
4

De manière similaire à faire de votre PC un point d'accès sans fil, mais cela peut être beaucoup plus facile, utilisez le partage de connexion inversé. Si vous possédez un téléphone HTC, ils ont une belle option de partage de connexion inversée appelée "Pass-through Internet", sous les paramètres de partage réseau / réseau mobile. Il achemine tout votre trafic via votre PC et vous pouvez simplement y exécuter Wireshark.

Peter Jeffe
la source
2

Faites de votre ordinateur portable un point d'accès wifi pour votre téléphone (n'importe lequel) et connectez-le à Internet. Reniflez le trafic sur votre interface wifi à l'aide de Wireshark.

vous apprendrez beaucoup de choses anti-vie privée!

FireCruZ
la source
6
Pouvez-vous être plus précis sur la façon de le faire sur au moins une plate-forme (Windows, Linux ou Mac OS X)?
Alexandre Marcondes
2

Conditions préalables: adb et wirehark est installé sur votre ordinateur et vous avez un appareil Android rooté.

  1. Téléchargez tcpdump sur ~ / Téléchargements
  2. adb push ~/Downloads/tcpdump /sdcard/
  3. adb shell
  4. su root
  5. mv /sdcard/tcpdump /data/local/
  6. cd /data/local/
  7. chmod +x tcpdump
  8. ./tcpdump -vv -i any -s 0 -w /sdcard/dump.pcap
  9. CTRL+C après avoir capturé suffisamment de paquets.
  10. exit
  11. exit
  12. adb pull /sdcard/dump.pcap ~/Downloads/

Vous pouvez maintenant ouvrir le fichier pcap à l'aide de Wireshark.

AtomicBoolean
la source
1

Pour Android , j'avais précédemment utilisé tPacketCapture mais cela ne fonctionnait pas bien pour une application diffusant des vidéos. J'utilise maintenant Shark . Vous devez être root pour l'utiliser.

Il utilise TCPDump (vérifiez les arguments que vous pouvez transmettre ) et crée un fichier pcap qui peut être lu par Wireshark. Les arguments par défaut sont généralement assez bons pour moi.

user276648
la source
1
Shark n'est plus disponible sur Google Play.
not2qubit
En effet, il semble avoir été supprimé. Le site swapper.n3o.lv ne semble plus tenir les apks.
user276648
0

J'ai eu un problème similaire qui m'a inspiré à développer une application qui pourrait aider à capturer le trafic à partir d'un appareil Android. L'application dispose d'un serveur SSH qui vous permet d'avoir du trafic dans Wireshark à la volée ( composant sshdump Wireshark ). Comme l'application utilise une fonctionnalité de système d'exploitation appelée VPNService pour capturer le trafic, elle ne nécessite pas l'accès root.

L'application est en début de version bêta. Si vous avez des problèmes / suggestions, n'hésitez pas à me le faire savoir.

Télécharger depuis Play

Tutoriel dans lequel vous pouvez lire des détails supplémentaires

Andrey Egorov
la source