Mitmproxy windows не работает

Обновлено: 04.07.2024

Отслеживание (последний вызов последний):
Файл "mitmweb", строка 2, в
Файл "d: amitmproxymitmproxy.toxcibuildlibsite-packagesPyInstallerloaderpyimod03_importers.py", строка 627, в exec_module
Файл "mitmproxytoolsmain.py", строка 22, в
Файл "d: amitmproxymitmproxy.toxcibuildlibsite-packagesPyInstallerloaderpyimod03_importers.py", строка 627, в exec_module
Файл "mitmproxytools_main.py", строка 14, в
Файл "d: amitmproxymitmproxy.toxcibuildlibsite-packagesPyInstallerloaderpyimod03_importers.py", строка 627, в exec_module
Файл "mitmproxymaster.py", строка 7, в
Файл "d: amitmproxymitmproxy.toxcibuildlibsite-packagesPyInstallerloaderpyimod03_importers.py", строка 627, в exec_module
Файл "mitmproxyaddonmanager.py", строка 8, в
Файл "d: amitmproxymitmproxy.toxcibuildlibsite-packagesPyInstallerloaderpyimod03_importers.py", строка 627, в exec_module
Файл "mitmproxyeventsequence.py", строка 5, в
Файл "d: amitmproxymitmproxy.toxcibuildlibsite-packagesPyInstallerloaderpyimod03_importers.py", строка 627, в exec_module
Файл "mitmproxyhttp.py", строка 7, в
Файл "d: amitmproxymitmproxy.toxcibuildlibsite-packagesPyInstallerloaderpyimod03_importers.py", строка 627, в exec_module
Файл "mitmproxynethttp__init__.py", строка 1, в
Файл "d: amitmproxymitmproxy.toxcibuildlibsite-packagesPyInstallerloaderpyimod03_importers.py", строка 627, в exec_module
Файл "mitmproxynethttprequest.py", строка 11, в
Файл "d: amitmproxymitmproxy.toxcibuildlibsite-packagesPyInstallerloaderpyimod03_importers.py", строка 627, в exec_module
Файл "mitmproxynethttpmessage.py", строка 5, в
Файл "d: amitmproxymitmproxy.toxcibuildlibsite-packagesPyInstallerloaderpyimod03_importers.py", строка 627, в exec_module
Файл "mitmproxynethttpencoding.py", строка 11, в
Файл "d: amitmproxymitmproxy.toxcibuildlibsite-packagesPyInstallerloaderpyimod03_importers.py", строка 627, в exec_module
Файл site-packagesbrotli.py, строка 8, в
ImportError: не удалось загрузить DLL [. ]
[xxxx] Не удалось выполнить скрипт mitmweb

Самый полезный комментарий

+1 за прокмон. У меня была установлена ​​свежая Win 8.1. Для меня это были MSVCP140.dll и api-ms-win-appmodel-runtime-l1-1-2.DLL , поэтому VC Redist 2015-2019 отсутствовал. После установки все работает нормально.

Все 20 Комментарий

Бинарные файлы 5.0.1 мне подходят. На какой версии Windows вы это используете?

10.0.17763.253 (Win10 RS5 [1809], обновление за октябрь 2018 г.) (64-разрядная версия)

4.0.4 работает как шарм [mitmweb --version]:
Mitmproxy: 4.0.2 бинарный
Python: 3.6.5
OpenSSL: OpenSSL 1.1.0h 27 марта 2018 г.
Платформа: Windows-10-10.0.17763

Спасибо вам двоим за то, что сообщили об этом. К сожалению, я не могу это воспроизвести. Не могли бы вы попробовать следующее?

  1. Очистить% TEMP%
  2. Запустите mitmweb (и пусть он рухнет)
  3. Убедитесь, что это создало папку _MEI XXXX.
  4. Теперь проверьте, есть ли в этой папке какие-либо файлы, в названии которых есть слово «brotli». Есть ли?

В качестве альтернативы запустите procmon и

Странный!
Я только что загрузил с сайта CRC: CEE87477 ], и теперь он работает нормально. : -O

mitmproxy-5.0.1-окна> mitmweb.exe --version
Mitmproxy: бинарный файл 5.0.1
Python: 3.7.5
OpenSSL: OpenSSL 1.1.0j 20 ноября 2018 г.
Платформа: Windows-10-10.0.17763-SP0

Извините! Неверная кнопка!

Странный!
Я только что загрузил с сайта CRC: CEE87477 ], и теперь он работает нормально. : -O

mitmproxy-5.0.1-окна> mitmweb.exe --version
Mitmproxy: бинарный файл 5.0.1
Python: 3.7.5
OpenSSL: OpenSSL 1.1.0j 20 ноября 2018 г.
Платформа: Windows-10-10.0.17763-SP0

Проблема сохраняется в Windows Server 2019 Datacenter (версия 1809, сборка 17763.1039).

Я не уверен, но, возможно, к тому времени мой каталог% TEMP% был очищен, так что это могло помочь. : -?

+1 за прокмон. У меня была установлена ​​свежая Win 8.1. Для меня это были MSVCP140.dll и api-ms-win-appmodel-runtime-l1-1-2.DLL , поэтому VC Redist 2015-2019 отсутствовал. После установки все работает нормально.

@mhils Я могу воспроизвести эту проблему в песочнице Windows, в которой используется версия 1903. Я пытаюсь следовать вашим инструкциям . Но я застрял на 3-м шаге - в %temp% ( AppData\Local\temp ) нет ничего вроде _MEI или brotli . Я понятия не имею, как использовать procmon для обнаружения проблемы. Не могли бы вы дать мне еще несколько предложений?

Обновлять:
Я вижу, что папка _MEI***** появляется, когда я запускаю mitmweb . Но он скоро исчезает, а затем приложение вылетает.

Обновлять:
После комментария @anadius моя проблема будет исправлена ​​после установки этого .

Мы выпустили mitmproxy v5.1.0 - попробуйте последние бинарные файлы.

@Kriechi

Похоже, проблема не исчезла.

Ручная установка это неизбежно , даже для нового 5.1.1 установщика Windows .

Спасибо - похоже, эта проблема возникла при переносе CI в GitHub Actions, где Windows SDK по умолчанию недоступен для рабочих.

Все еще та же ошибка для mitmproxy-ucrt-windows-installer.exe (2020-04-30T09: 03: 04.000Z):

Информация о версии:

Исправлено сразу после установки VC Redist.

Привет, я пытаюсь запустить MITMPROXY на Ubuntu 18.04 на виртуальной машине Windows 10.
Я уже сделал установку, но всегда получаю это при запуске:
Отслеживание (последний вызов последний):
Файл "/ usr / local / bin / mitmproxy", строка 11, в
sys.exit (mitmproxy ())
Файл "/usr/local/lib/python3.6/dist-packages/mitmproxy/tools/_main.py", строка 146, в mitmproxy
из консоли импорта mitmproxy.tools
Файл "/usr/local/lib/python3.6/dist-packages/mitmproxy/tools/console/__init__.py", строка 1, в
из мастера импорта mitmproxy.tools.console
Файл "/usr/local/lib/python3.6/dist-packages/mitmproxy/tools/console/master.py", строка 17, в
из дополнений импорта mitmproxy
Файл "/usr/local/lib/python3.6/dist-packages/mitmproxy/addons/__init__.py", строка 13, в
из mitmproxy.addons импортировать proxyauth
Файл "/usr/local/lib/python3.6/dist-packages/mitmproxy/addons/proxyauth.py", строка 3, в
импорт ldap3
Файл "/usr/local/lib/python3.6/dist-packages/ldap3/__init__.py", строка 139, в
из .core.connection import Connection
Файл "/usr/local/lib/python3.6/dist-packages/ldap3/core/connection.py", строка 44, в
from ..operation.compare import compare_operation, compare_request_to_dict
Файл "/usr/local/lib/python3.6/dist-packages/ldap3/operation/compare.py", строка 28, в
from ..operation.search import ava_to_dict
Файл "/usr/local/lib/python3.6/dist-packages/ldap3/operation/search.py", строка 41, в
из pyasn1.error import PyAsn1UnicodeDecodeError
ImportError: невозможно импортировать имя PyAsn1UnicodeDecodeError

