mitmproxy

'

Описание mitmproxy

mitmproxy – это интерактивная консольная программа, которая позволяет перехватывать, инспектировать, модифицировать и повторно воспроизводить поток трафика.

Пакет mitmproxy включает в себя три программы:

  • Mitmproxy – это интерактивный, SSL-совместимый, человек-посередине прокси для HTTP с консольным интерфейсом.
  • mitmdump – это версия командной строки mitmproxy. Вспомните tcpdump для HTTP.
  • pathoc и pathod – это коварные приложения HTTP клиента и сервера, созданные чтобы позволить вам сконструировать практически любой мыслимый HTTP запрос, включая те, которые творчески нарушают стандарты.

Функции:

  • Перехват HTTP запросов и ответов и их модификация на лету.
  • Сохранение полной HTTP беседы для последующего воспроизведения и анализа.
  • Воспроизведение HTTP беседы со стороны клиента.
  • Воспроизведение ранее записанных HTTP ответов сервера.
  • Режим обратного прокси для перенаправления трафика на указанный сервер.
  • Режим прозрачного прокси на OSX и Linux.
  • Изменение HTTP трафика используя скрипты Python.
  • генерируемы на лету SSL сертификаты для перехвата.
  • И многое-многое другое.

Домашняя страница: https://mitmproxy.org/

Автор: Aldo Cortesi

Лицензия: GPLv3

Справка по mitmproxy

использование:

mitmproxy [опции]

Аргументы, которые начинаются с '--' (например, --version) могут быть также установлены в конфигурационном файле (~/.mitmproxy/common.conf или ~/.mitmproxy/mitmproxy.conf или указаны через --conf). Распознаваемый синтаксис пар настроек (ключ, значение) основывается на форматах INI и YAML (например, key=value или foo=TRUE). Если аргумент встречается более чем в одном месте, то значения командной строки переписывает значения конфигурационного файла, который, в свою очередь, переписывает значения по умолчанию.

