【发布时间】:2012-03-22 06:16:03
【问题描述】:
如何在 Wireshark 上捕获手机流量?
【问题讨论】:
-
Windows 用户可以试试这个stackoverflow.com/a/65774666/10532966
标签: android iphone ios networking wireshark
如何在 Wireshark 上捕获手机流量?
【问题讨论】:
标签: android iphone ios networking wireshark
以下是一些建议:
对于 Android 手机,任何网络:将您的手机 Root,然后在其上安装 tcpdump。 This app 是一个 tcpdump 包装器,它将安装 tcpdump 并使您能够使用 GUI 开始捕获。 提示:您需要确保为捕获提供正确的接口名称,这因设备而异,例如 -i eth0 或 -i tiwlan0 - 或使用 -i any 记录所有接口
适用于 Android 4.0+ 手机:Android PCAP from Kismet 使用 USB OTG 接口支持数据包捕获,无需 root。我还没有尝试过这个应用程序,并且对支持的设备类型有一些限制(参见他们的页面)
适用于 Android 手机:tPacketCapture 使用 Android VPN 服务拦截数据包并捕获它们。我已经成功使用了这个应用程序,但它似乎也影响了大流量(例如视频流)的性能
对于 IOS 5+ 设备,任何网络:iOS 5 添加了一个远程虚拟接口 (RVI) 工具,可让您使用 Mac OS X 数据包跟踪程序来捕获跟踪从 iOS 设备。详情请见here
对于所有手机,仅限 Wi-Fi: 获取可以嗅探 Wi-Fi 的 a capture device。这也有为您提供 802.11x 标头的优势,但您可能会错过一些数据包
使用 VPN 服务器捕获:使用 OpenVPN 很容易set-up your own VPN server。然后,您可以通过将移动设备设置为 a VPN client 并在服务器端捕获流量来路由您的流量。
【讨论】:
除了 rupello 的出色回答之外,还有一个“肮脏”但非常有效的技巧:
对于所有手机,任何(本地)网络:将您的 PC 设置为 Man-In-The-Middle 您的移动设备。
使用Ettercap在你的移动设备和你的路由器之间做ARP spoofing,你手机的所有流量都会出现在Wireshark中。设置详情请参阅this tutorial
【讨论】:
此处未建议的另一个选项是从 Android SDK 在 Android 模拟器中运行您要监控的应用程序。然后,您可以在同一台机器上使用 wireshark 轻松捕获流量。
这对我来说是最简单的选择。
【讨论】:
Wireshark + OSX + iOS:
到目前为止的概述很好,但如果您想了解 Wireshark + OSX + iOS 的详细信息:
rvictl -s x 其中x 是您的 iOS 设备的 UDID。您可以通过 iTunes 找到您 iOS 设备的 UDID(请确保您使用的是 UDID 而不是序列号)。Capture->Options,出现一个对话框,点击rvi0这一行,然后按Start按钮。现在您将看到 iOS 设备上的所有网络流量。它可能非常压倒性。几点建议:
ip.addr==204.144.14.134 查看源或目标地址为 204.144.14.134 的流量http 仅查看 http 流量这是一个示例窗口,描述了从 204.144.14.134 下载 pdf 的 TCP 流量:
【讨论】:
对于 Android 手机,我使用了 tPacketCapture: https://play.google.com/store/apps/details?id=jp.co.taosoftware.android.packetcapture&hl=en
这个应用程序是救命稻草我正在调试我的 Android 应用程序上 SSL/TLS 握手失败的问题。尝试设置临时网络,以便我可以在笔记本电脑上使用wireshark。它对我不起作用。这个应用程序很快让我能够捕获网络流量,将其分享到我的 Google Drive 上,这样我就可以下载到我的笔记本电脑上,在那里我可以使用 Wireshark 检查它!太棒了,无需root!
【讨论】:
Packet Capture Android app 实现了一个记录 Android 设备上所有网络流量的 VPN。您无需在 PC 上设置任何 VPN/代理服务器。不需要root。支持 tPacketCapture 不支持的 SSL 解密。它还包括一个很好的日志查看器。
【讨论】:
前提条件:你的电脑上安装了adb和wireshark,并且你有一个root的android设备。
adb push ~/Downloads/tcpdump /sdcard/adb shellsu rootmv /sdcard/tcpdump /data/local/cd /data/local/chmod +x tcpdump./tcpdump -vv -i any -s 0 -w /sdcard/dump.pcapCTRL+C 捕获足够的数据包后。exitexitadb pull /sdcard/dump.pcap ~/Downloads/现在您可以使用 Wireshark 打开 pcap 文件了。
【讨论】:
在您的 PC 上安装 Fiddler 并将其用作 Android 设备上的代理。
来源:http://www.cantoni.org/2013/11/06/capture-android-web-traffic-fiddler
【讨论】:
与使您的 PC 成为无线接入点类似,但更容易的是使用反向网络共享。如果你碰巧有一部 HTC 手机,他们在网络/移动网络共享设置下有一个很好的反向网络共享选项,称为“Internet pass-through”。它通过您的 PC 路由您的所有流量,您可以在那里运行 Wireshark。
【讨论】:
让您的笔记本电脑成为您手机(任何)的 wifi 热点,并将其连接到互联网。使用wireshark在你的wifi接口上嗅探流量。
你会了解很多反隐私的东西!
【讨论】:
对于 Android,我之前使用过 tPacketCapture,但它不适用于流式传输视频的应用。我现在使用Shark。你需要root用户才能使用它。
它使用TCPDump(检查arguments you can pass)并创建一个可以被Wireshark读取的pcap文件。默认参数通常对我来说已经足够了。
【讨论】:
我遇到了一个类似的问题,这激发了我开发一个可以帮助从 Android 设备捕获流量的应用程序。该应用程序具有 SSH 服务器,可让您在 Wireshark 中即时获取流量 (sshdump wireshark component)。由于该应用使用称为 VPNService 的操作系统功能来捕获流量,因此不需要 root 访问权限。
该应用处于早期测试阶段。如果您有任何问题/建议,请随时告诉我。
【讨论】:
对于 iOS 设备:
⦿ 打开 Terminal 并简单地写:
rvictl -s udid
它将在 Wireshark 上打开一个带有名称的界面,在我的例子中是 rvi0。
udid 是 iPhone 的唯一设备 ID。
【讨论】: