Введение Link to heading

mitmproxy — это интерактивный прокси-сервер, позволяющий перехватывать, анализировать и модифицировать HTTP, HTTPS и WebSocket-трафик «на лету». Название утилиты происходит от «man-in-the-middle proxy» — именно так она и работает: становится «посредником» между клиентом и сервером, что позволяет видеть всё, что передаётся между ними.

Основные возможности mitmproxy:

  • Перехват и отображение HTTP/HTTPS-трафика в реальном времени;
  • Интерактивная модификация запросов и ответов;
  • Генерация SSL-сертификатов для HTTPS;
  • Возможность сохранять и воспроизводить трафик;
  • CLI-интерфейс;
  • Удобный веб интерфейс для анализа и управления трафиком;

Это отличный инструмент для тестирования API, анализа трафика мобильных приложений и поиска уязвимостей.

Установка Link to heading

Самый простой способ установить mitmproxy на Mac, как всегда использовать Homebrew.

brew install mitmproxy

Проверьте установку:

mitmproxy --version

Использование mitmproxy с iPhone Link to heading

Рассмотрим пример: вы хотите проанализировать, какие запросы отправляет приложение на iPhone.

Запуск mitmproxy Link to heading

В терминале на Mac запустите:

mitmweb

По умолчанию прокси запускается на порту 8080.

➜ beaver mitmweb
[16:00:08.620] HTTP(S) proxy listening at *:8080.
[16:00:08.620] Web server listening at http://127.0.0.1:8081/?token=193beaverlovestree14

Как мы видем у вас запустился уже прокси и сразу открылась веб-страница с интерфейсом.

Настройка сети на iPhone Link to heading

  • Подключите iPhone к той же Wi-Fi сети, что и ваш Mac.
  • Перейдите в настройки Wi-Fi → нажмите на значок (i) рядом с вашей сетью.
  • Пролистайте до Configure Proxy и выберите Manual.
  • В поле “Server” укажите IP-адрес вашего Mac.
  • В поле “Port” укажите 8080.
  • Нажмите Save.

Теперь весь HTTP/HTTPS трафик с iPhone будет проходить через ваш Mac.

Настройка SSL-сертификата на iPhone Link to heading

Чтобы mitmproxy мог расшифровывать HTTPS, нужно установить его сертификат:

  • В Safari на iPhone откройте адрес: http://mitm.it
  • Найдите пункт iOS и скачайте сертификат по нажатию на кнопку: Get mitmproxy-ca-cert.pem
  • Перейдите в Настройки → Выберите «Профиль загружен» и установите его.
  • Затем в Настройки → Основные → листаете в самый низ до пункта - Sertificate Trust Settings
  • Находим mitmproxy и взводим крыжик в состоние On
  • Запускаем приложение или сайт, которое мы “хотим послушать”

Наблюдение за трафиком Link to heading

Во вкладке браузера, которая открылась после запуска mitmweb, отображаются все запросы.

Возможности интерфейса:

  • Просмотр запросов и ответов;
  • Редактирование и повторная отправка;
  • Изменение заголовков и тел запросов;
  • Сохранение и экспорт трафика;
  • Изменение внешнего вида и фильтрация;
  • Вкладка Options позволяет настраивать поведение прокси прямо в веб-интерфейсе, без использования флагов при запуске.

Задача со * Link to heading

mitmproxy умеет работать как WireGuard-сервер. Это означает, что на клиентском устройстве (например, iPhone) достаточно установить WireGuard и подключиться к туннелю — и весь трафик будет перехватываться без необходимости ручной настройки прокси в Wi-Fi. QR для подключения рисуется в веб-морде и конфиг выводится в консоль после запуска mitmproxy.

Это может быть особенно полезно в ограниченных или защищённых сетях.

Запускается mit такой коммандой:

mitmweb --mode wireguard