В этой статье поговорим о том, как работают сети на основе радиоканала и какие существуют атаки в зависимости от используемых технологий. Разберемся как можно "слушать" сеть в сыром виде, обнаруживая её через радиоканал, а в следующей части посмотрим как можно собранные данные использовать. Технология беспроводной передачи информации, которая описывается набором стандартов 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 проекты: bettercap Kismet Оба проекта специализируются как на атаках на популярные радио каналы, так и дают достаточно инструментов для исследования этих самых каналов связи. Оба инструмента взаимозаменяемы и могут использоваться по отдельности, но в рамках статьи рассмотрим как ими можно пользоваться для мониторинга радио канала. Инструмент достаточно старый, входил в стандартный набор операционной системы Kali Linux, сейчас его можно установить, если используется так называемая "полная" установка. Приложение позиционируется как сниффер, который может работать как с картами, которые установлены в обычные компьютеры, так и с SDR картами, которые могут принимать сырой сигнал на заданных частотах. Кстати, Kismet можно поставить на одноплатный компьютер и использовать его для сбора данных о сетях, которые находятся в зоне доступа. Установка приложения достаточно проста, можно найти её для самых популярных операционных систем здесь. У приложения есть один недостаток - работает оно исключительно на BSD и Linux подобных системах, но при желании можно запустить его в WSL для Windows. Однако в таком случае могут быть проблемы с доступов для устройств. После установки, чтобы приложение заработало нужно запустить команду: После этого будет вот такой лог: После завершения процесса запуска, можно обращаться к активному сетевому интерфейсу устройства на порту 2501: Теперь их этого интерфейса можно запустить мониторинг, который будет визуализировать все найденные данные из радио каналов вокруг. Для того чтобы выбирать какие именно радиоканалы будут мониториться, нужно в правом верхнем углу интерфейа выбрать контекстное меню и затем включить мониторинг нужного активного интерфейса. В итоге будет вот такая картинка с графиками частот: После такой настройки не составит труда находить посторонние точки доступа и регистрировать аномальную активность в радио канале. Это важно так как большинство атак, которые актуальны для Wi-Fi начинаются именно из радиоканала, а потом уже достигают уровня, который дает доступ к данным. Не настолько интерактивный софт, как kismet, но он и позиционируется как набор инструментов для атака на беспроводные популярные сети, он включает в себя сниффер, но это только одна из его функций. Установить приложение так же просто, можно найти инструкции здесь. Для этого приложения даже есть вариант установки в docker image. Это удобно, но как и с WSL для Windows, придется разбираться с тем как пробрасывать устройства внутрь контейнера. Инструмент можно использовать в терминале и это в большинстве случаев является предпочтительным способом взаимодействия, но так же можно использовать Web UI, для этого нужно запустить команду в терминале: Команда произведет обновление каплета(скрипта для bettercap) и поставит все необходимые зависимости, чтобы можно было работать с Web UI. После этого нужно отредактировать данные, которые относятся к логину и паролю. Все данные размещены в файле bettercap/caplets/http-ui.cap этот файл в любой поддреживаемой системе будет просто находиться в директории установки bettercap. В файлике нужно прописать логин и пароль и после этого запустить команду: Каплет поднимет интерфейс локально и можно попасть в него по адресу http://127.0.0.1/ введя логин и пароль с прошлого шага. Интерфейс может выглядеть так: Здесь интерфейс по-проще, достаточно просто выбрать интересующий нас радио канал и вся информация будет доступна на экране. Одно примечание - для сканирования нужно отключиться от всех сетей, которые могут быть активны, затем нужно выбрать наименование интерфейса и запустить сбор данных. Вот таким простым способом можно мониторить сеть и начинать исследование её безопасности. В следующей статье как раз попробуем это сделать. В конце статьи хочу пригласить всех на бесплатный урок, на котором рассмотрим типовые атаки на сетевую инфраструктуру, а также основные библиотеки языка python, позволяющие их реализовать. Поговорим про захват пакетов и низкоуровневый программный доступ к ним, а также про программный анализ результатов сканирования сети. Зарегистрироваться на бесплатный урок