опциональные аргументы:
-h, --help показать справку и выйти
--conf CONFIG_FILE путь до конфигурационного файла
--version показать номер версии программы и выйти
--shortversion показать короткий номер версии программы и выйти
--anticache Сдирать заголовки запросов, которые могут
привести сервер к возвращению статуса 304-not-modified.
--cadir CADIR Расположение дефолтных mitmproxy CA файлов.
(~/.mitmproxy)
--host Использовать заголовок хоста для конструирования URL для показа.
-q, --quiet Тишина.
-r RFILE, --read-flows RFILE
Читать поток из файла.
-s "script.py --bar", --script "script.py --bar"
Запустить скрипт. Поместите в кавычки, чтобы передать
скрипту аргументы. Можно указывать много раз.
-t FILTER, --stickycookie ФИЛЬТР
Установить фильтр sticky cookie. Сопоставляется с запросами.
-u FILTER, --stickyauth ФИЛЬТР
Установить фильтр sticky auth filter. Сопоставляется с запросами.
-v, --verbose Увеличить вербальность записей событий.
-w OUTFILE, --wfile OUTFILE
Записывать поток в файл.
-a OUTFILE, --afile OUTFILE
Добавить поток к файлу.
-z, --anticomp Попробовать убедить сервер отправлять нам несжатые данные.
-Z РАЗМЕР, --body-size-limit РАЗМЕР
Лимит размера в байтах тел HTTP запроса и ответа.
Понимает суффиксы k/m/g, к примеру, 3m для 3 мегабайт.
--stream РАЗМЕР Поток данных клиенту, если тело ответа
превышает данный порог. В потоковом режиме тело
не будет храниться в любом случае. Понимает k/m/g
суффиксы, например, 3m для 3 мегабайт.
--upstream-auth UPSTREAM_AUTH
Прокси аутентификация: username:password
--palette {dark,light,lowdark,lowlight,solarized_dark,solarized_light}
Выбрать цветовую палитру: solarized_light, light, lowdark,
dark, lowlight, solarized_dark
--palette-transparent
Установить прозрачный фон для палитры.
-e, --eventlog Показать лог событий.
-f, --follow Следовать списку потока.
--no-mouse Отключить взаимодействие с мышью.
Режимы прокси:
-R REVERSE_PROXY, --reverse REVERSE_PROXY
Переправить все запросы на вышестоящий HTTP сервер:
http[s][2http[s]]://хост[:порт]
--socks Установить режим прокси SOCKS5.
-T, --transparent Установить режим прозрачного прокси.
-U UPSTREAM_PROXY, --upstream UPSTREAM_PROXY
Переправлять все запросы вышестоящему прокси серверу:
http://хост[:порт]
Опции прокси:
-b ADDR, --bind-address ADDR
Адрес для привязки к прокси (по умолчанию все интерфейсы)
-I HOST, --ignore HOST
Игнорировать хост и переправлять весь трафик без его
Обработки. В прозрачном режиме это рекомендуется
использовать для (диапазона) IP адресов, а не имён хоста.
В обычном режиме, только SSL игнорируется и должно
использоваться имя хоста. Переданные значения
интерпретируются как регулярное выражение и
сопоставляется с IP или имени хоста. Можно передать
несколько раз.
--tcp ХОСТ Универсальный TCP SSL прокси режим для всех
хостов, которые соответствуют образцу. Похоже на
--ignore, но SSL подключения перехватываются.
Содержимое коммуникации печатается в журнале
событий в вербальном режиме.
-n, --no-server Не запускать прокси сервер.
-p ПОРТ, --port ПОРТ Порт прокси сервера.
--no-http2 Явно отключить поддержку HTTP/2. Если ваша
версия OpenSSL поддерживает ALPN, HTTP/2 по
умолчанию включён.
--raw-tcp
--no-raw-tcp Явно включить/отключить экспериментальную
поддержку сырых tcp. По умолчанию отключена. Значение
по умолчанию будет изменено в будущих версиях.
SSL:
--cert SPEC Добавить сертификат SSL. SPEC имеет вид
"[domain=]path". Домен может включать подстановочные символы,
и если не указан, то эквивалентен "*". Файл в path -
это сертификат в формате PEM. Если приватный ключ
включён в PEM, он используется, в противном случае
используется ключ по умолчанию в conf dir. Файл PEM
должен содержать полную цель сертификатов, с leaf
сертификатом в качестве первой записи. Можно
передать множество раз.
--ciphers-client CIPHERS_CLIENT
Установить поддерживаемые шифры для клиентских
подключений. (Синтаксис OpenSSL)
--ciphers-server CIPHERS_SERVER
Установить поддерживаемые шифры для серверных
подключений. (Синтаксис OpenSSL)
--client-certs CLIENTCERTS
Файл или директория с клиентским сертификатом.
--no-upstream-cert Не подключаться к вышестоящему серверу
для запроса подробностей по сертификату.
--add-upstream-certs-to-client-chain
Добавить все сертификаты вышестоящего сервера в
цепочку сертификации, которые будут обслуживаться
в качестве статистов.
--verify-upstream-cert
Проверить SSL/TLS сертификаты вышестоящего сервера и
потерпеть неудачу если недействительный или не представлен.
--upstream-trusted-cadir SSL_VERIFY_UPSTREAM_TRUSTED_CADIR
Путь до директории доверенных CA сертификатов
для верификации вышестоящего сервера,
подготовленных утилитой c_rehash.
--upstream-trusted-ca SSL_VERIFY_UPSTREAM_TRUSTED_CA
Путь до доверенных CA сертификатов в формате PEM.
--ssl-version-client {all,TLSv1_2,secure,TLSv1_1,TLSv1,SSLv3,SSLv2}
Установить поддерживаемые версии SSL/TLS для
клиентских подключений. SSLv2, SSLv3 и 'all' являются
НЕБЕЗОПАСНЫМИ. По умолчанию безопасные,
которые TLS1.0+.
--ssl-version-server {all,TLSv1_2,secure,TLSv1_1,TLSv1,SSLv3,SSLv2}
Установить поддерживаемые версии SSL/TLS для
подключений сервера. SSLv2, SSLv3 и 'all' являются
НЕБЕЗОПАСНЫМИ. По умолчанию безопасные,
которые TLS1.0+.
Встроенные приложения:
--noapp Отключить встроенные приложения mitmproxy.
--app-host host Домен с которого обслуживать встроенные
приложения. Для прозрачного режима используйте IP
когда DNS запись для домена приложения отсутствует. По
умолчанию: mitm.it
--app-port 80 Порт с которого обслуживать встроенное приложение.
Клиентское воспроизведение:
-c ПУТЬ, --client-replay ПУТЬ
Воспроизведение клиентских запросов из сохранённого файла
Серверное воспроизведение:
-S ПУТЬ, --server-replay ПУТЬ
Воспроизведение серверных запросов из сохранённого файла.
-k, --kill Убить дополнительные запросы во время воспроизведения.
--rheader RHEADERS Заголовки запросов, которые нужно учитывать
при воспроизведении. Можно указывать множество раз.
--norefresh Отключить обновления ответов, которые
обновляют время в кукиз и заголовках
для воспроизведённых ответов.
--no-pop Отключить pop ответа из потока ответа. Это делает
Возможным воспроизвести один и тот же ответ несколько раз.
--replay-ignore-content
Игнорировать содержимое запроса при поиске
сохранённого потока для воспроизведения.
--replay-ignore-payload-param REPLAY_IGNORE_PAYLOAD_PARAMS
Параметры полезной нагрузки запроса (application/x-www-form-
urlencoded или multipart/form-data) которые будут
игнорироваться при поиске сохранённого потока
для воспроизведения. Можно указать множество раз.
--replay-ignore-param REPLAY_IGNORE_PARAMS
Параметры запроса для игнорирования во время поиска
по сохранённому потоку для воспроизведения.
Можно указать несколько раз.
--replay-ignore-host Игнорировать запросы хоста назначения
во время поиска по сохранённому потоку
для воспроизведения.
Замены:
Замены имеют вид "/шаблон/регулярное выражение/замена", где
разделителем может быть любой символ.
Подробности смотрите в документации.
--replace ШАБЛОН Замена по шаблону.
--replace-from-file ПУТЬ
Замена по шаблону, когда заменитель
расположен в указанном файле.
Установить заголовки:
Заголовок указывается в формате "/шаблон/заголовок/значение"
, где разделителем может быть любой символ.
Подробности смотрите в документации.
--setheader ШАБЛОН Установить шаблон заголовка.
Прокси аутентификация:
Указание, каким пользователям позволено иметь доступ к
прокси и используемый для них метод аутентификации.
--nonanonymous Позволять доступ любому пользователю, пока
указаны данные аутентификации.
--singleuser ПОЛЬЗОВАТЕЛЬ Позволять доступ единичному
пользователю, указанному в username:password.
--htpasswd ПУТЬ Позволять доступ пользователям, указанным
в файле Apache htpasswd.
Фильтры:
По синтаксису выражений фильтров дополнительно смотрите
справку mitmproxy.
-i INTERCEPT, --intercept INTERCEPT
Выражение фильтра перехвата.
-l LIMIT, --limit LIMIT
Выражение ограничительного фильтра.

Справка по mitmdump

использование:

mitmdump [опции] [фильтр]

Аргументы, которые начинаются с '--' (например, --version) могут быть также установлены в конфигурационном файле (~/.mitmproxy/common.conf или ~/.mitmproxy/mitmdump.conf или указаны через --conf). Распознаваемый синтаксис пар настроек (ключ, значение) основывается на форматах INI и YAML (например, key=value или foo=TRUE). Если аргумент встречается более чем в одном месте, то значения командной строки переписывает значения конфигурационного файла, который, в свою очередь, переписывает значения по умолчанию.

позиционные аргументы:
args
опциональные аргументы:
-h, --help показать справку и выйти
--conf CONFIG_FILE путь до конфигурационного файла
--version показать номер версии программы и выйти
--shortversion показать короткий номер версии программы и выйти
--anticache Сдирать заголовки запросов, которые могут
привести сервер к возвращению статуса 304-not-modified.
--cadir CADIR Расположение дефолтных mitmproxy CA файлов.
(~/.mitmproxy)
--host Использовать заголовок хоста для конструирования URL для показа.
-q, --quiet Тишина.
-r RFILE, --read-flows RFILE
Читать поток из файла.
-s "script.py --bar", --script "script.py --bar"
Запустить скрипт. Поместите в кавычки, чтобы передать
скрипту аргументы. Можно указывать много раз.
-t FILTER, --stickycookie ФИЛЬТР
Установить фильтр sticky cookie. Сопоставляется с запросами.
-u FILTER, --stickyauth ФИЛЬТР
Установить фильтр sticky auth filter. Сопоставляется с запросами.
-v, --verbose Увеличить вербальность записей событий.
-w OUTFILE, --wfile OUTFILE
Записывать поток в файл.
-a OUTFILE, --afile OUTFILE
Добавить поток к файлу.
-z, --anticomp Попробовать убедить сервер отправлять нам несжатые данные.
-Z РАЗМЕР, --body-size-limit РАЗМЕР
Лимит размера в байтах тел HTTP запроса и ответа.
Понимает суффиксы k/m/g, к примеру, 3m для 3 мегабайт.
--stream РАЗМЕР Поток данных клиенту, если тело ответа
превышает данный порог. В потоковом режиме тело
не будет храниться в любом случае. Понимает k/m/g
суффиксы, например, 3m для 3 мегабайт.
--upstream-auth UPSTREAM_AUTH
Прокси аутентификация: username:password
--keepserving Продолжать службу после
клиентского воспроизведения или чтения
файла. По умолчанию мы выходим.
-d, --detail Увеличить уровень отображения подробностей
потока. Можно указать несколько раз.
Режимы прокси:
-R REVERSE_PROXY, --reverse REVERSE_PROXY
Переправить все запросы на вышестоящий HTTP сервер:
http[s][2http[s]]:// хост [:порт]
--socks Установить режим прокси SOCKS5.
-T, --transparent Установить режим прозрачного прокси.
-U UPSTREAM_PROXY, --upstream UPSTREAM_PROXY
Переправлять все запросы вышестоящему прокси серверу:
http://хост[:порт]
Опции прокси:
-b ADDR, --bind-address ADDR
Адрес для привязки к прокси (по умолчанию все интерфейсы)
-I HOST, --ignore HOST
Игнорировать хост и переправлять весь трафик без его
Обработки. В прозрачном режиме это рекомендуется
использовать для (диапазона) IP адресов, а не имён хоста.
В обычном режиме, только SSL игнорируется и должно
использоваться имя хоста. Переданные значения
интерпретируются как регулярное выражение и
сопоставляется с IP или имени хоста. Можно передать
несколько раз.
--tcp ХОСТ Универсальный TCP SSL прокси режим для всех
хостов, которые соответствуют образцу. Похоже на
--ignore, но SSL подключения перехватываются.
Содержимое коммуникации печатается в журнале
событий в вербальном режиме.
-n, --no-server Не запускать прокси сервер.
-p ПОРТ, --port ПОРТ Порт прокси сервера.
--no-http2 Явно отключить поддержку HTTP/2. Если ваша
версия OpenSSL поддерживает ALPN, HTTP/2 по
умолчанию включён.
--raw-tcp
--no-raw-tcp Явно включить/отключить экспериментальную
поддержку сырых tcp. По умолчанию отключена. Значение
по умолчанию будет изменено в будущих версиях.
SSL:
--cert SPEC Добавить сертификат SSL. SPEC имеет вид
"[domain=]path". Домен может включать подстановочные символы,
и если не указан, то эквивалентен "*". Файл в path -
это сертификат в формате PEM. Если приватный ключ
включён в PEM, он используется, в противном случае
используется ключ по умолчанию в conf dir. Файл PEM
должен содержать полную цель сертификатов, с leaf
сертификатом в качестве первой записи. Можно
передать множество раз.
--ciphers-client CIPHERS_CLIENT
Установить поддерживаемые шифры для клиентских
подключений. (Синтаксис OpenSSL)
--ciphers-server CIPHERS_SERVER
Установить поддерживаемые шифры для серверных
подключений. (Синтаксис OpenSSL)
--client-certs CLIENTCERTS
Файл или директория с клиентским сертификатом.
--no-upstream-cert Не подключаться к вышестоящему серверу
для запроса подробностей по сертификату.
--add-upstream-certs-to-client-chain
Добавить все сертификаты вышестоящего сервера в
цепочку сертификации, которые будут обслуживаться
в качестве статистов.
--verify-upstream-cert
Проверить SSL/TLS сертификаты вышестоящего сервера и
потерпеть неудачу если недействительный или не представлен.
--upstream-trusted-cadir SSL_VERIFY_UPSTREAM_TRUSTED_CADIR
Путь до директории доверенных CA сертификатов
для верификации вышестоящего сервера,
подготовленных утилитой c_rehash.
--upstream-trusted-ca SSL_VERIFY_UPSTREAM_TRUSTED_CA
Путь до доверенных CA сертификатов в формате PEM.
--ssl-version-client {all,TLSv1_2,secure,TLSv1_1,TLSv1,SSLv3,SSLv2}
Установить поддерживаемые версии SSL/TLS для
клиентских подключений. SSLv2, SSLv3 и 'all' являются
НЕБЕЗОПАСНЫМИ. По умолчанию безопасные,
которые TLS1.0+.
--ssl-version-server {all,TLSv1_2,secure,TLSv1_1,TLSv1,SSLv3,SSLv2}
Установить поддерживаемые версии SSL/TLS для
подключений сервера. SSLv2, SSLv3 и 'all' являются
НЕБЕЗОПАСНЫМИ. По умолчанию безопасные,
которые TLS1.0+.
Встроенные приложения:
--noapp Отключить встроенные приложения mitmproxy.
--app-host host Домен с которого обслуживать встроенные
приложения. Для прозрачного режима используйте IP
когда DNS запись для домена приложения отсутствует. По
умолчанию: mitm.it
--app-port 80 Порт с которого обслуживать встроенное приложение.
Клиентское воспроизведение:
-c ПУТЬ, --client-replay ПУТЬ
Воспроизведение клиентских запросов из сохранённого файла
Серверное воспроизведение:
-S ПУТЬ, --server-replay ПУТЬ
Воспроизведение серверных запросов из сохранённого файла.
-k, --kill Убить дополнительные запросы во время воспроизведения.
--rheader RHEADERS Заголовки запросов, которые нужно учитывать
при воспроизведении. Можно указывать множество раз.
--norefresh Отключить обновления ответов, которые
обновляют время в кукиз и заголовках
для воспроизведённых ответов.
--no-pop Отключить pop ответа из потока ответа. Это делает
Возможным воспроизвести один и тот же ответ несколько раз.
--replay-ignore-content
Игнорировать содержимое запроса при поиске
сохранённого потока для воспроизведения.
--replay-ignore-payload-param REPLAY_IGNORE_PAYLOAD_PARAMS
Параметры полезной нагрузки запроса (application/x-www-form-
urlencoded или multipart/form-data) которые будут
игнорироваться при поиске сохранённого потока
для воспроизведения. Можно указать множество раз.
--replay-ignore-param REPLAY_IGNORE_PARAMS
Параметры запроса для игнорирования во время поиска
по сохранённому потоку для воспроизведения.
Можно указать несколько раз.
--replay-ignore-host Игнорировать запросы хоста назначения
во время поиска по сохранённому потоку
для воспроизведения.
Замены:
Замены имеют вид "/шаблон/регулярное выражение/замена", где
разделителем может быть любой символ.
Подробности смотрите в документации.
--replace ШАБЛОН Замена по шаблону.
--replace-from-file ПУТЬ
Замена по шаблону, когда заменитель
расположен в указанном файле.
Установить заголовки:
Заголовок указывается в формате "/шаблон/заголовок/значение"
, где разделителем может быть любой символ.
Подробности смотрите в документации.
--setheader ШАБЛОН Установить шаблон заголовка.
Прокси аутентификация:
Указание, каким пользователям позволено иметь доступ к
прокси и используемый для них метод аутентификации.
--nonanonymous Позволять доступ любому пользователю, пока
указаны данные аутентификации.
--singleuser ПОЛЬЗОВАТЕЛЬ Позволять доступ единичному
пользователю, указанному в username:password.
--htpasswd ПУТЬ Позволять доступ пользователям, указанным
в файле Apache htpasswd.