Кто-нибудь знает это исправление или может кто-нибудь объяснить мне, как установить mitmproxy через двоичные пакеты?

@mhils Спасибо за ваши усилия. Боюсь, что проблема останется там (по-прежнему требуется VC Redist).
Но в случае, если это относится к моей машине, было бы хорошо, если бы кто-то другой мог провести вторую проверку.

Я могу подтвердить эту проблему на двух разных свежих машинах с Windows 10 с версией 5.1. Однако использование 4.0.4 работает….

Стандартное программное обеспечение для захвата пакетов:

Название программы захвата Поддерживаемая операционная система Применимая платформа Сложность отладки Уровень программных функций
fiddler windows/linux Интернет, приложение Общее много
mitmproxy windows/mac/linux Интернет, приложение Общее много
packetCapture Android Сторона приложения просто Меньше

Введение mitmproxy: может быть интегрирован с языком Python

  • Пересылайте запрос как обычный прокси, чтобы обеспечить связь между сервером и клиентом.
  • Перехватить запрос, изменить запрос, перехватить возврат, изменить возврат
  • Может загружать пользовательские скрипты Python


шаги установки:

Скачайте и установите с официального сайта.


Метод установки 2: установка через pip




Он сказал, что mitmproxy не может работать в Windows.

Но он также сказал, что есть 3 компонента: mitmproxy, mitmdump, mitmweb

Обычно используйте mitmproxy при захвате пакетов и используйте mitmdump при взаимодействии с python.

Обычно используйте mitmweb для захвата пакетов в Windows. В Linux для захвата пакетов обычно используется mitmproxy.

И windows, и linux могут использовать mitmdump для взаимодействия с python.

Интеллектуальная рекомендация


Краткое описание общих функций MPI

содержание 1, основная функция MPI 2, точка-точка функция связи 3, коллективная функция связи 1, основная функция MPI MPI_Init(&argc, &argv) Информировать системы MPI для выполнения всех необх.

Примечание 9: EL выражение


JVM память

концепция Виртуальная машина JVM управляет собственной памятью, которая разделяет память во многие блоки, наиболее распространенной для памяти стека и памяти кучи. 1 структура виртуальной машины JVM H.

Проблема сетевого запроса на Android 9.0

вЗапустите Android 9 (API Уровень 28) или вышеНа устройстве операционной системы Android, чтобы обеспечить безопасность пользовательских данных и устройств, использование по умолчанию для зашифрованно.


Учебная запись по Webpack (3) В статье рассказывается о создании webpack4.0.

предисловие Для изучения веб-пакета автор также предпринял много обходных путей. Есть много вещей, которые я хочу знать, но я не могу их найти. Автор поможет вам быстро начать работу. Цель этой статьи.

Прикрепленный файл

Fastboot на Яндекс диске.
Драйвера USB для Windows (для тех, у кого они не ставятся автоматически самой Windows) - ASUS Android USB drivers for Windows.zip ( 8.29 МБ )
На Windows XP драйвера от планшета не устанавливаются, судя по отзывам.

Официальные прошивки & Неофициальные на основе стоковых

Официальные прошивки находятся на сайте Asus в графе Driver & Tools / OS Android / Firmware

Deodex прошивка на базе стоковой WW 10.10.3.39. Внимательно читайте рекомендации по установке! Ставится из TWRP Recovery.

