在Wireshark上捕获手机流量

时间:2012-03-04 13:48:29

标签: android iphone ios networking wireshark

如何在Wireshark上捕获手机流量?

13 个答案:

答案 0 :(得分:323)

以下是一些建议:

  1. 对于Android手机,任何网络:将您的手机设为root,然后在其上安装tcpdump。 This app是一个tcpdump包装器,它将安装tcpdump并使您能够使用GUI启动捕获。 提示:您需要确保为捕获提供正确的接口名称,这在不同设备之间有所不同,例如 -i eth0 -i tiwlan0 - 或使用 -i any 记录所有接口

  2. 适用于Android 4.0及以上的手机Android PCAP from Kismet使用USB OTG接口支持数据包捕获,无需root权限。我没有尝试过这个应用程序,并且支持的设备类型有一些限制(参见他们的页面)

  3. 对于Android手机tPacketCapture使用Android VPN服务截取数据包并捕获它们。我已成功使用此应用程序,但它似乎也会影响大流量的性能(例如视频流)

  4. 对于IOS 5+设备,任何网络:iOS 5添加了远程虚拟接口(RVI)工具,可让您使用Mac OS X数据包跟踪程序从iOS设备捕获跟踪。有关详细信息,请参阅here

  5. 对于所有手机,仅限wi-fi: Set up your PC as a wireless access point,然后在PC上运行wireshark

  6. 对于所有手机,仅限wi-fi:获取可以嗅探Wi-Fi的a capture device。这样做的好处是可以为您提供802.11x标头,但您可能会错过一些数据包

  7. 使用VPN服务器捕获set-up your own VPN server使用OpenVPN非常容易。然后,您可以通过将移动设备设置为a VPN client来路由您的服务器,并捕获服务器端的流量。

答案 1 :(得分:34)

除了rupello的优秀答案外,还有一个“肮脏”但非常有效的伎俩:

适用于所有手机,任何(本地)网络:将您的PC设置为Man-In-The-Middle您的移动设备。

使用Ettercap在您的移动设备和路由器之间执行ARP spoofing,所有移动设备的流量都会显示在Wireshark中。有关设置详细信息,请参阅this tutorial

答案 2 :(得分:23)

此处未建议的另一个选项是从Android SDK运行您要在Android模拟器中监控的应用。然后,您可以使用wireshark在同一台计算机上轻松捕获流量。

这对我来说是最简单的选择。

答案 3 :(得分:16)

Wireshark + OSX + iOS:

到目前为止的精彩概述,但如果您需要Wireshark + OSX + iOS的详细信息:

  • 在您的计算机上安装Wireshark
  • 通过USB线将iOS设备连接到计算机
  • 将iOS设备和计算机连接到同一个WiFi网络
  • 在OSX终端窗口中运行此命令:rvictl -s x其中x是iOS设备的UDID。您可以通过iTunes找到iOS设备的UDID(确保使用的是UDID而不是序列号)。
  • 转到Wireshark Capture->Options,会出现一个对话框,点击rvi0行,然后按Start按钮。

Wireshark Capture Options Dialog Box

现在,您将看到iOS设备上的所有网络流量。它可能非常压倒性。几点:

  • 不要将iOS与VPN结合使用,您无法理解加密流量
  • 使用简单过滤器专注于有趣的流量
  • ip.addr==204.144.14.134查看源或目标地址为204.144.14.134
  • 的流量
  • http仅查看http流量

这是一个示例窗口,描述了从204.144.14.134下载pdf的TCP流量:

Wireshark TCP traffic for pdf download from 204.144.14.134

答案 4 :(得分:8)

对于Android手机,我使用了tPacketCapture: https://play.google.com/store/apps/details?id=jp.co.taosoftware.android.packetcapture&hl=en

这个应用程序是一个救生员我正在调试我的Android应用程序上的SSL / TLS握手失败的问题。试图设置ad hoc网络,所以我可以在笔记本电脑上使用wireshark。它对我不起作用。这个应用程序很快让我捕获网络流量,在我的Google云端硬盘上分享它,这样我就可以在笔记本电脑上下载,我可以用Wireshark查看它!太棒了,不需要root!

答案 5 :(得分:7)

Packet Capture Android app实现了一个记录Android设备上所有网络流量的VPN。您不需要在PC上设置任何VPN /代理服务器。不需要root。支持tPacketCapture不支持的SSL解密。它还包括一个很好的日志查看器。

答案 6 :(得分:3)

在您的PC上安装Fiddler并将其用作Android设备上的代理。

来源:http://www.cantoni.org/2013/11/06/capture-android-web-traffic-fiddler

答案 7 :(得分:3)

与使您的PC成为无线接入点类似,但可以更容易,使用反向网络共享。如果你碰巧有一部HTC手机,他们会在网络/移动网络共享设置下有一个很好的反向网络选项,称为“互联网直通”。它通过您的PC路由您的所有流量,您可以在那里运行Wireshark。

答案 8 :(得分:2)

让您的笔记本电脑成为手机(任何)的wifi热点,并将其连接到互联网。使用wireshark在wifi接口上嗅探流量。

你会了解很多反隐私的东西!

答案 9 :(得分:1)

对于Android ,我之前使用的是tPacketCapture,但它对于播放某些视频的应用效果不佳。我现在正在使用Shark。您需要root 才能使用它。

它使用 TCPDump (检查arguments you can pass)并创建一个可由Wireshark读取的 pcap文件。默认参数通常对我来说足够好。

答案 10 :(得分:1)

前提条件:您的计算机上已经安装了adb和wirehark,并且您已经拥有一个扎根的android设备。

  1. tcpdump下载到〜/ Downloads
  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. exit
  10. exit
  11. adb pull /sdcard/dump.pcap ~/Downloads/

现在您可以使用Wireshark打开pcap文件。

答案 11 :(得分:0)

我遇到了类似的问题,这激发了我开发一款可以帮助捕获Android设备流量的应用程序。该应用程序具有SSH服务器,可让您即时(@ sshdump wireshark component)中访问Wireshark。由于该应用使用名为VPNService的操作系统功能来捕获流量,因此不需要root访问权限。

该应用处于早期Beta版。如果您有任何问题/建议,请随时让我知道。

Download From Play

Tutorial in which you could read additional details

答案 12 :(得分:0)

对于iOS设备:

⦿打开终端,只需输入:

rvictl -s udid

它将在Wireshark上打开一个名称为rvi0的接口。

enter image description here

udid是iPhone的唯一设备ID。

(How to find my iOS Device UDID)