如何在Wireshark上捕获手机流量?
以下是一些建议:
For Android phones, any network :将手机挂机,然后在其上安装tcpdump . This app是一个tcpdump包装器,它将安装tcpdump并使您能够使用GUI启动捕获 . 提示:您需要确保为捕获提供正确的接口名称,这在不同设备之间有所不同,例如 -i eth0 或 -i tiwlan0 - 或使用 -i any 记录所有接口
For Android 4.0+ phones :Android PCAP from Kismet使用USB OTG接口支持数据包捕获,无需root . 我没有试过这个应用程序,并且支持的设备类型有一些限制(参见他们的页面)
For Android phones :tPacketCapture使用Android VPN服务拦截数据包并捕获它们 . 我已成功使用此应用程序,但它似乎也会影响大流量的性能(例如视频流)
For IOS 5+ devices, any network :iOS 5添加了一个 remote virtual interface (RVI) 工具,可让您使用Mac OS X数据包跟踪程序从iOS设备捕获跟踪 . 有关详细信息,请参阅here
For all phones, wi-fi only: Set up your PC as a wireless access point,然后在PC上运行wireshark
For all phones, wi-fi only: 获取可以嗅探Wi-Fi的a capture device . 这样做的好处是可以为您提供802.11x标头,但您可能会错过一些数据包
Capture using a VPN server :使用OpenVPN很容易set-up your own VPN server . 然后,您可以通过将移动设备设置为a VPN client来路由您的服务器,并捕获服务器端的流量 .
除了rupello的优秀答案,一个“脏”但非常有效的技巧:
For all phones, any (local) network :将您的PC设置为Man-In-The-Middle您的移动设备 .
使用Ettercap在移动设备和路由器之间执行ARP spoofing,所有移动设备的流量都将显示在Wireshark中 . 有关设置详细信息,请参阅this tutorial
此处未建议的另一个选项是从Android SDK运行您要在Android模拟器中监控的应用 . 然后,您可以使用wireshark在同一台计算机上轻松捕获流量 .
这对我来说是最简单的选择 .
Wireshark OSX iOS:
目前为止有很好的概述,但是如果你想了解Wireshark OSX iOS的细节:
在您的计算机上安装Wireshark
通过USB线将iOS设备连接到计算机
将iOS设备和计算机连接到同一个WiFi网络
在OSX终端窗口中运行此命令: rvictl -s x 其中 x 是iOS设备的UDID . 您可以通过iTunes找到iOS设备的UDID(确保使用的是UDID而不是序列号) .
rvictl -s x
x
转到Wireshark Capture->Options ,出现一个对话框,单击 rvi0 行,然后按 Start 按钮 .
Capture->Options
rvi0
Start
现在,您将在iOS设备上看到所有网络流量 . 它可能非常压倒性 . 几个指针:
don 't use iOS with a VPN, you don'能够理解加密的流量
使用简单的过滤器来关注有趣的流量
ip.addr==204.144.14.134 查看源或目标地址为204.144.14.134的流量
ip.addr==204.144.14.134
http 仅查看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握手失败的问题 . 试图设置ad hoc网络,所以我可以在笔记本电脑上使用wireshark . 它对我不起作用 . 这个应用程序很快让我捕获网络流量,在我的Google Cloud 端硬盘上分享它,这样我就可以在笔记本电脑上下载,我可以用Wireshark查看它!太棒了,不需要root!
Packet Capture Android app实现了一个VPN,可记录Android设备上的所有网络流量 . 您无需在PC上设置任何VPN /代理服务器 . 不需要root . 支持tPacketCapture不支持的SSL解密 . 它还包括一个很好的日志查看器 .
在您的PC上安装Fiddler并将其用作Android设备上的代理 .
资料来源:http://www.cantoni.org/2013/11/06/capture-android-web-traffic-fiddler
类似于使您的PC成为无线接入点,但可以更容易,使用反向网络共享 . 如果你碰巧有一部HTC手机,他们会在网络/移动网络共享设置下有一个很好的反向网络选项,称为“互联网直通” . 它通过您的PC路由您的所有流量,您可以在那里运行Wireshark .
让你的笔记本电脑成为你手机(任何)的wifi热点将它连接到互联网 . 使用wireshark在您的wifi界面上嗅流量 .
你会了解很多反隐私的东西!
For Android ,我之前使用的是tPacketCapture但它现在没有使用Shark . 你 need to be root 虽然使用它 .
它使用 TCPDump (检查arguments you can pass)并创建一个可由Wireshark读取的 pcap file . 默认参数通常对我来说足够好 .
前提条件:adb和wireshark安装在您的计算机上,并且您有一个root用户设备 .
下载tcpdump至〜/下载
adb push ~/Downloads/tcpdump /sdcard/
adb shell
su root
mv /sdcard/tcpdump /data/local/
cd /data/local/
chmod +x tcpdump
./tcpdump -vv -i any -s 0 -w /sdcard/dump.pcap
exit
adb pull /sdcard/dump.pcap ~/Downloads/
现在您可以使用Wireshark打开pcap文件 .
11 回答
以下是一些建议:
For Android phones, any network :将手机挂机,然后在其上安装tcpdump . This app是一个tcpdump包装器,它将安装tcpdump并使您能够使用GUI启动捕获 . 提示:您需要确保为捕获提供正确的接口名称,这在不同设备之间有所不同,例如 -i eth0 或 -i tiwlan0 - 或使用 -i any 记录所有接口
For Android 4.0+ phones :Android PCAP from Kismet使用USB OTG接口支持数据包捕获,无需root . 我没有试过这个应用程序,并且支持的设备类型有一些限制(参见他们的页面)
For Android phones :tPacketCapture使用Android VPN服务拦截数据包并捕获它们 . 我已成功使用此应用程序,但它似乎也会影响大流量的性能(例如视频流)
For IOS 5+ devices, any network :iOS 5添加了一个 remote virtual interface (RVI) 工具,可让您使用Mac OS X数据包跟踪程序从iOS设备捕获跟踪 . 有关详细信息,请参阅here
For all phones, wi-fi only: Set up your PC as a wireless access point,然后在PC上运行wireshark
For all phones, wi-fi only: 获取可以嗅探Wi-Fi的a capture device . 这样做的好处是可以为您提供802.11x标头,但您可能会错过一些数据包
Capture using a VPN server :使用OpenVPN很容易set-up your own VPN server . 然后,您可以通过将移动设备设置为a VPN client来路由您的服务器,并捕获服务器端的流量 .
除了rupello的优秀答案,一个“脏”但非常有效的技巧:
For all phones, any (local) network :将您的PC设置为Man-In-The-Middle您的移动设备 .
使用Ettercap在移动设备和路由器之间执行ARP spoofing,所有移动设备的流量都将显示在Wireshark中 . 有关设置详细信息,请参阅this tutorial
此处未建议的另一个选项是从Android SDK运行您要在Android模拟器中监控的应用 . 然后,您可以使用wireshark在同一台计算机上轻松捕获流量 .
这对我来说是最简单的选择 .
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设备上看到所有网络流量 . 它可能非常压倒性 . 几个指针:
don 't use iOS with a VPN, you don'能够理解加密的流量
使用简单的过滤器来关注有趣的流量
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握手失败的问题 . 试图设置ad hoc网络,所以我可以在笔记本电脑上使用wireshark . 它对我不起作用 . 这个应用程序很快让我捕获网络流量,在我的Google Cloud 端硬盘上分享它,这样我就可以在笔记本电脑上下载,我可以用Wireshark查看它!太棒了,不需要root!
Packet Capture Android app实现了一个VPN,可记录Android设备上的所有网络流量 . 您无需在PC上设置任何VPN /代理服务器 . 不需要root . 支持tPacketCapture不支持的SSL解密 . 它还包括一个很好的日志查看器 .
在您的PC上安装Fiddler并将其用作Android设备上的代理 .
资料来源:http://www.cantoni.org/2013/11/06/capture-android-web-traffic-fiddler
类似于使您的PC成为无线接入点,但可以更容易,使用反向网络共享 . 如果你碰巧有一部HTC手机,他们会在网络/移动网络共享设置下有一个很好的反向网络选项,称为“互联网直通” . 它通过您的PC路由您的所有流量,您可以在那里运行Wireshark .
让你的笔记本电脑成为你手机(任何)的wifi热点将它连接到互联网 . 使用wireshark在您的wifi界面上嗅流量 .
你会了解很多反隐私的东西!
For Android ,我之前使用的是tPacketCapture但它现在没有使用Shark . 你 need to be root 虽然使用它 .
它使用 TCPDump (检查arguments you can pass)并创建一个可由Wireshark读取的 pcap file . 默认参数通常对我来说足够好 .
前提条件:adb和wireshark安装在您的计算机上,并且您有一个root用户设备 .
下载tcpdump至〜/下载
adb push ~/Downloads/tcpdump /sdcard/
adb shell
su root
mv /sdcard/tcpdump /data/local/
cd /data/local/
chmod +x tcpdump
./tcpdump -vv -i any -s 0 -w /sdcard/dump.pcap
exit
exit
adb pull /sdcard/dump.pcap ~/Downloads/
现在您可以使用Wireshark打开pcap文件 .