![如何获取应用程序的实际网络流量?](https://linux22.com/image/1598752/%E5%A6%82%E4%BD%95%E8%8E%B7%E5%8F%96%E5%BA%94%E7%94%A8%E7%A8%8B%E5%BA%8F%E7%9A%84%E5%AE%9E%E9%99%85%E7%BD%91%E7%BB%9C%E6%B5%81%E9%87%8F%EF%BC%9F.png)
首先,抱歉我的英语不好。
我有一个应用程序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 文件。