Введение 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