如何获取应用程序的实际网络流量?

如何获取应用程序的实际网络流量?

首先,抱歉我的英语不好。

我有一个应用程序Citrix Workspace,通常我以.ica扩展文件格式运行该应用程序。因此我可以使用该应用程序访问数据库。

我的主要目的是了解此应用程序的网络流量,以便构建我自己的移动(如Android,iOS)应用程序项目,以便轻松访问,而无需像Citrix Workspace这样的额外程序。

因此,经过一番研究,我决定通过捕获网络流量WireShark,我发现流量是加密的。因此,我又在互联网上研究了大约 2 天(我真的不知道 https 实际上是如何工作的,所以我搜索了它。)。我尝试了几种方法,只有SSLKEYLOGFILE可变方法在我的 Ubuntu 18.04 桌面上运行,但它仅支持浏览器,但我需要的应用程序是在上运行的Citrix Workspace。我无法获取ssl.log文件。我还找到了一个链接如何解密但它需要一个我没有的私钥。

我想知道的是,如果没有服务器所有者或服务器的根访问权限,是否有任何方法可以解密 TCP 数据包(使用 TLSv1.2 协议加密),以了解应用程序正在请求哪个 URL、正在使用哪种方法(GET、POST 等)以及发送的有效负载是什么。这样我就可以开始构建移动平台应用程序了。

答案1

本质上你是在问如何破解网络来拦截网络内容。

除了您已经发现的方法之外,这根本无法做到。

Wireshark 是可行的方法,但由于内容是加密的,所以基本上这就是您唯一能做的。

或者,您可能希望进入数据库所在的服务器并从那里提取它。您需要使数据库可公开访问,这是一个巨大的安全风险。您需要管理员的帮助来打开端口,但他们很可能会因为安全隐患而拒绝。

TL;DR:基本上是不可能的。

答案2

解密无法创建 SSLKEYLOGFILE 的应用程序流量的最佳方法是通过某种 TLS 代理(如 mitmproxy、burp、fiddler 或 polarproxy)运行它。这样,您将能够看到解密的流量。

如果你想在 Wireshark 中检查解密的流量,那么极地代理是您需要的工具。它可以解密并重新加密 TLS 流量,同时还会使用解密的数据包创建 PCAP 文件。

相关内容