Содержание статьи
Добиваться желаемого результата почти всегда можно несколькими способами. Это применимо и к области ИБ. Иногда для достижения цели можно брутить, самостоятельно искать дыры и разрабатывать сплоиты или же прислушаться к тому, что передается по сети. Причем последний вариант зачастую бывает оптимальным. Именно поэтому сегодня мы поговорим об инструментах, которые помогут вылавливать ценную для нас информацию из сетевого трафика, привлекая для этого MITM-атаки.
MITMf
Начнем с одного из наиболее интересных кандидатов. Это целый фреймворк для проведения man-in-the-middle атак, построенный на базе sergio-proxy. С недавнего времени включен в состав Kali Linux. Для самостоятельной установки достаточно клонировать репозиторий и выполнить пару команд:
# setup.sh
# pip install -r requirements.txt
Имеет расширяемую за счет плагинов архитектуру. Среди основных можно выделить следующие:
- Spoof — позволяет перенаправлять трафик при помощи ARP/DHCP-спуфинга, ICMP-редиректов и модифицировать DNS-запросы;
- Sniffer — этот плагин отслеживает попытки логина для различных протоколов;
- BeEFAutorun — позволяет автоматически запускать модули BeEF, исходя из типа ОС и браузера клиента;
- AppCachePoison — осуществляет атаку «отравление кеша»;
- SessionHijacking — угоняет сессии и сохраняет полученные куки в профиле огнелиса;
- BrowserProfiler — пытается получить список используемых браузером плагинов;
- FilePwn — позволяет подменять пересылаемые по HTTP файлы с помощью Backdoor Factory и BDFProxy;
- Inject — внедряет произвольный контент в HTML-страницу;
- jskeylogger — внедряет JavaScript-кейлоггер в клиентские страницы.
Если данного функционала тебе покажется недостаточно, то ты всегда можешь добавить свой, реализовав соответствующее расширение.
PuttyRider
Еще одна достойная внимания утилита. Правда, в отличие от всех остальных рассматриваемых сегодня инструментов, она очень узко специализирована. Как рассказывает сам автор проекта, на мысль создать такую утилиту его натолкнуло то, что во время проведения тестов на проникновение наиболее важные данные располагались на Linux/UNIX-серверах, к которым админы подключались по SSH/Telnet/rlogin. Причем в большинстве случаев получить доступ к машине администраторов было намного проще, чем к целевому серверу. Проникнув на машину сисадмина, остается только убедиться в наличии запущенного PuTTY и с помощью данной тулзы выстроить обратный мостик до атакующего.
Утилита позволяет не только снифать «общение» между админом и удаленным сервером (включая пароли), но и выполнять произвольные shell-команды в рамках данной сессии. Причем все это будет происходить абсолютно прозрачно для пользователя (админа). Если интересуют технические детали, например как реализовано внедрение в процесс PuTTY, рекомендую ознакомиться с презентацией автора.
sessionthief
Довольно старая утилита, появившаяся на свет более восьми лет назад. Предназначается для клонирования сессий путем кражи кукисов. Для угона сессий имеет базовые навыки обнаружения хостов (в случае подключения к открытой беспроводной сети или хабу) и проведения ARP poisoning. Единственная проблема — сегодня, в отличие от того, что было восемь лет назад, почти все крупные компании, такие как Yahoo или Facebook, используют SSL-шифрование, что делает эту тулзу абсолютно бесполезной. Несмотря на это, в Сети еще остается достаточно ресурсов, не использующих SSL, так что списывать утилиту со счетов пока рано. К ее плюсам можно отнести то, что она автоматически интегрируется в Firefox и создает отдельный профиль для каждой перехваченной сессии. Исходный код доступен в репозитории, а самостоятельно собрать ее можно с помощью такой последовательности команд:
# apt-get install build-essential libwxgtk2.8-dev libgtk2.0-dev libpcap-dev
# g++ $(wx-config --cppflags --libs) -lpcap -o sessionthief *.cpp
# setcap cap_net_raw,cap_net_admin=eip sessionthief
ProxyFuzz
Непосредственно к проведению MITM-атак ProzyFuzz не имеет никакого отношения. Как можно догадаться из названия, тулза предназначена для фаззинга. Это маленький недетерминированный сетевой фаззер, реализованный на питоне, который произвольно меняет содержимое пакетов сетевого трафика. Поддерживает протоколы TCP и UDP. Можно настроить, чтобы производился фаззинг только одной стороны. Пригодится, когда нужно быстренько проверить какое-нибудь сетевое приложение (или протокол) и разработать PoC. Пример использования:
python proxyfuzz -l <localport> -r <remotehost> -p <remoteport> [options]
Список опций включает в себя:
- w — задает число запросов, отправленных перед началом фаззинга;
- c — фаззить только клиента (иначе обе стороны);
- s — фаззить только сервер (иначе обе стороны);
- u — UDP-протокол (в противном случае используется TCP).
The Middler
Представленная в рамках конференции DEF CON утилита для проведения MITM-атак на различные протоколы. Альфа-версия поддерживала протокол HTTP и имела в своем арсенале три крутых плагина:
- plugin-beef.py — внедряет Browser Exploitation Framework (BeEF) в любой HTTP-запрос, приходящий из локальной сети;
- plugin-metasploit.py — внедряет в незашифрованные (HTTP) запросы IFRAME, который подгружает эксплойты для браузеров из Metasploit;
- plugin-keylogger.py — встраивает JavaScript обработчик события onKeyPress для всех текстовых полей, которые будут передаваться по HTTPS, заставляя браузер посимвольно отправлять вводимый пользователем пароль на сервер атакующего, до того как произойдет отправка всей формы.
The Middler не только автоматически анализирует сетевой трафик и находит в нем кукисы, но и самостоятельно запрашивает их со стороны клиента, то есть процесс автоматизирован по максимуму. Программа гарантирует сбор всех незащищенных аккаунтов в компьютерной сети (или публичном хотспоте), к трафику которой она имеет доступ. Для корректной работы программы в системе должны быть установлены следующие пакеты: Scapy, libpcap, readline, libdnet, python-netfilter. К сожалению, репозиторий давно не обновляется, поэтому новую функциональность придется добавлять самостоятельно.
Mitmproxy
Консольная утилита, которая в интерактивном режиме позволяет исследовать и модифицировать HTTP-трафик. Благодаря таким навыкам утилита используется не только пентестерами/хакерами, но и обычными разработчиками, применяющими ее, например, для отладки веб-приложений. С ее помощью можно получать подробную информацию о том, какие запросы делает приложение и какие ответы оно получает. Также mitmproxy может помочь в изучении особенностей функционирования некоторых REST API, в особенности плохо документированных.
Установка предельно проста:
$ sudo aptitude install mitmproxy
или
$ pip install mitmproxy
или же
$ easy_install mitmproxy
Стоит отметить, что mitmproxy позволяет также выполнять перехват HTTPS-трафика, выдавая клиенту самоподписанный сертификат. Хороший пример того, как настроить перехват и модификацию трафика, можно посмотреть по этой ссылке.
Intercepter-NG
Было бы странно, если бы этот легендарный инструмент не вошел в наш обзор. Даже если ты никогда его не юзал, то наверняка про него слышал (и просто обязан познакомиться с ним поближе) — он довольно часто встречается на страницах журнала. Полностью описывать его функционал не буду — во-первых, нас интересует именно MITM, во-вторых, такое описание займет всю статью.
Продолжение доступно только участникам
Вариант 1. Присоединись к сообществу «Xakep.ru», чтобы читать все материалы на сайте
Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», позволит скачивать выпуски в PDF, отключит рекламу на сайте и увеличит личную накопительную скидку! Подробнее
Вариант 2. Открой один материал
Заинтересовала статья, но нет возможности стать членом клуба «Xakep.ru»? Тогда этот вариант для тебя! Обрати внимание: этот способ подходит только для статей, опубликованных более двух месяцев назад.
Я уже участник «Xakep.ru»