Справка по pathoc

использование:

pathoc [-h] [--show-uas] [--version] [-c HOST:PORT] [--memo-limit N]
[-m] [-n N] [-w N] [-r] [-t TIMEOUT] [--http2]
[--http2-skip-connection-preface] [-s] [-C CLIENTCERT] [-i SNI]
[--ciphers CIPHERS]
[--ssl-version {all,TLSv1_2,secure,TLSv1_1,TLSv1,SSLv3,SSLv2}]
[-I IGNORECODES] [-S] [-e] [-o] [-q] [-p] [-T] [-x]
[--http2-framedump]
host[:port] requests [requests ...]

Коварный HTTP клиент.

Позиционные аргументы:
host[:port] Хост и порт для подключения
requests Спецификация запроса или путь до
файла со спецификациями запроса
опциональные аргументы:
-h, --help показать справку и выйти
--show-uas Напечатать сокращённый user agent и выйти.
--version показать номер версии программы и выйти
-c HOST:PORT Составить HTTP CONNECT для
подключения к заданному узлу.
--memo-limit N Остановиться, если мы не нашли
действительный запрос после N попыток.
-m Помнить спецификации и никогда не проигрывать одну
и ту же дважды. Обратите внимание, что это означает, что
запросы должны быть отображены в памяти, что означает
большую генерацию данных, которые могут
вызвать проблему.
-n N Повторить N раз. Если 0 повторять бесконечно.
-w N Ждать N секунд между каждым запросом.
-r Выбрать случайный запрос из тех, которые указаны.
Если они не указаны, то последовательно
воспроизводить все запросы.
-t TIMEOUT Таймаут соединения
--http2 Выполнять все запросы через единичное
HTTP/2 соединение.
--http2-skip-connection-preface
Пропустить предисловия HTTP/2 перед
отправкой запроса.
SSL:
-s Подключиться с SSL
-C CLIENTCERT Путь до файла, содержащего клиентский
сертификат и приватный ключ
-i SNI Индикация сервера имён SSL
--ciphers CIPHERS Спецификация шифров SSL
--ssl-version {all,TLSv1_2,secure,TLSv1_1,TLSv1,SSLv3,SSLv2}
Установить поддерживаемые SSL/TLS версии. SSLv2,
SSLv3 и 'all' являются НЕБЕЗОПАСНЫМИ.
По умолчанию безопасные, которые TLS1.0+.
Контролирование вывода:
Некоторые из этих опций увеличивают количество генерируемых
значений для записи – если вы генерируете большие объёмы
данных, то используйте их с осторожностью.
-I IGNORECODES Разделённый запятой список кодов ответов для игнорирования
-S Показать информацию по SSL подключению
-e Объяснить запросы
-o Один выстрел – выйти после первого не игнорируемого запроса
-q Печатать полный запрос
-p Печатать полный ответ
-T Игнорировать таймауты
-x Вывод в формате hexdump
--http2-framedump Выводить все полученные и отправленные фреймы HTTP/2 

