Mitmproxy windows как пользоваться

Обновлено: 02.07.2024

Добиваться желаемого результата почти всегда можно несколькими способами. Это применимо и к области ИБ. Иногда для достижения цели можно брутить, самостоятельно искать дыры и разрабатывать сплоиты или же прислушаться к тому, что передается по сети. Причем последний вариант зачастую бывает оптимальным. Именно поэтому сегодня мы поговорим об инструментах, которые помогут вылавливать ценную для нас информацию из сетевого трафика, привлекая для этого MITM-атаки.

MITMf

Начнем с одного из наиболее интересных кандидатов. Это целый фреймворк для проведения man-in-the-middle атак, построенный на базе sergio-proxy. С недавнего времени включен в состав Kali Linux. Для самостоятельной установки достаточно клонировать репозиторий и выполнить пару команд:

Имеет расширяемую за счет плагинов архитектуру. Среди основных можно выделить следующие:

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

Запуск ARP spoofing атаки в MITMf

Запуск ARP spoofing атаки в MITMf

PuttyRider

Еще одна достойная внимания утилита. Правда, в отличие от всех остальных рассматриваемых сегодня инструментов, она очень узко специализирована. Как рассказывает сам автор проекта, на мысль создать такую утилиту его натолкнуло то, что во время проведения тестов на проникновение наиболее важные данные располагались на Linux/UNIX-серверах, к которым админы подключались по SSH/Telnet/rlogin. Причем в большинстве случаев получить доступ к машине администраторов было намного проще, чем к целевому серверу. Проникнув на машину сисадмина, остается только убедиться в наличии запущенного PuTTY и с помощью данной тулзы выстроить обратный мостик до атакующего.

Принцип работы PuttyRider

Принцип работы PuttyRider

Утилита позволяет не только снифать «общение» между админом и удаленным сервером (включая пароли), но и выполнять произвольные shell-команды в рамках данной сессии. Причем все это будет происходить абсолютно прозрачно для пользователя (админа). Если интересуют технические детали, например как реализовано внедрение в процесс PuTTY, рекомендую ознакомиться с презентацией автора.

Архитектура PuttyRider

sessionthief

Довольно старая утилита, появившаяся на свет более восьми лет назад. Предназначается для клонирования сессий путем кражи кукисов. Для угона сессий имеет базовые навыки обнаружения хостов (в случае подключения к открытой беспроводной сети или хабу) и проведения ARP poisoning. Единственная проблема — сегодня, в отличие от того, что было восемь лет назад, почти все крупные компании, такие как Yahoo или Facebook, используют SSL-шифрование, что делает эту тулзу абсолютно бесполезной. Несмотря на это, в Сети еще остается достаточно ресурсов, не использующих SSL, так что списывать утилиту со счетов пока рано. К ее плюсам можно отнести то, что она автоматически интегрируется в Firefox и создает отдельный профиль для каждой перехваченной сессии. Исходный код доступен в репозитории, а самостоятельно собрать ее можно с помощью такой последовательности команд:

Sessionthief

ProxyFuzz

Непосредственно к проведению MITM-атак ProzyFuzz не имеет никакого отношения. Как можно догадаться из названия, тулза предназначена для фаззинга. Это маленький недетерминированный сетевой фаззер, реализованный на питоне, который произвольно меняет содержимое пакетов сетевого трафика. Поддерживает протоколы TCP и UDP. Можно настроить, чтобы производился фаззинг только одной стороны. Пригодится, когда нужно быстренько проверить какое-нибудь сетевое приложение (или протокол) и разработать PoC. Пример использования:

Список опций включает в себя:

  • w — задает число запросов, отправленных перед началом фаззинга;
  • c — фаззить только клиента (иначе обе стороны);
  • s — фаззить только сервер (иначе обе стороны);
  • u — UDP-протокол (в противном случае используется TCP).

The Middler

