【问题标题】:Capturing mobile phone traffic on Wireshark在 Wireshark 上捕获手机流量
【发布时间】:2012-03-22 06:16:03
【问题描述】:

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

【问题讨论】:

标签: android iphone ios networking wireshark


【解决方案1】:

以下是一些建议:

  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: 将您的 MacPC 设置为无线接入点,然后在计算机上运行 wireshark。

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

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

【讨论】:

  • 如果您有兴趣在 Windows 7 及更高版本上设置恶意接入点并使用 Wireshark 捕获数据包,请查看我在mohit.io/blog/… 汇总的步骤,这适用于任何设备支持 WiFi(Android、iOS、Wii、XBox 等)
  • 关于选项 2:这实际上是一个不存在的选项。从他们的页面:“您将需要 [...] 和基于 RTL8187 的无线网卡”!!!!
  • 对我来说,选项#3 是最简单的任务,例如检查某个应用程序的调用。
  • 其中大多数不适用于永远不会离开设备的数据包,或者如果您已经使用 VPN。所以这些对于解决 MTU/碎片相关的问题是没有用的。
  • 如果我想做相反的事情怎么办?使用我的 USB 连接的智能手机来捕获我的 PC 的数据包?基本上在我的安卓手机上运行一个类似wireshark的软件
【解决方案2】:

除了 rupello 的出色回答之外,还有一个“肮脏”但非常有效的技巧:

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

使用Ettercap在你的移动设备和你的路由器之间做ARP spoofing,你手机的所有流量都会出现在Wireshark中。设置详情请参阅this tutorial

【讨论】:

  • 您也可以在 Mac OS 上使用Charles proxy 来捕获 HTTP 流量,它具有非常好的界面和功能。您需要设置您的计算机的本地 IP 在您的手机上有一个代理。它也可以嗅探 TLS 流量,如果您在手机上安装 Charles 的证书,它会在不发出警告的情况下执行此操作。
【解决方案3】:

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

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

【讨论】:

  • 这是个有趣的选项。它可以处理 ssl 数据包吗?
  • 最好和最简单的选择就是这个。为什么要玩手机?生根,编译 tcpdump 以与 ARM CPU 兼容,arpspoofing 本地网络以将流量引导至以太网 BLAH BLAH BLAH 并最终运行 Wireshark 并捕获数据包??只需在模拟器中安装应用程序并捕获以太网。简单易懂
  • 因为有一些第三方库无法更改,但检测到它在模拟器上运行并更改其行为。这样你就需要真正的设备了。
【解决方案4】:

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按钮。

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

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

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

【讨论】:

    【解决方案5】:

    对于 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!

    【讨论】:

    • 如果您的问题仅在使用 VPN 时出现(并且永远不会出现在集线器/路由器上),则不会工作。
    【解决方案6】:

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

    【讨论】:

    • 那个 VPN 不工作......没有打开页面或获取数据......拥有那个 VPN 就像没有互联网连接......
    【解决方案7】:

    前提条件:你的电脑上安装了adb和wireshark,并且你有一个root的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. CTRL+C 捕获足够的数据包后。
    10. exit
    11. exit
    12. adb pull /sdcard/dump.pcap ~/Downloads/

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

    【讨论】:

      【解决方案8】:

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

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

      【讨论】:

      • 这仅对 HTTP/HTTPS 流量有用。
      【解决方案9】:

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

      【讨论】:

        【解决方案10】:

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

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

        【讨论】:

        • 您能否更具体地说明如何在至少一个平台(Windows、Linux 或 Mac OS X)上执行此操作?
        【解决方案11】:

        对于 Android,我之前使用过 tPacketCapture,但它不适用于流式传输视频的应用。我现在使用Shark。你需要root用户才能使用它。

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

        【讨论】:

        • Shark 在 Google Play 上不再可用。
        • 确实,它似乎已被删除。网站swapper.n3o.lv 似乎也不再保存apk。
        【解决方案12】:

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

        该应用处于早期测试阶段。如果您有任何问题/建议,请随时告诉我。

        Download From Play

        Tutorial in which you could read additional details

        【讨论】:

          【解决方案13】:

          对于 iOS 设备:

          ⦿ 打开 Terminal 并简单地写:

          rvictl -s udid
          

          它将在 Wireshark 上打开一个带有名称的界面,在我的例子中是 rvi0。

          udid 是 iPhone 的唯一设备 ID。

          (How to find my iOS Device UDID)

          【讨论】:

            猜你喜欢
            • 2014-04-12
            • 2011-08-16
            • 1970-01-01
            • 2018-07-06
            • 1970-01-01
            • 2016-03-23
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多