Справка по pathod

использование:

pathod [-h] [--version] [-p PORT] [-l ADDRESS] [-a ANCHOR]
[-c CRAFTANCHOR] [--confdir CONFDIR] [-d STATICDIR] [-D]
[-t TIMEOUT] [--limit-size SIZELIMIT] [--noapi] [--nohang]
[--noweb] [--nocraft] [--webdebug] [-s] [--cn CN] [-C]
[--cert SPEC] [--ciphers CIPHERS] [--san SAN]
[--ssl-version {all,TLSv1_2,secure,TLSv1_1,TLSv1,SSLv3,SSLv2}]
[-e] [-f LOGFILE] [-q] [-r] [-x] [--http2-framedump]

Паталогический HTTP/S демон.

опциональные аргументы:
-h, --help показать справку и выйти
--version показать номер версии программы и выйти
-p ПОРТ Порт. Укажите 0 для выбора произвольного пустого порта.
(9999)
-l АДРЕС Прослушиваемый адрес. (127.0.0.1)
-a ANCHOR Добавить якорь. Указывается как строка в формате
шаблон=спецификация или шаблон =путь_до_файла, где
образец – это регулярное выражение.
-c CRAFTANCHOR Путь URL определяющий префикс для
создания URL команд. (/p/)
--confdir CONFDIR Директория конфигурации. (~/.mitmproxy)
-d STATICDIR Директория для статичных файлов.
-D Перевести в фон.
-t TIMEOUT Таймаут соединения
--limit-size SIZELIMIT
Придел размера обсуживающегося ответа.
Понимает суффиксы размеров, например, 100k.
--noapi Отключить API.
--nohang Отключить паузы во время генерирования составленных ответов.
--noweb Отключить и веб-интерфейс и API.
--nocraft Отключить составление ответов. Если указаны,
якоря, они всё равно продолжают работу.
--webdebug Режим отладки для веб-приложения (только разработка).
SSL:
-s Запустить в режиме HTTPS.
--cn CN CN для сгенерированных SSL сертификатов.
По умолчанию: pathod.net
-C Не ожидать SSL после запроса CONNECT.
--cert SPEC Добавить SSL сертификат. SPEC в формате
"[домен=]путь". Домен может включать подстановочные символы,
и эквивалентен "*" если не указан. Путь до файла
сертификата в формате PEM. Если приватный ключ
включён в PEM, то он используется, иначе используется
ключ по умолчанию из conf dir d. Можно указать множество раз.
--ciphers CIPHERS Спецификация шифров SSL
--san SAN Альтернативное имя субъекта, для добавления
к сертификату сервера. Можно указать много раз.
--ssl-version {all,TLSv1_2,secure,TLSv1_1,TLSv1,SSLv3,SSLv2}
Установить поддерживаемые SSL/TLS версии. SSLv2,
SSLv3 и 'all' являются НЕБЕЗОПАСНЫМИ.
По умолчанию безопасные, которые TLS1.0+.
Контролирование вывода:
Некоторые из этих опций увеличивают количество генерируемых
значений для записи – если вы генерируете большие объёмы
данных, то используйте их с осторожностью.
-e Объяснить ответы
-f LOGFILE Журнал в файле.
-q Записывать в журнал полные запросы
-r Записывать в журнал полные ответы
-x Вывод в формате hexdump
--http2-framedump Выводить все полученные и отправленные фреймы HTTP/2