Deodex прошивка на базе стоковой WW 10.10.3.39. Внимательно читайте рекомендации по установке! Ставится поверх сервисной прошивки.


    (cm-13.0-20160820-SNAPSHOT-ZNH5YAO0J1) Не забываем про kernel для исключения бутлупов и перезагрузок во время включения планшета
    Google Drive cm-13.0-20160820-SNAPSHOT-ZNH5YAO0J1 + kernel

    Megacm-13.0-20161220-SNAPSHOT-ZNH5YAO3XK
    Яндекс.Дискcm-13.0-20161220-SNAPSHOT-ZNH5YAO3XK

Внимание! Ядра (kernel) от CM13 by yattodettaman прошивать не надо

Что делать, если планшет не видит внутреннюю память
Обновление прошивки с microsd карты
Прошивка с помощью microsd карты
Прошивка и восстановление через adb с помощью утилиты Fastboot
Восстановление через режим Fastboot сервисной прошивкой
Разблокировка загрузчика
Получение Root-прав
Получение Root-прав на неофициальных прошивках
Очень подробная инструкция по прошивке на Android 9 (основана на той, что ниже)
Подробная инструкция по прошивке из полного стока (для новичков)
Nitrogen OS 7.1 Замена Superuser на SuperSu (или если нет рут прав)
Восстановление планшета из состояния "кирпича Использовать инструкцию ТОЛЬКО в случае, если он не реагирует на комбинации зажатия кнопок питания и громкости вверх/вниз и не подает признаков жизни!
Восстановление IMEI
Универсальная инструкция по установке неофициальных прошивок

В: В чем отличие между прошивками для регионов WW,TW, US, JP?
О: Отличий практически нет. Это прошивки для разных регионов: WW для Европы, TW для Азии и US для США, JP для Японии. Отличие заключается в том, что приложения ориентированы на конкретный регион и на каждой из них присутствует какое-нибудь региональное приложение, практически бесполезное для других регионов.

В: В чем разница между пользовательской, официальной, инженерной и сервисной прошивками?
О: Пользовательская прошивка и есть официальная. А инженерной часто называют сервисную. В понятии сервис центров существуют пользовательская и сервисная прошивки. Сервисная напичкана всяким софтом для работнииков СЦ и не пригодна для ежедневного пользования.

Для CyanogenMod 13
Данные ядра нужны ТОЛЬКО для cm-13.0-20160820-SNAPSHOT-ZNH5YAO0J1 для устранения бутлупов и самопроизвольных перезагрузок.
Boot_CM-13.0_duma_13.09.2016
ME302KL_Boot_kernel_MM_20160908_TEST_A-B

Для всех прошивок на AOSP 7.1.X
Glitch Kernel

Ядро с фиксом половины экрана для прошивок на LineageOS 14.1
ElementalX_R1_IS

mitmproxy

Общая информация

Как это работает

/.mitmproxy создается набор файлов CA, на основе которых генерируются подменные сертификаты. Естественно, что браузер будет эти сертификаты определять как подозрительные, выдавая при каждой попытке установить SSL-соединение с помощью mitmproxy соответствующее предупреждение.

Чтобы этого предупреждения не было, можно добавить сертификат от mitmproxy в список сертификатов, используемых браузером (с подробными инструкциями можно ознакомиться здесь).
При выполнении этих двух условий клиент делает вывод о том, что устанавливаемое соединение является безопасным.

  1. Клиент устанавливает соединение с mitmproxy.
  2. Mitmproxy отправляет клиенту ответ с кодом 200 (соединение установлено).
  3. Клиент взаимодействует с mitmproxy так же, как и с удаленным сервером, и устанавливает SSL-соединение. Чтобы указать имя хоста, он использует SNI.
  4. Mitmproxy подключается к серверу и устанавливает SSL-соединение, используя указанное клиентом имя хоста.
  5. В ответе сервер передает SSL-сертификат, содержащий значения параметров CN и SAN, на основе которых затем будет создан подменный сертификат.
  6. Mitmproxy генерирует подменный сертификат и продолжает SSL-диалог с клиентом, приостановленный на этапе 3.
  7. Клиент отправляет запроc через установленное SSL-соединение.
  8. Mitmproxy передает запрос серверу через SSL-соединение, установленное на этапе 4.

