使用 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 从移动设备捕获数据包 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

ubuntu wireshark 无法捕获 dhcp 怎么解决啊?

Wireshark数据抓包教程之认识捕获分析数据包

Wireshark抓包分析---分析数据包

Wireshark - 您无权在该设备 mac 上进行捕获

Wireshark数据抓包教程之Wireshark捕获数据

如何使用wireshark捕获访问某个网站的数据包