В этой статье поговорим о том, как работают сети на основе радиоканала и какие существуют атаки в зависимости от используемых технологий. Разберемся как можно "слушать" сеть в сыром виде, обнаруживая её через радиоканал, а в следующей части посмотрим как можно собранные данные использовать.
Wi-Fi
Технология беспроводной передачи информации, которая описывается набором стандартов IEEE 802.11. Согласно стандартам, чтобы устройства могли взаимодействовать друг с другом их интерфейсы должны поддерживать одну и ту же версию набора технологий, которые позволяют делиться данными по радиоканалу.
Устройства в беспроводной сети идентифицируются посредством Media Access Control(MAC) адресам, группа устройств, которая взаимодействует по протоколам 802.11 называется Basic Service Set. Эти простые определения можно найти в любом устройстве, которое может быть использовано для работы с Wi-Fi.
Отсюда происходит название BSSID - идентификатор, который может быть использован для доступа к общей сети. По сути это просто MAC адрес устройства, которое используется в качестве основного для объединения всех участников.
Для сетей Wi-Fi актуален целый ряд атак, которые возможны в силу особенностей среды передачи данных. Среди атак наиболее известные это:
Man-in-the-Middle(MitM)
DoS
подмена адреса отправки/получения или просто spoofing
frame injection
прослушивание
Так как радиоканал никак физически нельзя оградить, то такие технологии как Wi-Fi используют целый ряд дополнительных преобразований, которые должны помочь сокрыть данные от тех, кто пытается собрать информацию из воздха. Чаще всего для этого используется шифрование и набор алгоритмов, которые это шифрование позволяют настраивать для всех участников сети.
Радио канал
Основная проблема радиоканала заключается в том, что его не так-то просто ограничивать в пространстве. Запущенная раз сеть Wi-Fi становится доступна всем устройствам, которые умеют работать с этим каналом связи. Иногда идут на ухищрения и стараются скрыть идентификатор сети или BSSID, но это не всегда может помочь. Особенно если атакующий будет иметь на руках сканер на базе SDR. В нашей статье мы не будем углубляться до совсем "низкоуровневого" представления сигнала, а просто попробуем подобрать инструмент, который еще не будет раскодировать данные в радиоканале и при этом сможет искать ближайшие Wi-Fi сети.
Инструменты для мониторинга
На самом деле чтобы обнаружить сети, которые расположены вокруг достаточно перевести беспроводной интерфейс в режим мониторинга. Это аналог "неразборчивого" режима работы сетевой карты, когда мы работаем со сниффером сети. По сути в режиме монитора тоже можно пользоваться такими снифферами как WireShark.
Для проведения сканирования можно использовать следующие opensource проекты:
Оба проекта специализируются как на атаках на популярные радио каналы, так и дают достаточно инструментов для исследования этих самых каналов связи.
Оба инструмента взаимозаменяемы и могут использоваться по отдельности, но в рамках статьи рассмотрим как ими можно пользоваться для мониторинга радио канала.
Kismet
Инструмент достаточно старый, входил в стандартный набор операционной системы Kali Linux, сейчас его можно установить, если используется так называемая "полная" установка. Приложение позиционируется как сниффер, который может работать как с картами, которые установлены в обычные компьютеры, так и с SDR картами, которые могут принимать сырой сигнал на заданных частотах.
Кстати, Kismet можно поставить на одноплатный компьютер и использовать его для сбора данных о сетях, которые находятся в зоне доступа.
Установка приложения достаточно проста, можно найти её для самых популярных операционных систем здесь. У приложения есть один недостаток - работает оно исключительно на BSD и Linux подобных системах, но при желании можно запустить его в WSL для Windows. Однако в таком случае могут быть проблемы с доступов для устройств.
После установки, чтобы приложение заработало нужно запустить команду:
kismet
После этого будет вот такой лог:
После завершения процесса запуска, можно обращаться к активному сетевому интерфейсу устройства на порту 2501:
Теперь их этого интерфейса можно запустить мониторинг, который будет визуализировать все найденные данные из радио каналов вокруг.
Для того чтобы выбирать какие именно радиоканалы будут мониториться, нужно в правом верхнем углу интерфейа выбрать контекстное меню и затем включить мониторинг нужного активного интерфейса. В итоге будет вот такая картинка с графиками частот:
После такой настройки не составит труда находить посторонние точки доступа и регистрировать аномальную активность в радио канале. Это важно так как большинство атак, которые актуальны для Wi-Fi начинаются именно из радиоканала, а потом уже достигают уровня, который дает доступ к данным.
bettercap
Не настолько интерактивный софт, как kismet, но он и позиционируется как набор инструментов для атака на беспроводные популярные сети, он включает в себя сниффер, но это только одна из его функций.
Установить приложение так же просто, можно найти инструкции здесь. Для этого приложения даже есть вариант установки в docker image. Это удобно, но как и с WSL для Windows, придется разбираться с тем как пробрасывать устройства внутрь контейнера.
Инструмент можно использовать в терминале и это в большинстве случаев является предпочтительным способом взаимодействия, но так же можно использовать Web UI, для этого нужно запустить команду в терминале:
sudo bettercap -eval "caplets.update; ui.update; q"
Команда произведет обновление каплета(скрипта для bettercap) и поставит все необходимые зависимости, чтобы можно было работать с Web UI. После этого нужно отредактировать данные, которые относятся к логину и паролю. Все данные размещены в файле bettercap/caplets/http-ui.cap
этот файл в любой поддреживаемой системе будет просто находиться в директории установки bettercap. В файлике нужно прописать логин и пароль и после этого запустить команду:
sudo bettercap -caplet http-ui
Каплет поднимет интерфейс локально и можно попасть в него по адресу http://127.0.0.1/ введя логин и пароль с прошлого шага. Интерфейс может выглядеть так:
Здесь интерфейс по-проще, достаточно просто выбрать интересующий нас радио канал и вся информация будет доступна на экране. Одно примечание - для сканирования нужно отключиться от всех сетей, которые могут быть активны, затем нужно выбрать наименование интерфейса и запустить сбор данных.
Вот таким простым способом можно мониторить сеть и начинать исследование её безопасности. В следующей статье как раз попробуем это сделать.
В конце статьи хочу пригласить всех на бесплатный урок, на котором рассмотрим типовые атаки на сетевую инфраструктуру, а также основные библиотеки языка python, позволяющие их реализовать. Поговорим про захват пакетов и низкоуровневый программный доступ к ним, а также про программный анализ результатов сканирования сети.
Shaman_RSHU
Одно и то же. Эти инструменты в реальных атаках сработают на 0.001%