在Wireshark上捕获手机流量


Answers:


350

这里有一些建议:

  1. 对于Android手机,可以使用任何网络:扎根手机,然后在其上安装tcpdump。这个应用程序是一个tcpdump包装器,它将安装tcpdump并允许您使用GUI启动捕获。提示:您需要确保为捕获提供正确的接口名称,并且该名称因设备而异,例如-i eth0-i tiwlan0- 或使用-i any登录所有接口

  2. 对于Android 4.0+手机Kismet的Android PCAP使用USB OTG接口来支持数据包捕获,而无需root用户。我尚未尝试过此应用,并且支持的设备类型有一些限制(请参见其页面)

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

  4. 对于IOS 5+设备,任何网络:iOS 5添加了远程虚拟接口(RVI)工具,可让您使用Mac OS X数据包跟踪程序来捕获来自iOS设备的跟踪。请参阅这里了解更多详情

  5. 对于所有电话,仅wi-fi: 将PC设置为无线访问点,然后在PC上运行Wireshark

  6. 对于所有电话,仅Wi-Fi:获取可以嗅探Wi-Fi 的捕获设备。这样的好处是还可以给您802.11x标头,但是您可能会丢失一些数据包

  7. 使用VPN服务器捕获:使用OpenVPN 设置您自己的VPN服务器相当容易。然后,您可以通过将移动设备设置为VPN客户端来在服务器上路由流量,并在服务器端捕获流量。


1
如果您有兴趣在Windows 7及更高版本的Windows上设置恶意访问点并使用Wireshark捕获数据包,请查看我在mohit.io/blog/中汇总的步骤。 该方法适用于任何支持WiFi(Android ,iOS,Wii,XBox等)
mohit

2
关于选项2:实际上这是一个不存在的选项。在他们的页面上:“您将需要一个基于RTL8187的无线网卡”!
matteo 2014年

1
对我来说,选项3是最简单的简单任务,例如检查某个应用程序的调用。
Nighto 2015年

1
其中大多数不适用于永不离开设备或您已使用VPN的数据包。因此,这些对于解决与MTU /碎片相关的问题毫无用处。
Evi1M4chine 2015年

1
如果我想做相反的事情怎么办?使用连接USB的智能手机捕获PC的数据包?基本上在我的Android手机上运行类似于wireshark的软件
dominicbri7 '17

40

除了rupello的出色回答之外,还有“肮脏”但非常有效的把戏:

对于所有电话,任何(本地)网络:将您的PC设置为移动设备的中间人

使用Ettercap在您的移动设备和路由器之间进行ARP欺骗,所有您的移动设备流量将显示在Wireshark中。有关设置详细信息,请参见本教程


3
您也可以在Mac OS上使用Charles代理来捕获HTTP流量,它具有非常好的界面和功能。您需要将计算机的本地IP设置为在手机上具有代理。它也可以嗅探TLS流量,如果您在电话上安装了Charles的证书,它也不会发出警告。
minipif 2015年

28

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

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


1
这是一个有趣的选择。它可以处理ssl数据包吗?
ransh

22

Wireshark + OSX + iOS:

到目前为止的概述不错,但是如果您想了解Wireshark + OSX + iOS的详细信息,请执行以下操作:

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

Wireshark捕获选项对话框

现在,您将看到iOS设备上的所有网络流量。这可能是压倒性的。几个指针:

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

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

Wireshark TCP流量pdf可从204.144.14.134下载


9

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

这个应用程序是我的救星,我正在调试Android应用程序上SSL / TLS握手失败的问题。尝试设置临时网络,以便可以在笔记本电脑上使用Wireshark。它对我没有用。这个应用程序很快使我能够捕获网络流量,并在Google云端硬盘上共享它,这样我就可以在笔记本电脑上下载了,可以在其中使用Wireshark进行检查!很棒,不需要root!


如果您的问题仅在使用VPN时出现(并且永远不会在集线器/路由器上出现),将无法正常工作。
Evi1M4chine 2015年

8

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


该VPN无法正常工作...没有打开任何页面或未获取数据...具有该VPN就像没有互联网连接...
Himanshu Bansal


4

与使您的PC成为无线接入点(但可能更简单)类似,它使用反向绑定。如果您碰巧拥有HTC手机,则可以在网络/移动网络共享设置下使用一个不错的反向网络共享选项,称为“ Internet直通”。它通过您的PC路由所有流量,您可以在那里运行Wireshark。


2

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

您将了解很多反隐私的知识!


6
您能否更具体地说明如何在至少一个平台(Windows,Linux或Mac OS X)上执行此操作?
Alexandre Marcondes 2014年

2

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

  1. tcpdump下载到〜/下载
  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文件。


1

对于Android,我以前使用过tPacketCapture,但对于流一些视频的应用程序来说效果不佳。我现在正在使用Shark。你需要成为root才能使用它。

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


1
Shark在Google Play上不再可用。
not2qubit

实际上,它似乎已被删除。网站swapper.n3o.lv似乎也不再保留apk。
user276648 '17

0

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

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

从播放下载

您可以在其中阅读其他详细信息的教程

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.