Как определить, какой Wi-Fi адаптер подойдёт для Kali Linux
В этой статье мы разберём, какие технические характеристики Wi-Fi карт важны для аудита безопасности Wi-Fi сетей, какие показатели изучить перед покупкой Wi-Fi, что можно узнать о Wi-Fi адаптере, подключённом к вашему компьютеру, а также много внимания будет уделено виртуальным беспроводным интерфейсам.
Режим монитора, беспроводные инъекции, режим точки доступа (AP)
Важнейшей характеристикой, необходимой для взлома Wi-Fi сетей, является поддерживает ли беспроводная карта режим монитора. Чтобы понять, что такое режим монитора, нужно обратиться к работе адаптера в «нормальном» (его называют «управляемый», managed) режиме: беспроводная карта отправляет данные Точке Доступа и от неё получает данные, которые предназначены для этой беспроводной карты. В режиме монитора, беспроводная карта не подключена к конкретной точке доступа, она «слушает», т.е. принимает абсолютно все беспроводные пакеты данных, которые «летают» в радиоэфире на частоте, на которую в данный момент настроен беспроводной адаптер.
Режим монитора – это способность Wi-Fi карты принимать любые пакеты, доступные в диапазоне досягаемости на её частоте.
Если беспроводная карта не поддерживает режим монитора, то она практически бесполезна для беспроводного пентестинга (разве что, с помощью неё можно выполнять онлайн атаки, у которых очень маленькая эффективность).
Т.е. если беспроводной адаптер имеет режим монитора, то он может перехватить четырёх этапное рукопожатие, с помощью которого в дальнейшем можно взломать пароль от Wi-Fi.
Примечание: на протяжении всей статьи я буду употреблять такие термины как «Точка Доступа», «Станция» и т.д., эти понятия раскрыты в разделе «Термины Wi-Fi сетей».
Рукопожатие можно перехватить в тот момент, когда клиент подключается к точке доступа, а это может происходить очень редко. Чтобы ускорить этот процесс, используется атака деаутентификации. Для её выполнения необходимо, чтобы адаптер умел делать беспроводные инъекции.
Важно знать, что наличие режима монитора ≠ способности делать беспроводные инъекции.
Т.е. некоторые беспроводные карты смогут перехватить рукопожатие, но не смогут отсоединить клиентов (выполнить атаку деаутентификации).
И это ещё не всё.
Для таких программ как Fluxion и WiFi-Pumpkin требуются Wi-Fi карты, которые поддерживают режим Точки Доступа, т.е. режим AP. В режиме Точка Доступа беспроводная карта работает как беспроводной роутер: к ней могут подключаться станции.
Беспроводная карта может поддерживать режим монитора, уметь делать беспроводные инъекции, но не иметь режим Точки Доступа. Возможности Wi-Fi карт зависит от чипсета и драйвера.
Чип Wi-Fi адаптера и драйвер Wi-Fi адаптера для Linux
Как уже было сказано, какие именно режимы поддерживает беспроводной адаптер зависит от:
- установленного в него чипсета
- возможностей драйвера Linux (поскольку в большинстве случаев используется именно эта ОС, поскольку она позволяет выполнять все из возможных беспроводных атак)
Большое количество информации о чипсетах и драйверах собрано в двух таблицах:
- Таблица беспроводных адаптеров/Чипсетов (Wireless adapters/Chipset table) (больше недоступна, можно посмотреть в веб архиве, — практически не обновлялась с 2012 года). Аналогичная таблица в Википедии — также не очень актуальная.
- Таблица существующих драйверов Linux (Existing Linux Wireless drivers)
- Ещё одна таблица с, возможно, более актуальной и полной информацией: https://en.wikipedia.org/wiki/Comparison_of_open-source_wireless_drivers#Driver_capabilities
Шапка первой таблицы:
Записи означают следующее:
- Manufacturer (производитель)
- Chipset (чипсет – именно по этому полю мы будем искать информацию об интересующем нас устройстве)
- Driver (драйвер)
- PHY Modes (PHY режимы, т.е. a/b/g/n/ac)
- Encrypt. (виды поддерживаемого шифрования)
- Station (способность выступать в роли станции)
- Ad-hoc
- AP (способность выступать в роли точки доступа)
- Mesh
- Monitor (поддержка режима монитора)
- Inj. (способность делать беспроводные инъекции)
- Bus (тип подключения: USB или что-то другое)
- Notes (примечания)
Как узнать, поддерживает ли чип режим монитора и беспроводные инъекции
Искать в этой таблице удобно по установленному в Wi-Fi карте чипсету. В первую очередь для взлома Wi-Fi сетей важны поля: AP, Monitor и Inj.
К примеру, возьмём такую карту как Panda Wireless PAU09 N600. Ищем информацию об установленном в ней чипсете: обычно приходится гуглить, иногда подробная техническая информация может встретиться на сайте магазина.
Находим, что в ней установлен чипсет Ralink RT5572. Ищем в таблице «RT5572»:
Как можно убедиться, поддерживается AP, Monitor и Inj – т.е. эта карта отлично подойдёт для беспроводного тентестинга.
Возьмём другую карту – Alfa AWUS036NHA. У неё чипсет Atheros AR9271. Ищем по «AR9271»:
Видно, что также поддерживаются все необходимые режимы.
Как в Linux узнать чипсет и драйвер беспроводной карты
С помощью команды
lsusb
Можно узнать чипсет USB беспроводной карты.
А командой
lsusb -t
Можно посмотреть драйвер беспроводной USB карты:
Эту же информацию о чипсете и о драйвер (как для USB, так и для встроенных карт) можно посмотреть командой:
airmon-ng
Для интегрированных беспроводных карт информацию о драйвере можно увидеть таким образом (ищите строку Kernel driver in use):
lspci -v
С помощью lshw можно увидеть разнообразную информацию о железе:
sudo apt install lshw sudo lshw
Таблица с чипсетами содержит информацию не о всех драйверах. Например:
airmon-ng PHY Interface Driver Chipset phy0 wlan0 iwlwifi Intel Corporation Centrino Advanced-N 6235 (rev 24)
Беспроводная карта использует драйвер iwlwifi, который отсутствует в первой таблице. Обратимся ко второй таблице, она имеет столбцы:
- Driver (драйвер)
- Manufacturer (производитель)
- cfg80211 (наличие поддержки cfg80211)
- AP (поддержка режима Точка Доступа)
- IBSS (поддержка IBSS)
- mesh
- monitor (поддержка режима монитора)
- PHY modes (поддержка режимов a/b/g/n/ac)
- Buses (тип подключения: USB или что-то другое)
С помощью этой таблицы я могу найти информацию об отсутствующем в первой таблице драйвере iwlwifi:
Команда iw list
Возможности вашего беспроводного железа в вашей системе можно узнать с помощью команды:
iw list
Она выводит очень много информации. Обратите внимание на:
- Supported interface modes (поддерживаемые интерфейсом режимы):
И ещё один пример:
Здесь главными записями являются monitor и AP.
- software interface modes (программные режимы интерфейса)
- valid interface combinations (позволенные комбинации интерфейсов):
И ещё один пример:
Проверка, режима монитора, беспроводной инъекции и AP в Linux
Выше было показано, как ещё до покупки беспроводного устройства собрать информацию о режимах, которые он поддерживает и на основе этой информации определить, подойдёт ли Wi-Fi карта для Kali Linux. Также приведены команды, чтобы посмотреть аппаратные возможности Wi-Fi устройства.
Теперь мы рассмотрим, как на практике проверить, поддерживает ли режим монитора и другие режимы конкретная Wi-Fi карта, которая у вас на руках, в конкретной системе, к которой вы её подсоединили.
Подключите вашу Wi-Fi карту к компьютеру: мы введём ряд команд, которые подтвердят, какие именно режимы она поддерживает или не поддерживает.
Чтобы полученные данные были точны, необходимо закрыть программы, которые могут вмешаться в наши действия с беспроводными картами:
sudo systemctl stop NetworkManager sudo airmon-ng check kill
Проверка режима монитора
Выполните команду
sudo iw dev
Она должна показать имя беспроводного интерфейса в вашей системе. Если ничего не выведено, значит беспроводная карта не подключена, либо система по какой-либо причине не может распознать вашу Wi-Fi карту.
В полученной информации, найдите имя беспроводного интерфейса, к примеру, это может быть wlan0.
Далее выполните последовательность команд
sudo ip link set <ИНТЕРФЕЙС> down sudo iw <ИНТЕРФЕЙС> set monitor control sudo ip link set <ИНТЕРФЕЙС> up
заменив <ИНТЕРФЕЙС> на действительное имя вашего беспроводного интерфейса (у меня это wlan0):
sudo ip link set wlan0 down sudo iw wlan0 set monitor control sudo ip link set wlan0 up
Вновь выполните команду
sudo iw dev
Строка type monitor говорит о том, что беспроводная карта поддерживает режим монитора.
Возврат в управляемый режим (не торопитесь с этим – режим монитора нам понадобиться для проверки беспроводных инжектов):
sudo ip link set <ИНТЕРФЕЙС> down sudo iw <ИНТЕРФЕЙС> set type managed sudo ip link set <ИНТЕРФЕЙС> up
Для интерфейса wlan0 реальные команды выглядят так:
sudo ip link set wlan0 down sudo iw wlan0 set type managed sudo ip link set wlan0 up
Проверка беспроводной инъекции
Проверить, поддерживает ли беспроводная карта инъекции (инжект) на сетевом интерфейсе wlan0 (если нужно, имя интерфейса замените на имя в вашей системе):
sudo aireplay-ng -9 wlan0
Результат работы команды:
Главной в полученном выводе является строка Injection is working!, которая говорит о том, что инъекция работает.
Проверка режима точки доступа (AP, мастер режим)
Режим точки доступа также называют мастер режимом.
Режим точки доступа необходим для программ, ориентированных на социальную инженерию, которые создают точки доступа (атака злой двойник, атака мошенническая точка доступа). Это, в первую очередь такие программы как: Fluxion, airgeddon, WiFi-Pumpkin, create_ap и другие подобные.
Для проверки, может ли ваша Wi-Fi карта выступать в качестве точки доступа, мы попытаемся создать программную точку доступа. Для этого создайте файл hostapd.conf со следующим содержимым (замените wlan0 на имя проверяемого беспроводного интерфейса):
interface=wlan0 driver=nl80211 ssid=TestAP channel=1
Сохраните и закройте его, запустите hostapd следующим образом:
sudo hostapd hostapd.conf
В терминале должно быть выведено примерно следующее:
Configuration file: hostapd.conf Using interface wlan0 with hwaddr 00:c0:ca:90:0d:9f and ssid "TestAP" wlan0: interface state UNINITIALIZED->ENABLED wlan0: AP-ENABLED
Если всё так, то с помощью другого устройства (телефона, планшета) поищите в списке доступных сетей новую, с именем TestAP.
Эта точка доступа не маршрутизирует трафик (поскольку мы не сделали соответствующую настройку). Это означает, что если вы к ней подключитесь, у вас не будет Интернет-соединения. При этом она всё равно должна быть видна в качестве доступных сетей.
Если всё прошло без ошибок и вы можете видеть новую беспроводную сеть, это означает, что ваш драйвер поддерживает мастер режим с hostapd.
Командой
sudo iw dev
Вы можете убедиться, что в качестве типа, установлено AP (строка type AP):
Для остановки hostapd, просто нажмите ctrl+c.
Проверка функциональности виртуального интерфейса
Fluxion может использовать одну беспроводную карту с поддержкой виртуального сетевого интерфейса, либо две беспроводных карты одновременно. Это означает, что вам необязательно нужен виртуальный интерфейс, если у вас имеется второй беспроводной адаптер. Если вы пошли этим путём (два Wi-Fi адаптера), убедитесь, что выбранный интерфейс поддерживает инъекции, а второй интерфейс поддерживает мастер режим (режим точки доступа, рассмотренный чуть выше), он нужен для запуска атаки «Перехватывающий Портал» (Captive Portal)).
Когда fluxion использует один интерфейс, то необходим виртуальный сетевой интерфейс. Это из-за того, что некоторые атаки, такие как Captive Portal, для успешного выполнения требуют два различных действия с беспроводными сетями: глушение целевой ТД и запуск собственной точки доступа (rogue AP).
Для этого нам нужно создать дополнительный интерфейс из нашего основного интерфейса. Сначала нам нужно выбрать интерфейс, с которым мы хотели бы работать, и «зарезервировать его», установив его в режим мониторинга (замените wlan0 на имя выбранного вами интерфейса):
sudo ip link set wlan0 down # Деактивируем интерфейс sudo iw wlan0 set monitor control # Переключаем интерфейс в режим монитора sudo ip link set wlan0 up # Активируем интерфейс
Приведённые выше команды не должны генерировать какой-либо вывод. Если после запуска любой из команды что-либо выводится на экран, это означает, что что-то идёт не так.
Далее мы добавляем второй виртуальный интерфейс от главного интерфейса:
sudo iw dev wlan0 interface add wlan0ap type monitor
Здесь:
- wlan0 – имя сетевого интерфейса, присутствующего в вашей системе
- wlan0ap – имя нового интерфейса, вы можете выбрать другое произвольное имя
Эта команда не должна что-либо выводить на экран, если показан какой-либо вывод – значит что-то идёт не так.
Командой
sudo iw dev
можно проверить, что действительно был добавлен второй интерфейс:
Теперь у нас готовы оба интерфейс, и мы попробуем одновременно их использовать.
При использовании виртуальных интерфейсов, обычно имеются следующие ограничения:
- оба интерфейса должны быть на одной частоте (т.е. программная ТД поднимается на той же частоте, на которой атакуется истинная ТД)
- интерфейс в режим AP может быть в комбинации с интерфейсом в режиме монитора (т.е. после запуска программной точки доступа, второй интерфейс автоматически переводится в режим монитора)
В качестве эксперимента, что всё работает как это описано в теории, главный интерфейс (в моём примере это wlan0) запустит глушилку, в то время как второй интерфейс (в моём случае это wlan0ap), запустит мошенническую точку доступа.
Нам нужно начать с поиска цели для глушения, поэтому переведём основной интерфейс в режим монитора:
sudo ip link set wlan0 down sudo iw wlan0 set monitor control sudo ip link set wlan0 up
И на основном интерфейсе (wlan0) запустим airodump-ng:
sudo airodump-ng wlan0
Допустим, в качестве цели я выбираю сеть MiAl, она находится на десятом канале (запоминаем это) и имеет BSSID 50:46:5D:6E:8C:20 (также запомним его):
Перейдём к созданию новой точки доступа. Для этого создайте файл hostapd.conf со следующим содержимым (обратите внимание, что теперь в качестве имени интерфейса мы используем wlan0ap – если вы выбрали другое имя для своего беспроводного интерфейса, то используйте его; также обратите внимание, что я изменил имя сети и установил девятый канал):
interface=wlan0ap driver=nl80211 ssid=MiAl channel=9
Запускаем hostapd:
sudo hostapd hostapd.conf
Командой
sudo iw dev
вы можете посмотреть текущий статус беспроводных интерфейсов:
Для деаутентификации (глушения) можно использовать, например, mdk3.
На главном интерфейсе (у меня это wlan0) запустите mdk3 примерно следующим образом:
sudo mdk3 ГЛАВНЫЙ_ИНТЕРФЕЙС d -c КАНАЛ_ЦЕЛЕВОЙ_ТД -t BSSID_ЦЕЛЕВОЙ_ТД
В моём случае команда выглядит так:
sudo mdk3 wlan0 d -c 9 -t 50:46:5D:6E:8C:20
В результате, пока работает mdk3, будет невозможно подключиться к истинной точке доступа, но при этом будет видна вторая ТД с точно таким же именем, к которой можно свободно подключиться без пароля. И обе эти операция выполняются при помощи одного единственного Wi-Fi адаптера.
Если всё нормально, mdk3 и hostapd должны одновременно работать без остановки и вылетов. Если у вас также всё прошло успешно, значит fluxion будет отлично работать с вашей беспроводной картой.
На что ещё нужно обратить внимание при покупке Wi-Fi для Kali Linux
Имеются и другие характеристики беспроводных карт, которые важны для беспроводного пентестинга:
- поддерживаемые частоты: Wi-Fi карты могут работать на одной частоте (2.4GHz) или на двух (2.4GHz и 5GHz)
- поддерживаемые протоколы: беспроводные карты могут поддерживать различное сочетание из a/b/g/n/ac. В настоящее время протокол n используется уже достаточно широко, в то время как ac ещё мало распространён.
- мощность сигнала: мощные карты лучше, но обычно они имеют больший размер и большую антенну, что подходит не всем.
- наличие внешней антенны, количество антенн: антенн может быть одна или более, если антенна отсоединяется, то можно подключить более мощную антенну или установить направленную антенну.
Заключение
Для Kali Linux подходит довольно много беспроводных карт, список актуальных вариантов я привёл в заметке «Подборка совместимых с Kali Linux Wi-Fi адаптеров на 2018».
На мой вкус, в настоящее время отличными вариантами являются Panda Wireless PAU09 N600 (потому что 2 диапазона и две отсоединяющиеся антенны) и Alfa AWUS036NHA (потому что без проблем работает в атаках на WPS), с антеннами для усиления сигнала Alfa ARS-N19 или Alfa APA-M25.
Связанные статьи:
- Как перевести беспроводную карту в режим монитора (контроля) в Kali Linux (94.3%)
- Как узнать, поддерживает ли беспроводная карта инжект (инъекцию) в Kali Linux (94.3%)
- Карты и антенны для аудита Wi-Fi (для Kali Linux) (94.3%)
- Атаки на 5 ГГц Wi-Fi: тесты и подсказки (94.3%)
- Деаутентификация клиентов беспроводной сети в Kali Linux (61.4%)
- Введение в IPv6 адреса: как пользоваться и как исследовать сеть (часть 1) (RANDOM - 5.8%)
Ещё бы посоветовал, не исключать к покупке хороший (не китайский) активный удлинитель для USB, если тестируете со стационарного компа, а не с ноута. Лично использую пятиметровый от ALFA и могу отозваться только положительно.
Посоветуйте модель — я сам таким не пользовался.
AUSBC-5M — Alfa Active USB cable 5M — добротный толстый кабель. Есть и на 10 метров, но я не стал рисковать. Что может быть лучше, чем к AWUS036NHA прикупить от самой же альфы удлинитель. В общем у меня 5м удинителя + комплектный кабель + Alfa Magnetic Base ARS-AS01 (удлинитель для антены) = такой паровоз хватит, чтобы антену в любую точку комнаты и балкона закинуть при минимальных потерях мощности.
Alexey, здравствуйте, Вы никогда не пишете о PCI-e адаптерах для стационарных ПК, неужели не бывает адаптеров для осуществления аудита безопасности беспроводных сетей. Было бы очень интересно почитать. Про такое вообще нигде в интернете не читал.
Две главные причины:
сейчас на рынке появился новый игрок — blue way с пушками N9000 N9100 на ралинках 3070. нормальная альтернатива оборзевшим тайваньцам. разницы с авусом 036NH я не заметил.
9100 от 9000 отличается только двумя рогами.
Noob здравствуйте, не могли бы вы показать ссылки на эти модели на ралинке 3070?
Вроде бы N9000 и 9100 уже очень давно года 3 как продаются везде, или вы говорите о каких то новых моделях?
Подскажите, при вводе команды iw list ничего не происходит. В чем может быть причина? Kali Linux стоит на VirtualBox
Если это внешняя Wi-Fi карта, то посмотрите здесь https://hackware.ru/?p=3773#614
Если это встроенная видеокарта, то так и должно быть — виртуальная машина не может работать напрямую с устройствами вашего компьютера (кроме USB устройств).
Что за дрвйвер в 2й строке файла conf -driver=nl80211
Вставлял и своих адаптеров- ошибка, не находит
Не-не-не, это не драйвер от Wi-Fi устройства. Если коротко: просто не трогайте эту строчку.
А так, если любопытно, то nl80211 – это «userspace ←→ kernelspace wireless driver communication transport». Т.е. что-то вроде драйвера более низкого уровня, который отвечает за двухстороннюю коммуникацию между ядром Linux и пользовательским пространством.
nl80211 используется в связке с cfg80211 – API конфигурации драйверов. На cfg80211 и основываются современные драйверы самих адаптеров. А nl80211 используют программы
В качестве альтернативы к опции -D (директива driver= в файле конфигурации) программы wpa_supplicant можно указать wext, т.е. использовать Wireless-Extensions – это старый транспорт, который был до nl80211/cfg80211. Wireless-Extensions работает только с очень-очень древними драйверами.
Вывод: после опции -D или после директивы driver= в файле конфигурации просто указывайте nl80211.
Дополнительная информация:
Большая просьба не писать на почту – пишите здесь, в комментариях.
Для большинства беспроводных атак лучше останавливать NetworkManager – это поможет избежать многих проблем.
Что касается установки драйверов. В Kali Linux, да и в других дистрибьютивах, как правило все необходимые драйвера уже есть. Т.е. не нужно ничего устанавливать с диска – просто втыкайте Wi-Fi карту и работайте.
В Windows 10 аналогично – у меня 2 карты ALFA Network, ни для одной из них я драйвера не устанавливал.
Карты Alfa AWUS052NH и Alfa AWUS036NHA тестировал в следующих ОС: Windows 10, Kali Linux, Ubuntu, Linux Mint, Arch Linux, BlackArch – ни в одной из них не пришлось устанавливать какие-либо дополнительные драйвера или что-то настраивать – просто воткнул и всё работало.
Установка драйверов может понадобиться для супер новых беспроводных карт, для которых стандартные драйверы работают плохо, и которые «допиливают» энтузиасты на ГитХабе – но это отдельные специфичные случаи.
Подскажите, можно создать точку доступа без поддержки режима AP в карте Intel WiFi Link 5100. Не переключается в этот режим, hostapd выдает
Попробуйте с помощью airbase-ng. Например, для создания открытой ТД с именем Test (-e Test) на интерфейсе wlan0:
Может быть будет работать, но airbase-ng считается более проблематичным и менее стабильным вариантом. Создание точек доступа в этой программе предназначено не столько для раздачи Интернета, сколько для выполнения атак.
Сеть создается, но не подключается, при этом адаптер находится в режиме монитора.
20:05:29 Created tap interface at0
20:05:29 Trying to set MTU on at0 to 1500
20:05:29 Access Point with BSSID 00:16:EA:A4:51:FE started.
20:06:28 Client B8:E8:56:D1:96:A9 associated (unencrypted) to ESSID: "Test"
20:06:28 Client B8:E8:56:D1:96:A9 associated (unencrypted) to ESSID: "Test"
Видимо, всё не так просто. Я погуглил, нашёл следующее:
Я ничего из этого не проверял, поскольку это кажется всё неудобным и ненадёжным. ИМХО, при таком раскладе лучше купить Wi-Fi с поддержкой AP и делать Точки Доступа с помощью create_ap — она автоматизирует hostapd и все другие операции.
Просто это я эксперементировал, а так согласен что лучше купить, на авито по 150р продают n, я хочу ас, а это уже 1500 из китая такой Atheros QCA9880 https://compex.com.sg/shop/wifi-module/wle900vx/ но там MiniPCI Express 1.1 interface — что это такое не понятно, и не знаю потянет мой нетбук asus eee pc 1001, драйвера вроде есть ath10k и поддержка AP заявлена.
Кто нибудь скажет, почему недоступна страница чертовой таблицы беспроводных адаптеров?
Действительно странно, что не работает. Но можно смотреть через веб-архив: https://web.archive.org/web/20191020202236/wikidevi.com/wiki/Wireless_adapters/Chipset_table
Точнее не странно — сайт навсегда ушёл в офлайн с 2019-10-31 (об этом объявление на каждой странице)…
это хоть что то, спасибо уважаемый
собираюсь приобрести дополнительный wi fi, посмотрел таблицу, не уверен но хотелось бы уточнить, способно ли такое устройство работать в мониторе, проводить иньекции и без танцев перебирать пины WPS?
так же и TP-LINK TL-WN722N на RTL8188eu?
Замечательная статья. Но хотелось бы шире осветить различные "нестандартные" режимы и частоты Wi-Fi. Работа с самыми распространенными проприетарными поллинговыми протоколами Mikrotik и Ubiquiti… В основном интересно даже не проприетарные режимы, а как допустим можно заставить работать "стандартную" радиокарту с расширенным диапазоном (нестандартными каналами) частот. Не 1-14 канал, а охватить допустим всю сетку частот от 2312-2712 (Микротик).