Pull to refresh

Инжект пакетов в закрытые WIFI сети

При передаче данных по защищенным беспроводным wifi-сетям заголовок фрейма 802.11 передается в открытом виде тогда как вся его полезная нагрузка поддаётся шифрованию. Для правильной обработки такого фрейма машина получателя должна каким либо образом “догадаться” что данные внутри него зашифрованы, и перед их передачей на более высокие уровни модели OSI их необходимо расшифровать. Эту роль согласно стандарту 802.11 выполняет флаг WEP, который занимает 15-ий бит в заголовке фрейма 802.11, и принимает значение 1 при использовании шифрования.

Структура фрейма 802.11
Заголовок фрейма 802.11



Frame control field




Отсюда вопрос: Как отреагирует машина в защищенной wifi сети на фрейм в котором флаг WEP не установлен, когда в 15-м бите заголовка будет находиться 0?

Как оказалось она его корректно обработает!

Следовательно если сконструировать такой фрейм и поместить в него например ARP-response или DNS-request, ICMP-echo request то все они будут обработаны целевой системой. Кроме флага WEP значение имеют еще несколько полей в заголовке, а именно “To DS” и “From DS” биты. По сути они обозначают кому непосредственно предназначается фрейм — точке доступа или клиентской станции.



Как не удивительно чтобы добиться успеха необходимо выставить “1” и “0” в эти биты соответственно. Секрет заключается в том что этот фрейм перед тем как попасть непосредственно на машину об'екта будет ретранслирован точкой доступа. В зависимости от значений в этих двух битах значения полей адресов могут иметь разную интерпретацию. Эта зависимость изображена на рисунке, где AP — access point, STA — station, BSSID — MAC адрес точки доступа, DA — Destination address, SA — source address.



В качестве исходного MAC адреса нужно указать адрес который ассоциирован с точкой доступа, то есть адрес любого компьютера из целевой сети. Делается это для того чтобы точка доступа ретранслировала наш фрейм. Также стоит отметить что Android-устройства не обрабатывают фреймы в которых в заголовке указаны одинаковые адреса отправителя и получателя. Стационарные компьютеры которые были под рукой восприняли такие фреймы нормально.

Для инжекта пакетов в сеть использовалась библиотека JnetPcap. Также перед проведением инжекта необходимо перевести сетевую карту в режим монитора и настроить на необходимую частоту. Но следует учитывать что ответ на такие пакеты все же будет зашифрован. Конкретной области применения данной особенности работы беспроводных протоколов наводить не буду, так как тут все зависит от глубины фантазии и исходных данных.
Tags:
Hubs:
You can’t comment this publication because its author is not yet a full member of the community. You will be able to contact the author only after he or she has been invited by someone in the community. Until then, author’s username will be hidden by an alias.