The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Выпуск mitmproxy 1.0, инструмента для анализа трафика HTTP/HTTPS

27.12.2016 12:44

После шести лет разработки представлен релиз проекта mitmproxy 1.0, в рамках которого развивается инструментарий для исследователей безопасности и разработчиков приложений, позволяющий отслеживать активность в рамках транзитных HTTP- и HTTPS-соединений. Mitmproxy может рассматриваться как специализированный инструмент, рассчитанный на перехват трафика внутри соединений, установленных по HTTPS, с возможностями по его инспектированию, модификации и повторному воспроизведению. Исходные тексты проекта написаны на языке Python и распространяются под лицензией MIT.

Для анализа HTTPS mitmproxy размещается на транзитном узле, на котором перехватывает запросы клиента и транслирует их в отправляемые от себя запросы к серверу. С запрошенным в процессе клиентского сеанса сервером mitmproxy устанавливает обычное HTTPS-соединение, а с клиентом от имени целевого хоста устанавливается фиктивное соединение с подставным SSL-сертификатом, который генерируется для клиента на лету. Принятый от клиента трафик перенаправляется целевому хосту, а получаемые ответы транслируются. Для того, чтобы подобный подставной сертификат не приводил к выводу браузером предупреждений о проблемах с безопасностью соединения, в систему пользователя предлагается установить корневой сертификат mitmproxy, что можно сделать как вручную, так и открыв в браузере специальный хост mitm.it.

Следует отметить, что основное назначение mitmproxy не проведение MITM-атак, а организация отслеживания трафика в корпоративных системах и диагностика проблем, например, отслеживание скрытой активности приложений. Для перенаправления трафика через mitmproxy поддерживается несколько методов, таких как указание адреса mitmproxy в качестве HTTP-прокси в настройках браузера, работа в виде SOCKS5-прокси, использование в роли обратного прокси перед HTTP-сервером и организация прозрачного проброса при помощи правил пакетного фильтра или заворачивания маршрутизации.

Система поддерживает HTTP/2, Websockets, нормализацию порядка следования пакетов в потоке, подключение скриптов-обработчиков для модификации трафика на лету, сохранение запросов для дальнейшего повторного воспроизведения, генерацию TLS-сертификатов для перехваченных сеансов, чистку заголовков о времени модификации для отключения кэширования на стороне клиента.

