MITM атаки

bp17

Введение

Приветствуем дорогих читателей! Мы продолжаем рубрику статей «Без про-v-ода» посвящённую беспроводным технологиям, атакам на них и методами защиты. В этой статье мы рассмотрим различные инструменты для MITM-атак и проверим актуальность некоторых на сегодняшний день, и на основе этой проверки найдём лучший.

Материал написан командой телеграм канала Life-Hack — Хакер

Дисклеймер: Все данные предоставленные в статье, взяты из открытых источников, не призывают к действию и являются только лишь для ознакомления, и изучения механизмов используемых технологий.

Принцип проведения MITM атак

MITM-атака (Man-in-the-Middle) представляет собой кибератаку, при которой злоумышленник перехватывает и потенциально изменяет коммуникацию между двумя сторонами, используя такие методы, как ARP и DNS спуфинг для подмены адресов, что позволяет ему перехватывать и анализировать данные, а также изменять передаваемую информацию перед её отправкой конечному получателю.

  1. Подготовка окружения:
    • Злоумышленник подготавливает необходимые инструменты. Это могут быть программы для спуфинга (например, Ettercap) и инструменты для мониторинга трафика (например, Wireshark или tcpdump).

  2. Спуфинг:
    ARP Spoofing: Злоумышленник отправляет ложные ARP (Address Resolution Protocol) сообщения в локальную сеть. Цель — связать свой MAC-адрес с IP-адресом жертвы, а также эмитировать отправителя. Это позволяет злоумышленнику перехватывать пакеты, отправляемые жертве.

DNS Spoofing: Злоумышленник может подменить DNS-записи, чтобы направить трафик жертвы на свой сервер вместо легитимного. Это позволяет ему контролировать доступ к веб-сайтам.

  1. Запуск инструмента для мониторинга трафика: • После успешного спуфинга злоумышленник запускает инструмент для мониторинга трафика. Этот инструмент будет перехватывать передаваемые данные между жертвой и целевым сервером.

• Программное обеспечение может захватывать пакеты, анализировать их и даже записывать содержимое передаваемых данных (например, логины, пароли, сообщения).

  1. Перехват и анализ данных:

• Это может включать в себя нешифрованный трафик, а также попытки расшифровки трафика, если используются слабые протоколы шифрования.

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

Сеть для осуществления атак

В качестве сети будет выступать наша тестовая сеть состоящая из хоста, атакующего и жертву. Под следующими IP-адресами:

192.168.43.1 — устройство-хост являющееся роутером в нашей сети.

192.168.43.83 — атакующий.

192.168.43.193 — жертва.

Bettercap

871de32486c571472f09588158267123.png

Bettercap — это мощный, легко расширяемый и портативный фреймворк, написанный на JavaScript 62.2% и Go 37.8%, который нацелен на предоставление исследователям, красным командам и реверс-инженерам, простого и универсального решения со всеми функциями, которые могут понадобиться для проведения разведки и атаки на WiFi сети, устройства Bluetooth Low Energy, CAN-шину, беспроводные HID-устройства и Ethernet-сети.

Установка и использование

В Kali Linux этот инструмент можно установить сразу из репозиториев командой:

apt install bettercap

Как можно увидеть по описанию, инструмент многофункциональный и является неким швейцарским ножом, в рамках этой статьи мы рассмотрим его как инструмент проведения MITM атак…

Для начала запустим инструмент и просканируем локальную сеть на наличие устройств следующими командами:

net.recon on
net.probe on
net.show
net.probe off

ec63015179fe36991f14ebfef8bac6e5.png

Для запуска такой атаки нам потребуется несколько модулей для предварительной настройки и запуска. А конкретно модули: http.proxy, net.sniff и arp.spoof.

Настройка будет следующей:

set http.proxy.sslstrip true
set http.proxy.sslstrip.useIDN true
set net.sniff.verbose false
set arp.spoof.targets 192.168.0.0/24
set arp.spoof.fullduplex true

552d470d107b82c096bcbd1fbe83316b.png

Теперь остаётся только запустить эти модули и трафик сразу полетит.

net.sniff on
http.proxy on
arp.spoof on

944e3a5687791c275efcf0267ea47037.png

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

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

Запустим его с параметром -i чтобы указать нужный интерфейс.

driftnet -i wlan0

346905189b5f25c2637ad1a684c16521.png

При запуске должно запуститься чёрное окно, в котором и будут отображаться все изображения. К примеру зайдём на сайт сервер органов государственной власти России.

208485c6b0d452124429f5fa959ab7ec.png

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

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

bb1b4e6ab4a1ebe71c6b8e3968f6816a.png

Краткое заключение к инструменту

Bettercap очень мощный и самодостаточный инструмент, в нём имеются как функционал спуфера, так и функции отображения всего трафика, но вот к сожалению атаки внедрения js в страницы по какой-то причине не работают, если у кого-то имеется практический пример применения bettercap 2.33 в успешной связке с инструментом Beef-xss, очень ждём в комментариях.

Mitmproxy+Ettercap

Исходя из принципов проведения MITM у нас уже имеется два отдельных инструмента под задачи спуфинга и мониторинга трафика.

Инструмент для спуфинга Ettercap

b0611cfb4882de42fe37bc826c8bc18c.png

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

Установка и использование

Для установки на Kali Linux потребуется установить его из официальных репозиториев.

apt install ettercap-graphical

Перед использованием Ettercap нам потребуется перевести атакующий ПК в режим пересылки (форвардинга) при помощи команды:

echo "1" > /proc/sys/net/ipv4/ip_forward

