使用 Wireshark 从移动设备捕获数据包 [重复]
Posted
技术标签:
【中文标题】使用 Wireshark 从移动设备捕获数据包 [重复]【英文标题】:Capture packet from mobile using Wireshark [duplicate] 【发布时间】:2017-02-06 09:22:10 【问题描述】:首先对不起我的英语。
我需要捕获从我的 android 应用程序到 web 服务的数据包,以确定它是否真的被加密。
为此,我打开了我手机的wifi热点。
之后,我将我的电脑连接到那个 wifi,以便能够使用 wireshark 观察那个网络。
然后我运行 Wireshark 程序并开始观察那个 wifi 网络。
当我从我的 Android 应用发送 HTTPS POST 请求时,我希望看到 HTTP 协议数据包。
但我看不到。相反,我看到了一些 TCP 和 QUIC 协议数据包。实际上 QUIC 数据包有一个字段,上面写着“加密”,这是我想看到的,但我知道它是 UDP 数据包,我不知道为什么还有很多 UDP 数据包,我认为它们不是我需要的(但不是当然)。
实际上有时我收到了 HTTP 数据包,但主机是 ssw.live.com。但我的目标主机实际上是不同的。所以这不是我想要捕捉的。
以下是我的 HTTP 请求
HttpsURLConnection urlConnection = setUpHttpsConnection(url.toString());
try
urlConnection.setRequestMethod("POST");
catch (ProtocolException e)
e.printStackTrace();
urlConnection.setRequestProperty("Content-Type", "text/plain; charset=utf-8");
urlConnection.setHostnameVerifier(new HostnameVerifier()
@Override
public boolean verify(String s, SSLSession sslSession)
HostnameVerifier hv =
HttpsURLConnection.getDefaultHostnameVerifier();
return hv.verify("my.hostname.com.tr", sslSession);
);
以下是我发送 http post 请求后的屏幕截图。 HTTP包只有一个,不相关。
在那个 HTTP 数据包内;
主机名不同。
我还尝试在我的 PC 上打开一些网站,看看我是否可以捕获我的 PC 的数据包,但它有时不会发送 HTTP 协议数据包,而我期望通过打开一些网站。
我想知道我写的那些有什么不合理的地方。
是否可以使用这种方式捕获来自我的手机的数据包?
如果是这样,为什么我看不到它们?
任何想法将不胜感激。提前致谢。
【问题讨论】:
【参考方案1】:我假设网络服务托管在互联网上的某个网络服务器上。您手机上的应用程序将通过您手机的移动数据网络访问网络服务。您的电脑看不到此流量。它只看到通过 WiFi 热点网络发送的流量。因此 Wireshark 无法捕获它。
您可以尝试在您的 PC 上的 Android 模拟器上运行该应用程序。 Android 模拟器将使用您电脑的网络连接与网络服务进行通信。然后您应该能够捕获此网络流量。
或者在手机上安装tcpdump。
【讨论】:
其实我注意到还有TLS包。每次我发送 HTTPS POST 请求时,我都会收到那些 TLS 数据包。他们不是我想要的吗?它们也是加密的。以上是关于使用 Wireshark 从移动设备捕获数据包 [重复]的主要内容,如果未能解决你的问题,请参考以下文章