Более наглядно процесс перехвата защищенного трафика можно представить в виде следующей графической схемы:

mitmproxy

Зачем это нужно

Само название mitmproxy происходит от названия одного из самых распространенных видов атак. Даже официальная документация к продукту изобилует такими словами, как «атака», «перехват» и подобными. Все это наводит на мысли о том, что этот инструмент может выступать в качестве орудия взлома. Конечно, mitmproxy (как и все продукты с аналогичным набором функций — так называемые сниферы) вполне может быть использован для нелегальных целей, но мы по вполне понятным причинам обсуждать это не будем и сосредоточимся на легальных вариантах использования.

Mitmproxy можно использовать, во-первых, для тестирования и отладки веб-приложений. С его помощью можно получать подробную информацию о том, какие запросы делает приложение и какие ответы оно получает. Также mitproxy может помочь в изучении особенностей функционирования некоторых REST API, в особенности плохо документированнных и использующих закрытые (и зачастую- очень подозрительные) технологии.

Во-вторых, Mitmproxy может работать в режиме прозрачного прокси с перехватом трафика, а это значит, что его можно использовать для анализа сетевой активности подозрительных приложений.

Тестируем Mitmproxy

Установка

Сегодня mitmproxy включен в репозитории linux-систем и может быть установлен при помощи стандартного менеджера пакетов:

Можно также установить его другими способами:

Первый запуск

Посмотрим на конкретных примерах, как работает mitmproxy. Откроем браузер (в нашем случае это Firefox) и в настройках (меню «Настройки» → «Сеть» → «Соединение») и в разделе «Ручная настройка сервиса прокси» укажем в качестве прокси-сервера машину, на которой установлен mitmproxy.

Теперь подключимся к серверу, на которому установлен mitmproxy, по ssh и выполним следующую команду:


Консоль после этого будет выглядеть так:

mitmproxy

Чтобы выйти из этого режима, нужно нажать клавишу q. Получить справку можно, нажав комбинацию клавиш, обозначающую вопросительный знак (?).

mitmproxy

Перемещаться по списку запросов можно, нажимая на клавиши со стрелками. Вернуться в основное окно можно, нажав на клавишу q. Чтобы просмотреть подробную информацию о некотором запросе, нужно подвести к нему курсор и нажать на клавишу Enter:

mitmproxy

В поле Request отображается подробная информация о запросе (запрашиваемый хост, ПО, с помощью которого осуществлялся запрос, передаваемые заголовки), а в поле Response — информация о полученном ответе.

Переключаться между этими полями можно при помощи клавиши Tab. Вернуться к списку запросов можно, нажав на клавишу q.

mitmproxy

Такие запросы не будут обрабатываться, если мы их не примем. Чтобы принять запрос, нужно подвести к нему курсор и нажать на клавишу а, а чтобы принять все перехваченные запросы — на клавишу A.

Более подробную информацию о запросе можно просмотреть, подведя к нему курсор и нажав на клавишу E (E- первая буква в английском слове event — «событие»). Будет открыт лог событий, который имели место при обработке этого запроса:

mitmproxy

И запросы, и ответы можно редактировать. Функция редактирования может оказаться полезной при тестировании: можно, например, смоделировать определенную ситуацию и увидеть, как будет вести себя приложение, получив от сервера определенный ответ.

Подведём курсор к интересующему нас запросу, подведём к нему курсор и нажмём на клавишу Enter. Затем подведём курсор к полю Request и нажмём на клавишу E (первая буква в слове edit — редактировать). В нижней части консоли появится меню редактирования:

mitmrpoxy

Изменить можно как запрос целиком (клавиша Q), так и его отдельные параметры: путь (клавиша P), URL (U), заголовок (H), форму (F), тело ® и метод (M).

Дополнительные функции

Аутентификация на прокси-сервере


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