Руководство по mitmproxy

Страница man отсутствует.

Примеры запуска mitmproxy

Включаем IP форвардинг, поскольку система будет выступать в роли роутера:

echo 1 > /proc/sys/net/ipv4/ip_forward

Перенаправляем трафик с портов 80 и 443 интерфейса eth0 на порт 2139

iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 2139
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 443 -j REDIRECT --to-port 2139

Запускаем mitmproxy для прослушивания порта 2139.

mitmproxy -p 2139

Перед остановкой mitmproxy убедитесь, что вы не хотите сохранить какие-либо потоки. Если хотите, то w сделает это. Для выхода нажмите q и затем y.

Чтобы обратить сделанные ранее изменения iptables просто наберите:

iptables -t nat -F

(стереть/удалить таблицу целиком).

Для проверки:

iptables -t nat -L

Установка mitmproxy

Программа предустановлена в Kali Linux.

Установка в BlackArch

Программа предустановлена в BlackArch.

Информация об установке в другие операционные системы будет добавлена позже.

Скриншоты mitmproxy

mitmproxy

mitmproxy-intercept-options 

Инструкции по mitmproxy

Ссылки на инструкции будут добавлены позже.

Близкие программы:

  • Burp Suite (69.5%)
  • zaproxy (69.5%)
  • DNSChef (68.9%)
  • Intercepter-NG (62.3%)
  • Xerosploit (62.3%)
  • XssPy (RANDOM - 4.7%)
  • Рекомендуется Вам:

    Comments are Closed