The Middler не только автоматически анализирует сетевой трафик и находит в нем кукисы, но и самостоятельно запрашивает их со стороны клиента, то есть процесс автоматизирован по максимуму. Программа гарантирует сбор всех незащищенных аккаунтов в компьютерной сети (или публичном хотспоте), к трафику которой она имеет доступ. Для корректной работы программы в системе должны быть установлены следующие пакеты: Scapy, libpcap, readline, libdnet, python-netfilter. К сожалению, репозиторий давно не обновляется, поэтому новую функциональность придется добавлять самостоятельно.

Mitmproxy

Установка предельно проста:

Mitmproxy

Dsniff

ссылка на сайт
Dsniff — это не одна утилита, а целый тулсет, который изначально был написан для аудита сетей и проведения пентестов, но, как и все подобные инструменты, может быть использован и в незаконных целях: для сбора логинов/паролей, прослушивания чужого трафика и так далее. В его состав входят следующие инструменты:

Intercepter-NG

ссылка на сайт
Было бы странно, если бы этот легендарный инструмент не вошел в наш обзор.
Даже если ты никогда его не юзал, то наверняка про него слышал (и просто обязан познакомиться с ним поближе) — он довольно часто встречается на страницах журнала. Полностью описывать его функционал не буду — во-первых, нас интересует именно MITM, во-вторых, такое описание займет всю статью. Инструмент как нельзя лучше подходит для нашей задачи.

Во-первых, он реализует множество техник для того, чтобы «устроиться посередине». Во-вторых, обладает графическим интерфейсом, правда под винду, пользователям nix-систем придется довольствоваться консольной версией (но, как говорит автор, последнюю версию можно запустить под Wine и наслаждаться тем же GUI).

Subterfuge

ссылка на сайт
У пользователей Windows есть такой замечательный инструмент для проведения MITM-атак, как Intercepter-NG: куча различных техник, графический интерфейс.

инструменты для mitm атак

После чего запустится гуишный установщик, который сделает процесс инсталляции максимально простым. Кстати, утилита имеет веб-интерфейс, поэтому сначала запускаем тулзу командой subterfuge, а затем открываем браузер и вводим в адресной строке 127.0.0.1. Можно сразу же нажать на Start и ждать, пока Subterfuge будет собирать пароли, которые летают по твоей локалке. Или же можно настроить точечную атаку на конкретный хост, для этого есть кнопка Settings. Еще несколько опций, достойных упоминания:

Провести mitm атаку с помощью Subterfuge

KARMA

ссылка на сайт
Ну а теперь немного об инструментах, позволяющих пошалить в беспроводных сетях. Итак, KARMA — это набор утилит для оценки безопасности беспроводных клиентов, представляет собой беспроводной снифер, который, пассивно прослушивая 802.11 Probe Request фреймы, позволяет обнаруживать клиентов и их предпочтительные/доверенные сети. А затем проводит атаку Evil Twin, чтобы организовать MITM.

Karma для проведения mitm атаки

То есть создается копия беспроводной точки доступа, находящейся в радиусе приема пользователя, тем самым оригинальная точка доступа подменяется двойником, к которому подключается пользователь, открывая злоумышленнику возможность доступа к конфиденциальной информации. Все дело в том, что большинство беспроводных устройств, в том числе ноутбуки, смартфоны, планшеты, автоматически подключаются к беспроводным AP, которые они запомнили. Не вдаваясь в подробности: когда ты включаешь свой ноут, сетевая карточка автоматически отсылает запросы, спрашивающие «Такая-то беспроводная сеть здесь?» Как ты понял, для того чтобы встроиться в середину, надо на такой запрос ответить положительно. Кстати говоря, этот принцип нашел применение в таком девайсе, как WiFi Pineapple Mark IV. Также KARMA используют еще несколько небезызвестных проектов: Pwnie Express, Kali Linux, Snoopy, Jasager.

AirJack

ссылка на сайт
Одна из лучших, по мнению многих экспертов, утилит (а вернее, это сразу пакет утилит) для генерации и инъекции различных 802.11 фреймов. Изначально создавалась как инструмент разработчика — для захвата и внедрения пакетов в беспроводных сетях. Но, как обычно, в умелых руках AirJack превращается в мощное оружие, которое умеет инжектить фреймы прекращения сеанса (довольно распространенная техника DoS- и MITM-атак), обнаруживать скрытые SSID и выполнять некоторые другие полезные функции.

