Сеть построена в основном на доверии. Большинство устройств не имеют никакого способа проверить, что устройство является тем, чем оно себя идентифицирует, до тех пор, пока устройство функционирует так, как ожидается.
В случае атаки «Человек по середине» мы можем злоупотреблять этим доверием, выдавая себя за беспроводную точку доступа. Выдавая себя за устройства, которые получают запросы данных, мы можем перехватывать и изменять эти данные. Это может быть опасно в случае личных данных, но также может быть забавным для розыгрыша друзей.
В сегодняшней статье я покажу как перехватывать и манипулировать трафиком из локальной сети, часто, когда сеть Wi-Fi подключается к беспроводному маршрутизатору.
Содержание
Шаг 1 Установка MITMf
Основным инструментом, который мы будем использовать для перехвата и изменения сетевого трафика, является MITMf или Man-in-the-Middle Framework. Он предназначен для использования в Linux, но может быть потенциально скомпилирован для использования в OS X или Windows.
Это инструмент командной строки, поэтому нам нужно немного узнать о том, как он работает, чтобы использовать его.
Мы можем найти его в репозиториях нескольких дистрибутивов, включая Kali Linux и BlackArch. После поиска apt-cache для подтверждения доступности пакета с помощью apt-cache search mitmf, мы можем установить MITMf, используя apt-get, как показано в примере ниже.
sudo apt-get install mitmf
Мы также можем установить пакет «mitmflib», если во время использования MITMf имеются ошибки библиотеки.
git clone https://github.com/byt3bl33d3r/MITMf
Если мы хотим построить MITMf из исходного кода, мы можем загрузить копию из Git Repository, выполнив следующее в окне терминала.
git clone https://github.com/byt3bl33d3r/MITMf
Если у вас возникли проблемы с зависимостями, остальные утилиты, необходимые для MITMf, можно установить, запустив скрипт установки. Для этого мы будем инициализировать и клонировать подмодули и устанавливать любые необходимые зависимости, скопировав текст ниже в окно терминала.
cd MITMf && git submodule init && git submodule update —recursive
pip install -r requirements.txt
Шаг 2 Создание MITMf
После установки MITMf мы можем подтвердить его функциональность, запросив страницу справки. Сделайте это, набрав следующее.
sudo mitmf —help
Программа должна запускаться как суперпользователь, либо будучи зарегистрированной как «root», либо используя sudo, как показано выше. Если страница справки успешно возвращена, мы можем начать добавлять наши параметры использования.
Первый флаг, который мы хотим выбрать, это наш флаг «-i» или сетевой интерфейс. Мы можем перечислить наши доступные сетевые интерфейсы, используя ifconfig, без аргументов.
Если мы будем запускать это на виртуальной машине, мы увидим мост адаптера программного обеспечения, к которому подключена виртуальная машина, а также адаптер loopback. Предполагая, что виртуальная машина находится на машине, которая успешно подключена к сети, используемый адаптер должен быть функциональным для запуска MITMf.
В приведенном выше случае сетевой адаптер равен eth0. На машине, непосредственно подключенной к сети, это указывает на то, что соединение связано с адаптером ethernet. По беспроводному соединению адаптер, скорее всего, будет wlan0 или аналогично названным адаптером.
В приведенном ниже примере машины-хозяина машина имеет как беспроводные, так и сетевые адаптеры, называемые eth0 и wlan0 соответственно.
Как только мы определили имя адаптера, подключенного к сети, которое мы намерены настроить, мы можем добавить это в нашу строку параметров MITMf, не запуская ее. В этом случае мы будем использовать wlan0.
sudo mitmf -i wlan0
Далее мы хотим определить IP-адрес сетевого шлюза или адрес маршрутизатора в нашей сети. Мы можем сделать это несколькими способами, одним из которых является использование netstat.
Чтобы защититься от взломов, нужно понимать, как они работают. Изучив этот хакерский курс, вы научитесь им противостоять.
В этом видеотуториале автор рассказывает, как уберечь свой девайс от сканирования извне. Чтобы RouterScan сработал, нужно само приложение RouterScan и внешний IP-адрес роутера. Спастись изменением пароля или перепрошивкой не выйдет. Можно включить NAT и настроить DMZ, добавив в него несуществующий хост в нашей сети с любым IP-адресом, например, 192.168.10.254. Если у вас уже установлен RouterScan, можете попробовать просканировать сеть и убедиться, что роутер больше не виден.
Данный хакерский курс охватывает самые популярные уязвимости. Дальше больше.
Во второй лекции на тему хакерства речь пойдет о DDoS-ах. DDoS (Distributed Denial of Service) – это вывод из строя сервиса, компьютера или сети при помощи множественных запросов. В первой показательной атаке участвует устаревший веб-сервер Apache и старая версия php. Во второй атаке автор показывает, как “забить” пропускную способность интернет-канала машины-жертвы.
Если хотите узнать, что делает в интернете ваш сосед – этот видеоурок для вас. Автор наглядно показывает, как можно при помощи обычного джека (разъема RJ45) и пары “крокодилов” влезть в канал жертвы. Информация по кабелю в 100 Мб канале интернета идет не по всем жилам, а по определенным цветам: бело-оранжевый + оранжевый используется для передачи, а бело-зеленый + зеленый на прием. К этим жилам и будем подключаться для кражи данных.
MITM-атака (ManInTheMiddle) или атака посредника – очень распространенный тип атак. Суть в том, что на отрезке между компьютером жертвы и сервером находится злоумышленник, который подменяет данные как от жертвы до сервера, так и в обратном направлении. В первой части этого видеогайда автор подробно, с визуализацией на доске, показывает весь процесс атаки.
Во второй части урока про атаку MITM автор по пунктам рассказывает, с чего начать. Тестовая атака будет производиться в одной подсети, т. е. и жертва, и атакующий находятся в одном сегменте сети. Для понимания всего происходящего и для собственных экспериментов рекомендуются минимальные познания в Linux и в работе с терминалом. Ролик очень занятный – мотивирует к дальнейшему совершенствованию собственных навыков.
Как и в прошлых видеолекциях, для своей хакерской деятельности автор юзает Kali Linux. Для поставленной задачи будет использоваться специальный софт – Aircrack-ng. Этот набор утилит позволяет сканировать доступные Wi-Fi сети, дампить и парсить трафик и еще много чего. В результате работы всей связки получаем 26-значный пароль от беспроводной сети.
Для проведения тестового взлома автор использует ноутбук для захвата трафика, точку доступа и пароль, которой нужно получить. Все так же используется замечательный пакет утилит Aircrack-ng, Kali Linux и немного Windows. Подбирать пароль будем утилитой oclHashcat, которая использует графический процессор для брут-форс.
И завершает хакерский курс туториал, который научит взламывать беспроводные сети, защищенные шифрованием WPA2-PSK. Нюанс взлома такой защиты состоит в том, что нужно дождаться или заставить пользователя переподключиться к интересующей нас сети, чтобы можно было увести его аутентификационные данные. Подготовительный этап немного похож на взлом сети с WEP, но дальнейшие действия намного интереснее.
Добиваться желаемого результата почти всегда можно несколькими способами. Это применимо и к области ИБ. Иногда для достижения цели можно брутить, самостоятельно искать дыры и разрабатывать сплоиты или же прислушаться к тому, что передается по сети. Причем последний вариант зачастую бывает оптимальным. Именно поэтому сегодня мы поговорим об инструментах, которые помогут вылавливать ценную для нас информацию из сетевого трафика, привлекая для этого MITM-атаки.
MITMf
Начнем с одного из наиболее интересных кандидатов. Это целый фреймворк для проведения man-in-the-m > репозиторий и выполнить пару команд:
Имеет расширяемую за счет плагинов архитектуру. Среди основных можно выделить следующие:
- Spoof — позволяет перенаправлять трафик при помощи ARP/DHCP-спуфинга, ICMP-редиректов и модифицировать DNS-запросы;
- Sniffer — этот плагин отслеживает попытки логина для различных протоколов;
- BeEFAutorun — позволяет автоматически запускать модули BeEF, исходя из типа ОС и браузера клиента;
- AppCachePoison — осуществляет атаку «отравление кеша»;
- SessionHijacking — угоняет сессии и сохраняет полученные куки в профиле огнелиса;
- BrowserProfiler — пытается получить список используемых браузером плагинов;
- FilePwn — позволяет подменять пересылаемые по HTTP файлы с помощью Backdoor Factory и BDFProxy;
- Inject — внедряет произвольный контент в HTML-страницу;
- jskeylogger — внедряет JavaScript-кейлоггер в клиентские страницы.
Если данного функционала тебе покажется недостаточно, то ты всегда можешь добавить свой, реализовав соответствующее расширение.
Запуск ARP spoofing атаки в MITMf
PuttyRider
Еще одна достойная внимания утилита. Правда, в отличие от всех остальных рассматриваемых сегодня инструментов, она очень узко специализирована. Как рассказывает сам автор проекта, на мысль создать такую утилиту его натолкнуло то, что во время проведения тестов на проникновение наиболее важные данные располагались на Linux/UNIX-серверах, к которым админы подключались по SSH/Telnet/rlogin. Причем в большинстве случаев получить доступ к машине администраторов было намного проще, чем к целевому серверу. Проникнув на машину сисадмина, остается только убедиться в наличии запущенного PuTTY и с помощью данной тулзы выстроить обратный мостик до атакующего.
Принцип работы PuttyRider
Утилита позволяет не только снифать «общение» между админом и удаленным сервером (включая пароли), но и выполнять произвольные shell-команды в рамках данной сессии. Причем все это будет происходить абсолютно прозрачно для пользователя (админа). Если интересуют технические детали, например как реализовано внедрение в процесс PuTTY, рекомендую ознакомиться с презентацией автора.
sessionthief
Довольно старая утилита, появившаяся на свет более восьми лет назад. Предназначается для клонирования сессий путем кражи кукисов. Для угона сессий имеет базовые навыки обнаружения хостов (в случае подключения к открытой беспроводной сети или хабу) и проведения ARP poisoning. Единственная проблема — сегодня, в отличие от того, что было восемь лет назад, почти все крупные компании, такие как Yahoo или Facebook, используют SSL-шифрование, что делает эту тулзу абсолютно бесполезной. Несмотря на это, в Сети еще остается достаточно ресурсов, не использующих SSL, так что списывать утилиту со счетов пока рано. К ее плюсам можно отнести то, что она автоматически интегрируется в Firefox и создает отдельный профиль для каждой перехваченной сессии. Исходный код доступен в репозитории, а самостоятельно собрать ее можно с помощью такой последовательности команд:
ProxyFuzz
Непосредственно к проведению MITM-атак ProzyFuzz не имеет никакого отношения. Как можно догадаться из названия, тулза предназначена для фаззинга. Это маленький недетерминированный сетевой фаззер, реализованный на питоне, который произвольно меняет содержимое пакетов сетевого трафика. Поддерживает протоколы TCP и UDP. Можно настроить, чтобы производился фаззинг только одной стороны. Пригодится, когда нужно быстренько проверить какое-нибудь сетевое приложение (или протокол) и разработать PoC. Пример использования:
Список опций включает в себя:
- 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, в особенности плохо документированных.
Установка предельно проста:
Стоит отметить, что mitmproxy позволяет также выполнять перехват HTTPS-трафика, выдавая клиенту самоподписанный сертификат. Хороший пример того, как настроить перехват и модификацию трафика, можнопосмотреть по этой ссылке.
Dsniff
ссылка на сайт
Dsniff — это не одна утилита, а целый тулсет, который изначально был написан для аудита сетей и проведения пентестов, но, как и все подобные инструменты, может быть использован и в незаконных целях: для сбора логинов/паролей, прослушивания чужого трафика и так далее. В его состав входят следующие инструменты:
• arpspoof — понятно без комментариев, для чего нужен;
• dnsspoof — работает подобно arpspoof и позволяет подделывать DNS-ответы для DNS-сервера локальной сети;
• dsniff — представляет собой перехватчик паролей (password sniffer), который распознает несколько различных протоколов, включая Telnet, FTP, SMTP, POP (Post Office Protocol), IMAP (Internet Message Access Protocol), HTTP, CVS, Citrix, SMB (Server Message Block), Oracle и многие другие;
• filesnarf — позволяет собрать файл из захваченного tcpdump’ом NFS-трафика;
• macof — заполнит локальную сеть случайными воображаемыми MAC-адресами в надежде, что коммутатор перестанет срабатывать, как полагается, и начнет действовать подобно хабу, позволяя инструменту dsniff действовать более успешно в сетевом окружении коммутатора;
• sshmitm — утилита для перехвата SSH-трафика, правда, умеет работать только с первой версией протокола.
И это еще не все. Если интересно, про остальные можешь почитать на официальном сайте. К большому сожалению, проект уже давно не обновляется, но большинство техник и инструментов все равно остаются актуальными.
Intercepter-NG
ссылка на сайт
Было бы странно, если бы этот легендарный инструмент не вошел в наш обзор.
Даже если ты никогда его не юзал, то наверняка про него слышал (и просто обязан познакомиться с ним поближе) — он довольно часто встречается на страницах журнала. Полностью описывать его функционал не буду — во-первых, нас интересует именно MITM, во-вторых, такое описание займет всю статью. Инструмент как нельзя лучше подходит для нашей задачи.
Во-первых, он реализует множество техник для того, чтобы «устроиться посередине». Во-вторых, обладает графическим интерфейсом, правда под винду, пользователям nix-систем придется довольствоваться консольной версией (но, как говорит автор, последнюю версию можно запустить под Wine и наслаждаться тем же GUI).
Ну а теперь поподробней про MITM. Вариантов тут действительно хватает. Есть классический ARP poison. Затем спуфинг (поддерживаются протоколы DNS/NBNS/LLMNR). DNS over ICMP Redirect, пришедшая на смену простому ICMP Redirect’у. DHCP MITM, SSL MITM + SSLStrip, WPAD, HTTP Injection, а также добавленный недавно SSH-MITM. К сожалению, из-за того что используемый способ маршрутизации трафика под Windows недееспособен в линуксе, сложные MITM’ы в последнем (SSLStrip, SSL MITM, SMB hijack, LDAP relay, HTTP injection) не работают. Но все остальные — прекрасно. Про то, как использовать эти техники, лучше почитать в официальной вики проекта.
Subterfuge
ссылка на сайт
У пользователей Windows есть такой замечательный инструмент для проведения MITM-атак, как Intercepter-NG: куча различных техник, графический интерфейс.