В рамках статьи мы будем использовать графическую версию инструмента. После установки запускаем инструмент следующей командой:

ettercap -G

fa5cf4a02a932822465e1b584c1fbd22.png

Вот и интерфейс инструмента. Нажимаем галочку и после этого нам потребуется запустить сканирование сети чтобы выбрать цели 1 и 2. Нажимаем на лупу и после загрузки на значок напоминающий сервер.

659e0ef36b1c43c4fec7b8e6900300a1.png

После нам потребуется выбрать две цели, первой будет служить IP хоста, второй будет IP целевого устройства. После добавления нажимаем на значок напоминающий землю и в меню выбираем ARP poisoning.

b1b090a15635837b18a627cd5412ef45.png

Далее будет стоять галочка на пункте Sniff remote connections, если не стоит — поставьте, если стоит — оставляйте так и нажимаем OK.

3fb41a39d75fa7e7f8b8b6677fb784b1.png

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

Инструмент для мониторинга Mitmproxy

fe80098dccd8afc8beafb51af67ca33e.png

Mitmproxy — это интерактивный перехватывающий прокси с поддержкой SSL/TLS и консольным интерфейсом для HTTP/1, HTTP/2 и WebSockets.

Установка и использование

Так же как и инструменты выше, mitmproxy в Kali Linux можно установить из официальных репозиториев.

apt install mitmproxy

Далее нам осталось запустить команду для перенаправления на порт 8080 всех входящих TCP-пакетов на порт 80:

iptables -t nat -A PREROUTING -p tcp --destination-port 80 -j REDIRECT --to-port 8080

Всё что нам остаётся сделать, это запустить сам инструмент посредством команды mitmproxy.

1f79b4284d2019000c1f04d389980182.png

Таким образом будет выглядеть интерфейс инструмента. Mitmproxy интуитивно понятен, можно просто кликнуть ЛКМ по интересующему нас пакету и нам высветиться вся подробная информация о нём. К примеру разберём пакет POST в котором хранятся авторизационные данные от аккаунта на сайте.

450d9a57379bb11dc6b8166056e46849.png

В пункте Request URLEncoded form сразу в удобном формате хранятся желанные нами строчки авторизации в виде логина и пароля.

de1d7277e760bb132a8afabff388e616.png

В пункте Response хранится содержимое страницы. А в пункте Detail информация о времени обмена пакетами с сайтом.

У mitmproxy имеется множество удобного функционала, например: фильтр, маркировка, редактор запросов, захват запросов, дубликат и пр.

Краткое заключение к инструменту

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

BurpSuite+Ettercap

Инструмент для мониторинга и MITM BurpSuite

2e16e245c8b5f905be946f26ea43b50b.png

Burp Suite — это мультитул (швейцарский нож) для проведения аудита безопасности веб-приложений. Содержит инструменты для составления карты веб-приложения, поиска файлов и папок, модификации запросов, фаззинга, подбора паролей и т.д.

Использование

Поскольку BurpSuite уже предустановлен в Kali Linux, его бесплатной версии в ключе данной статьи нам будет достаточно.

Запускаем Ettercap по аналогии с тем как запускали в связке с mitmproxy. Затем заходим в BurpSuite и переходим в proxy настройки.

f72ac8c5baa326c3a47c70d83527dacd.png

В настройках Proxy listeners нажимаем add и выбираем наш IP в локальной сети и прописываем порт 8080.

0dfaab43bb73fa65af093e8c09b8a165.png

В настройках request handling жмём галочку на пункте support invisible proxying.

840e2f4f45c2c85c88b0c36617823fbb.png

Далее заходим во вкладку intercept и убеждаемся что свитч поставлен на off, если стоит на on — отключаем.

b919017ca487ba1911f8fe3cb851f9a5.png

После настройки заходим во вкладку http proxy и у нас должна будет высветиться та же картина что и на предыдущих инструментах.

7e146a794409b85f4c52c687349e54eb.png

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

f42acc5516ee7cf85a9a473c5e690444.png

Предположим что картинку со ссылкой мы хотим заменить на картинку с котиком. Для этого нам потребуется найти этот запрос в http proxy. Будем ориентироваться на то что написано перед картинкой.

391d66efa5576801ecc5b1f189500c04.png

Теперь нам очевидно какую картинку нужно изменить, для этого нажимаем по самому запросу ПКМ и выбираем add to scope. Во всплывающем окне после выбора нажимаем No.

714d2e2ab5846449c6f8048ed84b9d82.png

Теперь заходим снова в Proxy Settings и снимаем галочку с пункта Request interception rules и ставим галочку в Response interception rules. В списке нажимаем последнюю галочку And URL Is in target scope для того чтобы фильтровать по запросу который нам интересен.

c481902d553adf37a99649f46ebacecc.png

Теперь идём во вкладку intercept и переключаем свитч на on и пробуем перезагрузить страницу на жертве.

8f575afa76dd5eb5e2cef72a8965f403.png

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

81f5627472d6c1125f624f62c779a3b5.png

После редактирования нажимаем на оранжевую кнопку Forward. И теперь у жертвы появился котик.

eaa6aff78be04374fdbefb7120c8f378.jpg

По такому принципу можно подменять любую информацию на странице.

Заключение

В этой статье мы рассмотрели 5 инструментов для осуществления атак MITM в собственной тестовой сети. Все атаки были проведены успешно и весь процесс настройки и установки запечатлён здесь. Если у кого-то есть дополнительные идеи и инструменты к материалу, будем очень рады увидеть их в комментариях. Спасибо за прочтение!

Life-Hack — Хакер

© Habrahabr.ru