Ettercap

Ну а эта утилита вообще одно из первых, что должно приходить на ум, как только услышишь
«MITM-атака». Инструмент довольно старый, но продолжает активно обновляться, что не может не радовать. Подробно рассказывать про его возможности смысла нет, за четырнадцать лет существования он не раз освещался в сети. Вот к примеру в руководстве наподобие этого:

ну или инструкцию с нашего сайта:

SUPERFISH

В довольно интересную ситуацию попала компания Lenovo.
Она предустанавливала на свои ноутбуки расширение Superfish, задачей которого было внедрять таргетированную рекламу в соответствие с пользовательскими интересами. Обнаружили такую фичу юзеры, не поленившиеся заглянуть в свойства SSL-сертификатов при установке защищенных соединений. Оказалось, что все сертификаты выданы некоей корпорацией Superfish Inc. Функции расширения Superfish заключались в следующем:
• взлом защищенных соединений с помощью атаки MITM;
• отображение собственного фальшивого сертификата (SHA-1, 1024-битный RSA) вместо настоящего;
• отслеживание действий пользователя;
• сбор персональной информации и загрузка ее на удаленный сервер;
• внедрение рекламы на посторонние веб-страницы;
• отображение всплывающих окон с рекламой.
Как видишь, даже крупные компании не брезгуют проведением MITM-атак. Обнадеживает лишь то, что компания публично покаялась в установке троянской программы на свои ноутбуки и дала обещание больше так не делать.

На последок..

Как обычно, мы рассмотрели не все утилиты, а лишь наиболее популярные, есть еще немало малоизвестных проектов, о которых мы, возможно, как-нибудь поговорим. Как видишь, недостатка в инструментах для проведения MITM-атак не наблюдается, причем, что бывает не так уж часто, одна из крутых тулз реализована под винду. Про nix-системы и говорить нечего — целое разнообразие. Так что, думаю, ты всегда сможешь найти подходящий инструмент для угона
чужих credentials. Упс, то есть для проведения тестирований.

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. Для желающих узнать больше приводим несколько ссылок:

Для его запуска необходимо всего ничего:

- поставить mitmproxy одним из способов:

- запустить в режиме прокси-сервера:

Если все зависимости установлены, появится пустое окно, выйти из него можно по кнопке Q или Ctrl+C, а по знаку вопроса «?» можно получить справку;

Теперь, если все сделано правильно, в окне mitmproxy появится лог запросов.

После того, как я запустил скрипт указанным выше способом, в mitmproxy появились запросы:


По ним можно перемещаться стрелками и выбирать для просмотра нажатием кнопки Enter:


Между вкладками Request/Response можно перемещаться кнопкой Tab. Перехваченный Response:


Выход в основное окно — «q», очистка истории запросов, если их много — «C». Отфильтровать запросы по регэкспу — кнопка «l» (первая буква в слове «limit»).


В args с помощью внешнего редактора (конечно, vim) заменили "q": "1" на "q": "100500" :


И нажали «a». В результате соединение завершилось, клиенту вернулся «неправильный» ответ и тестовая функция завершилось с ошибкой:

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

P.S. Если при запуске mitmproxy возникает ошибка импорта Image из PIL, например:

это значит, что у вас устаревшая версия mitmproxy и нужно применить патч.


Добиваться желаемого результата почти всегда можно несколькими способами. Это применимо и к области ИБ. Иногда для достижения цели можно брутить, самостоятельно искать дыры и разрабатывать сплоиты или же прислушаться к тому, что передается по сети. Причем последний вариант зачастую бывает оптимальным. Именно поэтому сегодня мы поговорим об инструментах, которые помогут вылавливать ценную для нас информацию из сетевого трафика, привлекая для этого MITM-атаки.

MITMf

Начнем с одного из наиболее интересных кандидатов. Это целый фреймворк для проведения man-in-the-middle атак, построенный на базе sergio-proxy. С недавнего времени включен в состав Kali Linux. Для самостоятельной установки достаточно клонировать репозиторий и выполнить пару команд:

Имеет расширяемую за счет плагинов архитектуру. Среди основных можно выделить следующие:

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