Режим reverse proxy

В этом режиме все запросы отсылаются к вышестоящему серверу. Mitmproxy в данном случае можно использовать в качестве временной прослойки, наблюдая и перехватывая запросы.
Режим reverse proxy активируется при помощи команды:

Функция anticache

Mitmproxy может убирать из запроса заголовки if-modified-since и if-none-match. Благодаря этому всегда можно просмотреть полный ответ от сервера, даже если браузер сообщает, что запрашиваемый документ есть в кэше.

Активируется эта функция при помощи следующей команды:

Воспроизведение клиентских запросов

Воспроизвести клиентские запросы можно при помощи команды:

Mitmdump

Чтобы начать работу с mitmdump, нужно запустить mitmproxy в режиме прокси-сервера, а затем выполнить следующую команду:


Сохраненную информацию можно отфильтровать при помощи регулярных выражений, а затем сохранить в новый файл:


В приведенном примере mitmdump отбирает из файла 1 запросы, соответствующие определенному критерию (в нашем случае — POST-запросы), и записывает их в файл 2.

Mitmdump может считать уже сохраненную информацию о клиентских запросах из файла, воспроизвести эти запросы повторно, а результаты сохранить в новый файл:

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

Заключение

В этой статье мы дали краткий обзор возможностей mitmproxy. Для желающих узнать больше приводим несколько ссылок:

Блокчейн-фирма ConsenSys привлекает 200 миллионов долларов от HSBC, Third Point

Репозиторий PyPI удалил пакет Python под названием «mitmproxy2», который был идентичной копией официальной библиотеки «mitmproxy», но с «искусственно введенной» уязвимостью выполнения кода.

Пакет Copycat может обмануть разработчиков и заставить их переключиться на «более новую» версию

Вчера Максимилиан Хилс, один из разработчиков библиотеки Python mitmproxy, обратил всеобщее внимание на поддельный пакет mitmproxy2, загруженный в PyPI.

«mitmproxy2» по сути «то же самое, что и обычный mitmproxy, но с искусственной уязвимостью RCE».

Основная проблема Хилса, как он описывает BleepingComputer, заключалась в том, что некоторые разработчики программного обеспечения могли ошибочно принять «mitmproxy2» за новую версию «mitmproxy» и непреднамеренно ввести небезопасный код в свои приложения.

Хилс обнаружил этот имитационный пакет в том, что он называет «счастливой маленькой аварией», когда изучал несвязанную проблему хранилища PyPI.

Неясно также, сделал ли пользователь, опубликовавший пакет подражателя «mitmproxy2», умышленный злой умысел или просто из-за небезопасных методов кодирования.

«Чтобы было ясно, это действительно не самая опасная вещь, которую может сделать злоумышленник. Было бы гораздо проще просто добавить вредоносный код, который сразу запускается при установке».

«Проблема, конечно, в том, что если вы загрузите это в PyPI как« mitmproxy2 »с номером версии, который указывает, что он более новый / преемник, люди неизбежно загрузят его, не зная об изменениях».

Хилс поблагодарил волонтеров PyPI за оперативную реакцию на этот отчет. В течение четырех часов после твита Хилса «mitmproxy2» был удален.

Ударь крота: еще один подражатель появляется через несколько часов

При анализе «mitmproxy2» BleepingComputer обнаружил, что другой пакет « mitmproxy-iframe » появился в реестре PyPI менее чем через день после удаления «mitmproxy2».

Интересно, что mitmproxy-iframe также публикуется тем же пользователем, который стоит за «mitmproxy2», что ставит под сомнение намерения пользователя/

Потому что каждый может публиковать пакеты с открытым исходным кодом экосистем, угрозы безопасности и атаки типа вредоносных инъекций , Typosquatting , brandjacking и путаницами зависимостей резко выросли в последнее время.

Если реестры с открытым исходным кодом не проведут конкретную валидацию, эти «удары молота» обязательно будут повторяться.

Читайте также: