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
Ссылки на инструкции будут добавлены позже.
Comments are Closed