Запуск ARP spoofing атаки в MITMf

Запуск ARP spoofing атаки в MITMf

PuttyRider

Еще одна достойная внимания утилита. Правда, в отличие от всех остальных рассматриваемых сегодня инструментов, она очень узко специализирована. Как рассказывает сам автор проекта, на мысль создать такую утилиту его натолкнуло то, что во время проведения тестов на проникновение наиболее важные данные располагались на Linux/UNIX-серверах, к которым админы подключались по SSH/Telnet/rlogin. Причем в большинстве случаев получить доступ к машине администраторов было намного проще, чем к целевому серверу. Проникнув на машину сисадмина, остается только убедиться в наличии запущенного PuTTY и с помощью данной тулзы выстроить обратный мостик до атакующего.

Принцип работы PuttyRider

Принцип работы PuttyRider

Утилита позволяет не только снифать «общение» между админом и удаленным сервером (включая пароли), но и выполнять произвольные shell-команды в рамках данной сессии. Причем все это будет происходить абсолютно прозрачно для пользователя (админа). Если интересуют технические детали, например как реализовано внедрение в процесс PuTTY, рекомендую ознакомиться с презентацией автора.

Архитектура PuttyRider

Архитектура PuttyRider

sessionthief

Довольно старая утилита, появившаяся на свет более восьми лет назад. Предназначается для клонирования сессий путем кражи кукисов. Для угона сессий имеет базовые навыки обнаружения хостов (в случае подключения к открытой беспроводной сети или хабу) и проведения ARP poisoning. Единственная проблема — сегодня, в отличие от того, что было восемь лет назад, почти все крупные компании, такие как Yahoo или Facebook, используют SSL-шифрование, что делает эту тулзу абсолютно бесполезной. Несмотря на это, в Сети еще остается достаточно ресурсов, не использующих SSL, так что списывать утилиту со счетов пока рано. К ее плюсам можно отнести то, что она автоматически интегрируется в Firefox и создает отдельный профиль для каждой перехваченной сессии. Исходный код доступен в репозитории, а самостоятельно собрать ее можно с помощью такой последовательности команд:

ProxyFuzz

Непосредственно к проведению MITM-атак ProzyFuzz не имеет никакого отношения. Как можно догадаться из названия, тулза предназначена для фаззинга. Это маленький недетерминированный сетевой фаззер, реализованный на питоне, который произвольно меняет содержимое пакетов сетевого трафика. Поддерживает протоколы TCP и UDP. Можно настроить, чтобы производился фаззинг только одной стороны. Пригодится, когда нужно быстренько проверить какое-нибудь сетевое приложение (или протокол) и разработать PoC. Пример использования:

Список опций включает в себя:

  • w — задает число запросов, отправленных перед началом фаззинга;
  • c — фаззить только клиента (иначе обе стороны);
  • s — фаззить только сервер (иначе обе стороны);
  • u — UDP-протокол (в противном случае используется TCP).

The Middler

The Middler не только автоматически анализирует сетевой трафик и находит в нем кукисы, но и самостоятельно запрашивает их со стороны клиента, то есть процесс автоматизирован по максимуму. Программа гарантирует сбор всех незащищенных аккаунтов в компьютерной сети (или публичном хотспоте), к трафику которой она имеет доступ. Для корректной работы программы в системе должны быть установлены следующие пакеты: Scapy, libpcap, readline, libdnet, python-netfilter. К сожалению, репозиторий давно не обновляется, поэтому новую функциональность придется добавлять самостоятельно.

Mitmproxy

Установка предельно проста:

Intercepter-NG

Было бы странно, если бы этот легендарный инструмент не вошел в наш обзор. Даже если ты никогда его не юзал, то наверняка про него слышал (и просто обязан познакомиться с ним поближе) — он довольно часто встречается на страницах журнала. Полностью описывать его функционал не буду — во-первых, нас интересует именно MITM, во-вторых, такое описание займет всю статью.

Продолжение доступно только участникам

Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», позволит скачивать выпуски в PDF, отключит рекламу на сайте и увеличит личную накопительную скидку! Подробнее

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