分析 WhatsApp Web 初始化期间的数据交换

分析 WhatsApp Web 初始化期间的数据交换
分析 WhatsApp Web 初始化期间的数据交换

了解 WhatsApp Web 初始化

在数字时代,了解设备之间的通信至关重要,尤其是对于 WhatsApp Web 等应用程序。通过扫描二维码初始化 WhatsApp Web 时,Android 设备和浏览器之间会交换各种参数。此过程涉及加密流量,分析起来可能很困难。

尽管使用了 tpacketcapture 和 Burp Suite 等工具,并在设备上安装了证书,但流量仍然是加密的,这引发了人们对 WhatsApp 使用的协议的质疑。本文深入探讨了此过程背后的机制,并探讨了分析 WhatsApp Web 会话期间交换的参数的潜在方法。

命令 描述
mitmproxy.http.HTTPFlow 表示 mitmproxy 中的单个 HTTP 流,捕获请求和响应。
ctx.log.info() 将信息记录到 mitmproxy 控制台以进行调试。
tshark -i wlan0 -w 在接口 wlan0 上启动网络流量捕获并将其写入文件。
tshark -r -Y -T json 读取捕获文件,应用显示过滤器,并以 JSON 格式输出结果。
jq '.[] | select(.layers.http2)' 处理 JSON 输出以过滤包含 HTTP/2 流量的条目。
cat whatsapp_filtered.json 显示包含 WhatsApp Web 流量的已过滤 JSON 文件的内容。

流量分析脚本详解

第一个脚本利用 mitmproxy,拦截 HTTP 和 HTTPS 流量的强大工具。在这个脚本中,我们定义了一个类 WhatsAppWebAnalyzer 捕获的请求 web.whatsapp.com。这 request 为每个通过代理的 HTTP 请求调用该方法。通过检查是否提出请求 web.whatsapp.com,我们增加一个计数器并使用以下命令记录请求 URL ctx.log.info。这使我们能够监控和记录 Android 设备和 WhatsApp Web 之间的所有通信,从而深入了解二维码扫描过程中交换的数据。这 addons list 向 mitmproxy 注册我们的自定义插件,使脚本能够在 mitmproxy 启动时无缝运行。

第二个脚本使用 tshark,Wireshark 的命令行版本,用于捕获和分析网络流量。命令 tshark -i wlan0 -w 在无线接口上启动捕获并将输出写入文件。然后读取并过滤该文件,仅显示与 Android 设备 IP 地址相关的流量,使用 tshark -r -Y -T json。 JSON 输出进一步处理 jq,一个命令行 JSON 处理器,通过使用过滤 HTTP/2 流量 jq '.[] | select(.layers.http2)'。过滤后的流量被保存并显示使用 cat whatsapp_filtered.json,提供 WhatsApp Web 通信的详细视图。这些脚本相结合,提供了一种强大的方法来分析加密流量,有助于发现 WhatsApp Web 初始化期间交换的参数。

拦截和分析 WhatsApp 网络流量

使用Python和mitmproxy进行流量分析

import mitmproxy.http
from mitmproxy import ctx

class WhatsAppWebAnalyzer:
    def __init__(self):
        self.num_requests = 0

    def request(self, flow: mitmproxy.http.HTTPFlow) -> None:
        if "web.whatsapp.com" in flow.request.pretty_host:
            self.num_requests += 1
            ctx.log.info(f"Request {self.num_requests}: {flow.request.pretty_url}")

addons = [WhatsAppWebAnalyzer()]

解密 WhatsApp 网络流量以进行分析

使用Wireshark和Tshark进行网络流量解密

#!/bin/bash

# Start tshark to capture traffic from the Android device
tshark -i wlan0 -w whatsapp_traffic.pcapng

# Decrypt the captured traffic
tshark -r whatsapp_traffic.pcapng -Y 'ip.addr == <ANDROID_DEVICE_IP>' -T json > whatsapp_traffic.json

# Filter for WhatsApp Web traffic
cat whatsapp_traffic.json | jq '.[] | select(.layers.http2)' > whatsapp_filtered.json

# Print the filtered traffic
cat whatsapp_filtered.json

探索 WhatsApp 网络流量分析的先进技术

分析 WhatsApp 网络流量的一个关键方面是了解所使用的加密协议。 WhatsApp 采用端到端加密,这意味着消息在发送者的设备上加密,并且仅在接收者的设备上解密。这使得拦截和解密流量成为一项具有挑战性的任务。然而,了解密钥交换机制以及公钥和私钥的作用可以深入了解潜在的漏洞和合法拦截的方法。此外,分析设备和服务器之间的初始握手可以揭示有关加密过程以及​​可能交换的任何元数据的有价值的信息。

另一种方法是使用可以执行深度数据包检测 (DPI) 的专用硬件或软件。 DPI 工具可以在数据包通过网络时分析数据包的内容,这对于识别特定应用程序或协议非常有用,即使流量是加密的。例如,将 Wireshark 等工具与专为 WhatsApp 流量设计的插件结合使用,可以帮助剖析通信模式并识别正在交换的消息类型。此外,了解 WhatsApp Web 使用的底层 WebSocket 协议可以提供额外的见解,因为该协议在浏览器和 WhatsApp 服务器之间的实时通信中发挥着重要作用。

有关分析 WhatsApp 网络流量的常见问题

  1. 哪些工具最适合捕获 WhatsApp 网络流量?
  2. 类似的工具 mitmproxytshark 通常用于捕获和分析网络流量。
  3. WhatsApp 如何确保其网络流量的安全?
  4. WhatsApp 使用端到端加密,确保消息在发送者的设备上加密,并且仅在接收者的设备上解密。
  5. 如果流量已加密,是否可以解密?
  6. 由于使用端到端加密,解密极具挑战性,但了解密钥交换机制可以提供见解。
  7. 什么是深度包检测?
  8. 深度数据包检测 (DPI) 是一种数据处理形式,可详细检查通过网络发送的数据以识别协议或应用程序。
  9. WebSocket 如何促进 WhatsApp Web 通信?
  10. WebSocket 促进浏览器和 WhatsApp 服务器之间的实时通信,在消息传递中发挥着至关重要的作用。
  11. 拦截 WhatsApp 流量时是否有法律考虑?
  12. 是的,拦截流量可能会产生法律影响,并且应遵守当地法律法规。
  13. 公钥和私钥是否可以以任何方式被利用?
  14. 利用公钥和私钥非常复杂,如果没有大量的计算资源或漏洞,通常是不切实际的。
  15. 为此目的使用 mitmproxy 有哪些限制?
  16. mitmproxy 可以捕获流量,但由于 WhatsApp 强大的加密方法,可能无法解密。
  17. 元数据如何在流量分析中发挥作用?
  18. 元数据可以提供对通信模式的洞察,例如消息时间戳和用户交互,而无需透露消息内容。

关于 WhatsApp 网络流量分析的最终想法

由于采用了强加密,了解 WhatsApp Web 初始化期间的参数交换需要先进的工具和技术。虽然 tpacketcapture 和 Burp Suite 等传统方法可能存在不足,但利用深度数据包检查和专用软件可以提供更好的见解。尽管具有挑战性,但这些方法可以帮助破译加密流量,从而更清晰地了解二维码扫描过程中 Android 设备和浏览器之间交换的数据。