Skip to content

Создание дампа подключения

Дмитрий Карих edited this page Jun 27, 2022 · 31 revisions

У меня не всегда есть возможность быстро отреагировать на какие-то изменения в работе сети или, например, добраться до Санкт-Петербурга, чтобы проверить, что там сломалось. Но вы можете помочь мне в разработке, собрав дамп процесса авторизации и отправив его мне. Дамп содержит всю необходимую для реализации алгоритма информацию, включая: параметры исходящих запросов, ответы сервера, Cookies и т.п.

Данная инструкция подходит для любых устройств под управлением Android. Права root не требуются!

1. Первоначальная настройка устройства

1.1. Необходимые приложения

Вам понадобится установить следующие приложения:

  • Chrome (скорее всего он уже есть)
    • Firefox игнорирует системные и пользовательские сертификаты, поэтому он не подходит;
    • Chrome Beta, похоже, тоже игнорирует системные сертификаты;
  • Termux (версия в Google Play часто сильно отстаёт и ломается)
  • TunProxy (APK)

1.2. Настройка Termux

Я подготовил скрипт, который должен установить и настроить всё, что вам понадобится. Запустить его можно следующей командой:

curl -s https://gist.githubusercontent.com/TheDrHax/b68e14902ba644a23956289ad9375eea/raw/install.sh | sh -

Исходный код всех скриптов можно посмотреть здесь.

1.3. Настройка TunProxy

TunProxy позволяет включать прокси для любого набора приложений, а не только глобально. Это очень полезно при сборе дампов, так как таким образом в дамп не попадёт ничего лишнего от системы или других приложений.

  • Откройте TunProxy;
  • В верхней панели нажмите на "..." и затем "Настройки";
    • В первом пункте выберите "Все, кроме указанных в чёрном списке";
    • В 3-м пункте найдите и выберите Termux;
  • На главном экране введите в текстовое поле: 127.0.0.1:8080
  • Нажмите "Запустить";
  • Если появился диалог с подтверждением, нажмите "OK";

Screenshot_20210402-033215

  • Нажмите "Остановить";

1.4. Настройка Chrome

Так как mitmproxy осуществляет MITM-атаку на трафик, Chrome и другие браузеры будут постоянно выдавать предупреждение о подмене сертификата удалённого сервера. Чтобы этого избежать, mitmproxy генерирует свой корневой сертификат, который нужно добавить в список доверенных.

Порядок действий:

  • Запустите захват пакетов (см. пункт 2.1);
  • Активируйте прокси для Chrome (см. пункт 2.2);
  • Откройте Chrome и перейдите на сайт http://mitm.it;
  • На открывшейся странице найдите пункт "Android" и нажмите "Get mitmproxy-ca-cert.cer";

image

  • Android 10 и старше:
    • В открывшемся диалоге введите любое название (например, "mitmproxy") и нажмите "OK";

image

  • Android 11 и новее:
    • Скачайте сертификат;
    • Откройте: Настройки системы - Безопасность - Шифрование и учётные данные - Установка сертификатов;
    • Выберите пункт "Сертификат центра сертификации" и в открывшемся диалоге найдите скачанный ранее сертификат;

2. Запуск дампа

2.1. Запуск mitmproxy

Откройте Termux и введите следующую команду:

./dump.sh

После этого Termux можно свернуть - он продолжит работать в фоне, пока не будет закрыт командой exit или через уведомление.

Чтобы остановить скрипт, нажмите Enter или Ctrl+C.

Дампы будут сохранены во внешнее хранилище устройства в папку "mitmproxy". Название каждого дампа отражает дату и время его запуска.

2.2. Активация прокси

Порядок действий:

  • Открыть TunProxy;
  • Включить прокси с помощью кнопки "Запустить";

3. Сбор дампа

  • Подготовка:

    • Отключите автоматическое подключение в приложении "Wi-Fi в метро": Главное меню → Автоматическая авторизация (снять галочку);
    • Подключитесь к сети Wi-Fi;
    • Запустите скрипт и активируйте прокси (см. пункты 2.1 и 2.2);
  • Авторизация:

  • Сохранение:

    • Отключите прокси и завершите mitmproxy (Enter или Ctrl+C в Termux);
    • Готовый дамп должен появиться на SD-карте по пути "mitmproxy/ДАТА-ВРЕМЯ.mpcap";
  • Отправка:

    • Отправьте файл дампа мне на почту mosmetro@thedrhax.pw или в Telegram;