首先要记住的是 Burp 是一个 HTTP(S) 代理。它不会对任何不是 HTTP(S) 的数据做任何事情(好的,除了 websockets)。另一方面,Android 应用程序可以使用他们想要的任何协议。很多人使用 HTTP(S),只是因为它适合他们发送的数据类型,但实际上并不是必需的。
如果应用不使用 HTTP(S),则该流量不会出现在 Burp 中。最明显的例子是 DNS 流量 - 即使您通过 Burp 使用浏览器,您也不会看到任何 DNS 查找请求。
所以:
- 完全拒绝工作的应用程序。他们可能正在使用证书固定——不过这里有两个选项。第一种类型,他们正在为要安装在设备上的目标站点寻找有效证书。在这种情况下,安装 Burp CA 证书将使它们再次工作。第二种类型,他们使用一些自定义固定,这需要服务器提供特定的证书,或者由信任链中的特定条目签名的证书。这些不会被 Burp CA 证书愚弄。
- 无需捕获任何数据包即可运行的应用程序。他们可能没有使用 HTTP(S)。这可能是诸如 SSH 客户端、Whatsapp 等消息服务或游戏之类的东西,其中数据包的丢失不如大多数快速到达的数据包重要,这更适合基于 UDP 的网络连接而不是基于 TCP 的网络连接(如 HTTP)。他们也可能会忽略任何现有的代理设置,特别是如果您只是使用 HTTP 代理应用程序进行拦截。要查看这些数据,您需要像 Wireshark 这样可以处理其他类型数据的工具,以及支持监控模式的 wifi 卡。
- 仅显示一些流量的应用程序。如果您看到的流量是统计数据包或广告,它们可能属于上述第 2 类 - 大多数统计系统似乎都使用 HTTP(S),因为它在任何东西中都相对容易实现,而且您通常必须有某种 HTTP无论如何打开连接以下载广告。
- 实际未连接的应用程序。有些应用程序看起来应该连接到互联网,但实际上并没有,或者只是不定期地这样做。这些可以包括时间表应用程序、一些游戏(例如,高分每天更新)或大部分可以在本地存储数据的任何东西(地图应用程序可能会在本地存储“常规”区域,并调用景点或更远的地方的评论)。在这种情况下,您可能没有看到他们在您观看时尝试连接。
如果可以的话,我建议使用 Wireshark 查看流量,看看正在使用哪些协议,然后使用适当的软件挖掘有趣的协议,记住有些是故意难以检查的——来自 Whatsapp 的加密数据包应该是不可读的,否则他们就大错特错了!