Аналіз обміну даними під час веб-ініціалізації WhatsApp

Python

Розуміння веб-ініціалізації WhatsApp

У цифрову епоху розуміння зв’язку між пристроями має вирішальне значення, особливо для таких програм, як WhatsApp Web. Під час ініціалізації WhatsApp Web шляхом сканування QR-коду відбувається обмін різними параметрами між пристроєм Android і браузером. Цей процес передбачає зашифрований трафік, який може бути складним для аналізу.

Незважаючи на використання таких інструментів, як tpacketcapture і Burp Suite, із встановленим сертифікатом на пристрої, трафік залишається зашифрованим, що викликає питання щодо протоколів, які використовує WhatsApp. У цій статті розглядаються механізми, що стоять за цим процесом, і досліджуються можливі методи аналізу параметрів, якими обмінюються під час веб-сеансів WhatsApp.

Команда опис
mitmproxy.http.HTTPFlow Представляє єдиний потік HTTP в mitmproxy, що фіксує запит і відповідь.
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 Відображає вміст відфільтрованого файлу JSON, що містить веб-трафік WhatsApp.

Детальне пояснення сценаріїв аналізу трафіку

Перший сценарій використовує , потужний інструмент для перехоплення трафіку HTTP та HTTPS. У цьому скрипті ми визначаємо клас який фіксує запити, зроблені до . The request метод викликається для кожного запиту HTTP, що проходить через проксі. Перевіривши, чи зроблено запит до , ми збільшуємо лічильник і реєструємо URL-адресу запиту за допомогою . Це дозволяє нам відстежувати та реєструвати весь зв’язок між пристроєм Android і WhatsApp Web, надаючи розуміння даних, якими обмінюються під час процесу сканування QR-коду. The list реєструє наш спеціальний аддон з mitmproxy, що дозволяє сценарію безперебійно працювати під час запуску mitmproxy.

Другий сценарій використовує , версія Wireshark для командного рядка для захоплення та аналізу мережевого трафіку. Команда ініціює захоплення на бездротовому інтерфейсі та записує вихідні дані у файл. Потім цей файл читається та фільтрується для відображення лише трафіку, пов’язаного з IP-адресою пристрою Android, за допомогою . Вихідні дані JSON додатково обробляються за допомогою jq, процесор JSON командного рядка, для фільтрації трафіку HTTP/2 за допомогою . Відфільтрований трафік зберігається та відображається за допомогою , надаючи детальний перегляд веб-спілкування WhatsApp. Ці сценарії разом пропонують надійний метод аналізу зашифрованого трафіку, допомагаючи виявити параметри, якими обмінюються під час ініціалізації 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, може допомогти розібрати шаблони спілкування та визначити типи повідомлень, якими обмінюються. Крім того, розуміння основного протоколу WebSocket, який використовується WhatsApp Web, може запропонувати додаткову інформацію, оскільки цей протокол відіграє важливу роль у спілкуванні в реальному часі між браузером і серверами WhatsApp.

  1. Які інструменти найкращі для захоплення веб-трафіку WhatsApp?
  2. Такі інструменти, як і зазвичай використовуються для захоплення та аналізу мережевого трафіку.
  3. Як WhatsApp забезпечує безпеку свого веб-трафіку?
  4. WhatsApp використовує наскрізне шифрування, гарантуючи, що повідомлення шифруються на пристрої відправника та розшифровуються лише на пристрої одержувача.
  5. Чи можна розшифрувати трафік, якщо він зашифрований?
  6. Розшифровка надзвичайно складна через використання наскрізного шифрування, але розуміння механізмів обміну ключами може дати розуміння.
  7. Що таке глибока перевірка пакетів?
  8. Глибока перевірка пакетів (DPI) — це форма обробки даних, яка детально перевіряє дані, що надсилаються через мережу, для визначення протоколів або програм.
  9. Як WebSockets сприяють комунікації WhatsApp Web?
  10. WebSockets сприяють спілкуванню в реальному часі між браузером і серверами WhatsApp, відіграючи вирішальну роль у доставці повідомлень.
  11. Чи існують юридичні міркування щодо перехоплення трафіку WhatsApp?
  12. Так, перехоплення трафіку може мати юридичні наслідки та повинно здійснюватися відповідно до місцевих законів і правил.
  13. Чи можна якимось чином використовувати відкритий і закритий ключі?
  14. Використання відкритих і закритих ключів є дуже складним і зазвичай непрактичним без значних обчислювальних ресурсів або вразливостей.
  15. Які обмеження використання mitmproxy для цієї мети?
  16. mitmproxy може перехоплювати трафік, але може не розшифрувати його через надійні методи шифрування WhatsApp.
  17. Як метадані можуть бути корисними для аналізу трафіку?
  18. Метадані можуть давати уявлення про шаблони спілкування, такі як мітки часу повідомлення та взаємодії користувача, не розкриваючи вміст повідомлення.

Розуміння обміну параметрами під час ініціалізації WhatsApp Web потребує вдосконалених інструментів і методів через застосоване надійне шифрування. Хоча традиційні методи, такі як tpacketcapture і Burp Suite, можуть бути неефективними, використання глибокої перевірки пакетів і спеціалізованого програмного забезпечення може запропонувати кращу інформацію. Незважаючи на складність, ці методи можуть допомогти розшифрувати зашифрований трафік, надаючи чіткішу картину даних, якими обмінюються пристрій Android і браузер під час процесу сканування QR-коду.