В состав mitmproxy входит несколько компонентов:

  • mitmproxy - реализация прокси, выполняющего перехват соединений и разбор сеансов TLS/SSL.
  • mitmdump - утилита командной строки для анализа трафика, работающая по аналогии с tcpdump;
  • pathoc и pathod - реализация обратных прокси (reverse proxy) для клиентов и серверов HTTP, позволяющих вносить изменения в содержимое HTTP-запросов и ответов (например, можно блокировать определённые запросы или подменять конфиденциальную информацию);
  • mitmweb - web-интерфейс для управления и анализа трафика через web-браузер.


  1. Главная ссылка к новости (https://corte.si/posts/code/mi...)
  2. OpenNews: Уязвимость, позволяющая вклиниться в стороннее TCP-соединение
  3. OpenNews: Представлен Sweet32, новый вид атаки на HTTPS и OpenVPN
  4. OpenNews: Стабильный релиз прокси-сервера Squid 3.5
  5. OpenNews: Проблемы с безопасностью при использовании протокола автоматической настройки прокси WPAD
  6. Обход блокировки трафика провайдером при помощи iptables
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/45772-mitmproxy
Ключевые слова: mitmproxy, proxy, mitm
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (42) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (-), 14:08, 27/12/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +7 +/
    > основное назначение mitmproxy не проведение MITM-атак

    Да-да-да, мы так и поверили

     
     
  • 2.3, тоже Аноним (ok), 14:16, 27/12/2016 [^] [^^] [^^^] [ответить]  
  • +21 +/
    Если некто может впихнуть вам в систему левый корневой сертификат - он вас уже поимел, говорить о безопасности бессмысленно.
    Если же вы сами ставите себе в рабочую систему левые сертификаты - "зачем нам враги, когда у нас есть такие друзья"?
     
     
  • 3.7, vantoo (ok), 15:36, 27/12/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Дома нет, но кому надо на рабочих машинах админ установит этот сертификат.
     
     
  • 4.8, Crazy Alex (ok), 15:54, 27/12/2016 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Тогда какой это MITM? Организация на своих машинах мониторит свой трафик
     
     
  • 5.16, тоже Аноним (ok), 17:19, 27/12/2016 [^] [^^] [^^^] [ответить]  
  • +/
    А те, кто сгенерил на своих дорвеях сертификаты, подпертые тем же корнем, просто аккуратно к этому мониторингу присоединяются.
     
     
  • 6.35, Аноним (-), 14:55, 29/12/2016 [^] [^^] [^^^] [ответить]  
  • +/
    > А те, кто сгенерил на своих дорвеях сертификаты, подпертые тем же корнем, просто
    > аккуратно к этому мониторингу присоединяются.

    если организация не в состоянии обеспечить защиту и контроль использования своего корневого сертификата - то, может, и свой дорвей конструировать незачем, проще подобрать супер-пароль q12345we от консоли местного админа-безопасника-специалиста по потряхиванию кардриджей в одном лице, и налаждаться готовым и удобным уеб-дваноль интерфейсом без лишней возни?

    Интересно вот - что нынче принято делать с cert pinning? Для андроида решения вроде есть и поддерживаются в кое-как актуальном виде, для ios, как я понимаю, только для старого, в линуксе готовых рецептов я не знаю, но вероятно, это несложно, в крайнем случае см в андроид, для винды - хрен да нихрена?

    P.S. нет, не переживайте так, я интересуюсь исключительно с образовательно-научной целью. Ваши данные мне в хрен не нужны.

     
  • 3.11, Аноним (-), 16:19, 27/12/2016 [^] [^^] [^^^] [ответить]  
  • +/
    > Если же вы сами ставите себе в рабочую систему левые сертификаты - "зачем нам враги, когда у нас есть такие друзья"?

    А если мне подебажить надо?


     
     
  • 4.17, тоже Аноним (ok), 17:20, 27/12/2016 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > А если мне подебажить надо?

    Мне слово "рабочую" нужно было капсом написать, да? Незаметно получилось.

     
  • 3.27, tensor (?), 05:40, 28/12/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Про DLP слыхали?
     
     
  • 4.40, zanswer CCNA RS (?), 06:35, 31/12/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Вестимо Data Loss Prevention, вряд ли о нём часто слышат не причастные к ИБ люди. ;)
     
  • 3.41, freehck (ok), 15:31, 31/12/2016 [^] [^^] [^^^] [ответить]  
  • +/
    > Если некто может впихнуть вам в систему левый корневой сертификат - он вас уже поимел, говорить о безопасности бессмысленно.

    Кстати да, именно этим наша компания поздравила сотрудников с Новым Годом. Всем виндовым машинкам впендюрили корпоративный сертификат автоматически, всем линуксоидам разослали письмо с просьбой подложить сертификат самостоятельно.

    Что интересно, у меня чувство, что я один отказался это сделать. Почему-то даже линуксоиды пожали плечами и сказали "ну окей, видимо так надо".

     
  • 2.39, Аноним (-), 21:50, 30/12/2016 [^] [^^] [^^^] [ответить]  
  • +/
    > Да-да-да, мы так и поверили

    Однако ж скрипткидизов с сабжем таки попадалось. Есть даже комплекты кульхацкера где для самых маленьких автоматизирован даже arp poisoning какой-нибудь или расстановка fake AP.

     

  • 1.2, Аноним (-), 14:09, 27/12/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Яровая одобряет.
     
  • 1.4, Аноним (-), 14:30, 27/12/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > Следует отметить, что основное назначение mitmproxy не проведение MITM-атак, а организация отслеживания трафика в корпоративных системах и диагностика проблем, например, отслеживание скрытой активности приложений.

    Таки да, или да?

     
     
  • 2.10, Аноним (-), 16:17, 27/12/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Удобно дебажить приложения на андроиде/айфоне, например.
     
     
  • 3.26, chinarulezzz (ok), 21:53, 27/12/2016 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Не понимаю за что тебя заминусовали. Верно же говоришь.
     
     
  • 4.43, Андрейка (?), 14:08, 03/01/2017 [^] [^^] [^^^] [ответить]  
  • +/
    Специально поднимал хост с прозрачным mitmproxy, когда он еще не был 1.0 в гейм-студии для того, чтобы дебажить приложения (т.к. на iphone/andriod ставить какой-то прокси с логированием запросов не реально), имитировать разрыв соединения или потерю пакетов (имитация мобильной сети) и т.д.

    Для гейм-дева например идеальный инструмент, если в качестве протокола используется http(s)

     

  • 1.5, Аноним (-), 14:33, 27/12/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    <newbmode>ну и как этой штукой сматреть пароли вкантактике?</newbmode>
     
     
  • 2.6, тоже Аноним (ok), 14:46, 27/12/2016 [^] [^^] [^^^] [ответить]  
  • –4 +/
    Шаг первый: рассказываешь пацанам из команды Вконтактика, как этой штукой классно проверять корпоративную сеть...
     

  • 1.12, proud_anon (?), 16:22, 27/12/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    "Исходные тексты проекта написаны на языке Python ... основное назначение mitmproxy не проведение MITM-атак, а организация отслеживания трафика в корпоративных системах.." ха-ха 3 раза - петон для корпоративнеых пользователей
     
     
  • 2.29, Аноним (-), 06:46, 28/12/2016 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Прикинь, Python, Java, C# чаще всего для создания корпоративных приложений юзают. Ибо дёшево и сердито.
     
  • 2.31, Аноним (-), 14:29, 28/12/2016 [^] [^^] [^^^] [ответить]  
  • +/
    > "Исходные тексты проекта написаны на языке Python ... основное назначение mitmproxy не
    > проведение MITM-атак, а организация отслеживания трафика в корпоративных системах.."
    > ха-ха 3 раза - петон для корпоративнеых пользователей

    То ли дело Borschelisp!!


     

  • 1.13, Аноним (-), 16:33, 27/12/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Lets Encrypt поддерживает?
     
     
  • 2.19, Аноним (-), 17:41, 27/12/2016 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Что несешь?
     
     
  • 3.23, Аноним (-), 19:00, 27/12/2016 [^] [^^] [^^^] [ответить]  
  • +/
    А что такого? Может кому-то надо свой таким образмо исследовать, не пропадать же удобному инструменту. В итоге вместо каки-то странных сертификатов будут вполне валидные от LE.
     
     
  • 4.24, rshadow (ok), 19:15, 27/12/2016 [^] [^^] [^^^] [ответить]  
  • +1 +/
    LE проверяет кому выдает сертификаты. На неподконтрольный домен нельзя получить сертификат.
     
  • 4.38, Аноним (-), 01:25, 30/12/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Если у тебя есть свой веб-сервер с доменом, и на него ты получил сертификат от Let's Encrypt, то да – можно выставить mitmproxy наружу, а за ним – уже настоящий веб-сервер.
     

  • 1.14, Аноним (-), 16:41, 27/12/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • –5 +/
    ага, на бидоне писать ТАКОЕ !!
    и задержки и издержки по ресурсам будут ТАКИЕ что ... ужос, ужос .
    даже на леговесных аналогах вроде руби(некоторые возились с движком, используемым также в metasploit, например. также  в корпоративных DLP и одной софтовой(по штилю)IDS он тоже используется).
     
     
  • 2.18, Аноним (-), 17:30, 27/12/2016 [^] [^^] [^^^] [ответить]  
  • +9 +/
    > ага, на бидоне писать ТАКОЕ !!
    > и задержки и издержки по ресурсам будут ТАКИЕ что ... ужос, ужос .
    > даже на леговесных аналогах вроде руби(некоторые возились с движком, используемым также в > metasploit, например. также  в корпоративных DLP и одной софтовой(по штилю)IDS он тоже используется).

    ruby - это легковесный аналог python?

     
  • 2.30, Аноним (-), 06:48, 28/12/2016 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Что. Ты. Несёшь?

    Криворукая макака и на асме напишет так, что тормозить будет даже на Зеоне.

     
     
  • 3.42, Аноним (-), 23:31, 31/12/2016 [^] [^^] [^^^] [ответить]  
  • +/
    > Криворукая макака и на асме напишет так, что тормозить будет даже на Зеоне.

    По крайней мере metasploit - кусок глюкавого гумна которое работает через раз. Нет, не эксплойты, само горбатое двигло. Что на питоне, что на рубях один хрен макеты программ. Далеко не всегда действующие.

     

  • 1.20, Аноним (-), 17:55, 27/12/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Ой, класс!!)) Это замена wireshark ???
     
     
  • 2.21, Аноним (-), 18:14, 27/12/2016 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Нет, это твоя мамка
     
  • 2.28, tensor (?), 05:41, 28/12/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Скорее, замена squid+ssl_bump и icap-мониторилки на питоновый комбайн.
     
  • 2.44, Андрейка (?), 14:11, 03/01/2017 [^] [^^] [^^^] [ответить]  
  • +/
    > Ой, класс!!)) Это замена wireshark ???

    Это дополнение к wireshark, чтобы более подробно http(s) смотреть, а не то убогое, что можно вытащить из libpcap

     

  • 1.22, commiethebeastie (ok), 18:39, 27/12/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Rp08aR одобряет.
     
  • 1.25, anonymous (??), 20:08, 27/12/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    Ничего нового. squid уже давно умеет делать mitm в https по описанному сценарию. Жаль только, что privoxy этого не умеет, как не умеет работать через squid
     
     
  • 2.45, Андрейка (?), 14:13, 03/01/2017 [^] [^^] [^^^] [ответить]  
  • +/
    > Ничего нового. squid уже давно умеет делать mitm в https по описанному
    > сценарию. Жаль только, что privoxy этого не умеет, как не умеет
    > работать через squid

    Только squid не умеет тебе показать все отфильтрованное в красивой веб-мордке и/или в консольке - это раз, а два - на лету определить правила для блокирования/модификации запросов по некоторым условиям

    Не, на squid все это можно, но с костялыми, геммороем и каждый раз конфиг менять, если ты решил логотип ВКшечки заменить на матерное слово своим юзерам

     

  • 1.33, DmA (??), 16:42, 28/12/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Вчера принесли ноутбук, на котором все браузеры сообщали, что "недоверенное соединение"!Время было правильно. Сначала подумал, что сертификаты доверенных центров потерялись... Смотрю, много их там. Начал присматриваться к сертификатам сайтов что-не так. Оказалось, что сертификаты на всех сайтах выдан одним центром -atompark. Начал искать информацию, оказалось, что в далёком 2012 году кто-то установил на ноутбук программу StaffCop Home, которая призвана следить за действиями пользователя и записывать куда он ходит в инете, все нажатые клавиши, что пишет в инете,  даже скриншоты рабочего стола. За 4 года эта программа накопила 45 гигабайт данных(из них 43 скриншоты...) . Для   подглядывания в https трафик mitm атака была осуществлена, а все сертификаты подменялись на выданные atompark. Вот у этих сертифкатов 11.11.2016 закончился ключ и  браузеры начали ругаться, что соединение недоверенное. При установке этой программы в 2012 году в доверенные был добавлен сертификат AtomPark и пользователь 4 года не замечал, что слежка за ним ведётся...
    На сайте staffcop.ru было написано,что удалить программу StaffCop Home можно только найдя в её папке файл unins000.exe . Но такого файла не оказалось :) Наверно предусмотрительно удалили его.
    Написал в тех поддежку staffcop как удалить их фигню, но спустя сутки так и не ответили они ничего. Хорошо не стал ждать ответа от них и сбросил через netsh настройки winsock и интерфейсов и отключил службы связанные с Staffcom(принадлежат AtomPark). Просто отключение  их спецслужб не помогает! Нужно сбрасывать настройки. Лучше это делать периодически...!
    Так что возможно на вашем компе уже кто-то установил нужный сертификат в доверенные пока вы отсутствовали дома или забыли ноутбук у друзей и за вами давно ведётся слежка...
     
     
  • 2.34, anon99990 (?), 12:55, 29/12/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Объясните, как может существовать валидный сертификат для всех сайтов? Разве сертификат выдается не для определенного домена и затем подписывается авторизующим центром? И таким образом должен действовать только на одном сайте?
     
     
  • 3.36, Аноним (-), 15:05, 29/12/2016 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Объясните, как может существовать валидный сертификат для всех сайтов?

    банально, юнош, банально..

    > Разве сертификат
    > выдается не для определенного домена и затем подписывается авторизующим центром?

    вот вам и впихивают левый "авторизующий центр" в конфиг.
    Дальше прокся строит нормальную сессию с target - но со своего интерфейса, не с твоего.
    полученное расшифровывает, тырит оттуда CP, сливает куда надо, а тебе генерит одноразовый сертификат для того домена, подписывает его _своим_ CA, который у тебя в доверенных - и ты ничего не замечаешь, долго, пока за тобой не приходят.

    Немного портит эту счастливую картину технология, именуемая certificate pinning (придуманная, как обычно, вовсе не для того чтоб сделать твою жизнь счастливой,хотя, разумеется, и рекламируемая в этом ключе, тихонечко опуская ее истинное назначение). К сожалению, если ты не гугль или MS, или не распространяешь CP, от нее больше вреда чем пользы.

     
  • 3.37, DmA (??), 00:32, 30/12/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Браузеры на компе при получении https сертификата сайта, проверяет время его действия сравния со временем текушего компьютера и смотрят, кем выдан этот сертификат. Если сертификат самоподписанный, то недоверяют ему, если просрочен(закончился или наоборот неначался, то тоже нет доверия, это часто бывает, когда нет время на компе сбилось), если сертификат подписан неким удостоверяющим центром, то проверяется есть ли такой удостоверяющий центр в хранилище сертификатов, если есть то сайт признаётся нормальным. Причём  браузерам будет  пофигу, что все сайты в Интернете будут подписаны всего одним удостоверяющим центром. Главное, чтобы сертификаты были не просрочеными!
    На каждом компьютере в системе установленны по умолчанию. десятки центров сертифкации, а ещё каждая программма, которая при своей установке требует админские права может ешё нафуговать нужные ей корневые удостоверящие центры!
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру