Загрузка...

Как определить, какой Wi-Fi адаптер подойдёт для Kali Linux

Тема в разделе Wi-Fi создана пользователем mxlsoermmidh 1 мар 2018. 5098 просмотров

Загрузка...
  1. mxlsoermmidh
    mxlsoermmidh Автор темы 1 мар 2018 24 1 мар 2018
    В этой статье мы разберём, какие технические характеристики 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)
    • Таблица существующих драйверов Linux (Existing Linux Wireless drivers)
    Шапка первой таблицы:

    [IMG]

    Записи означают следующее:

    • 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[IMG]. Ищем информацию об установленном в ней чипсете: обычно приходится гуглить, иногда подробная техническая информация может встретиться на сайте магазина.

    Находим, что в ней установлен чипсет Ralink RT5572. Ищем в таблице «RT5572»:


    [IMG]

    Как можно убедиться, поддерживается AP, Monitor и Inj – т.е. эта карта отлично подойдёт для беспроводного тентестинга.

    Возьмём другую карту – Alfa AWUS036NHA[IMG]. У неё чипсет Atheros AR9271. Ищем по «AR9271»:

    [IMG]

    Видно, что также поддерживаются все необходимые режимы.

    Как в Linux узнать чипсет и драйвер беспроводной карты
    С помощью команды

    1
    lsusb
    Можно узнать чипсет USB беспроводной карты.

    А командой

    1
    lsusb -t
    Можно посмотреть драйвер беспроводной USB карты:

    [IMG]


    Эту же информацию о чипсете и о драйвер (как для USB, так и для встроенных карт) можно посмотреть командой:

    1
    airmon-ng
    [IMG]

    Для интегрированных беспроводных карт информацию о драйвере можно увидеть таким образом (ищите строку Kernel driver in use):

    1
    lspci -v
    С помощью lshw можно увидеть разнообразную информацию о железе:

    1
    2
    sudo apt install lshw
    sudo lshw
    Таблица с чипсетами содержит информацию не о всех драйверах. Например:

    1
    2
    3
    4
    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 или что-то другое)
    [IMG]

    С помощью этой таблицы я могу найти информацию об отсутствующем в первой таблице драйвере iwlwifi:

    [IMG]

    Команда iw list
    Возможности вашего беспроводного железа в вашей системе можно узнать с помощью команды:

    1
    iw list
    Она выводит очень много информации. Обратите внимание на:

    • Supported interface modes (поддерживаемые интерфейсом режимы):
    [IMG]

    И ещё один пример:

    [IMG]

    Здесь главными записями являются monitor и AP.

    • software interface modes (программные режимы интерфейса)
    [IMG]

    • valid interface combinations (позволенные комбинации интерфейсов):
    [IMG]

    И ещё один пример:

    [IMG]

    Проверка, режима монитора, беспроводной инъекции и AP в Linux
    Выше было показано, как ещё до покупки беспроводного устройства собрать информацию о режимах, которые он поддерживает и на основе этой информации определить, подойдёт ли Wi-Fi карта для Kali Linux. Также приведены команды, чтобы посмотреть аппаратные возможности Wi-Fi устройства.


    Теперь мы рассмотрим, как на практике проверить, поддерживает ли режим монитора и другие режимы конкретная Wi-Fi карта, которая у вас на руках, в конкретной системе, к которой вы её подсоединили.

    Подключите вашу Wi-Fi карту к компьютеру: мы введём ряд команд, которые подтвердят, какие именно режимы она поддерживает или не поддерживает.

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

    1
    2
    sudo systemctl stop NetworkManager
    sudo airmon-ng check kill
    Проверка режима монитора
    Выполните команду

    1
    sudo iw dev
    Она должна показать имя беспроводного интерфейса в вашей системе. Если ничего не выведено, значит беспроводная карта не подключена, либо система по какой-либо причине не может распознать вашу Wi-Fi карту.


    В полученной информации, найдите имя беспроводного интерфейса, к примеру, это может быть wlan0.

    Далее выполните последовательность команд

    1
    2
    3
    sudo ip link set <ИНТЕРФЕЙС> down
    sudo iw <ИНТЕРФЕЙС> set monitor control
    sudo ip link set <ИНТЕРФЕЙС> up
    заменив <ИНТЕРФЕЙС> на действительное имя вашего беспроводного интерфейса (у меня это wlan0):

    1
    2
    3
    sudo ip link set wlan0 down
    sudo iw wlan0 set monitor control
    sudo ip link set wlan0 up
    Вновь выполните команду

    1
    sudo iw dev
    [IMG]

    Строка type monitor говорит о том, что беспроводная карта поддерживает режим монитора.

    Возврат в управляемый режим (не торопитесь с этим – режим монитора нам понадобиться для проверки беспроводных инжектов):

    1
    2
    3
    sudo ip link set <ИНТЕРФЕЙС> down
    sudo iw <ИНТЕРФЕЙС> set type managed
    sudo ip link set <ИНТЕРФЕЙС> up
    Для интерфейса wlan0 реальные команды выглядят так:

    1
    2
    3
    sudo ip link set wlan0 down
    sudo iw wlan0 set type managed
    sudo ip link set wlan0 up
    Проверка беспроводной инъекции
    Проверить, поддерживает ли беспроводная карта инъекции (инжект) на сетевом интерфейсе wlan0 (если нужно, имя интерфейса замените на имя в вашей системе):

    1
    sudo aireplay-ng -9 wlan0
    Результат работы команды:

    [IMG]

    Главной в полученном выводе является строка Injection is working!, которая говорит о том, что инъекция работает.

    Проверка режима точки доступа (AP, мастер режима)
    Режим точки доступа также называют мастер режимом.

    Режим точки доступа необходим для программ, ориентированных на социальную инженерию, которые создают точки доступа (атака злой двойник, атака мошенническая точка доступа). Это, в первую очередь такие программы как: Fluxion, airgeddon, WiFi-Pumpkin, create_ap и другие подобные.

    Для проверки, может ли ваша Wi-Fi карта выступать в качестве точки доступа, мы попытаемся создать программную точку доступа. Для этого создайте файл hostapd.conf со следующим содержимым (замените wlan0 на имя проверяемого беспроводного интерфейса):

    1
    2
    3
    4
    interface=wlan0
    driver=nl80211
    ssid=TestAP
    channel=1
    Сохраните и закройте его, запустите hostapd следующим образом:

    1
    sudo hostapd hostapd.conf
    В терминале должно быть выведено примерно следующее:

    1
    2
    3
    4
    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
    [IMG]

    Если всё так, то с помощью другого устройства (телефона, планшета) поищите в списке доступных сетей новую, с именем TestAP.

    Эта точка доступа не маршрутизирует трафик (поскольку мы не сделали соответствующую настройку). Это означает, что если вы к ней подключитесь, у вас не будет Интернет-соединения. При этом она всё равно должна быть видна в качестве доступных сетей.

    Если всё прошло без ошибок и вы можете видеть новую беспроводную сеть, это означает, что ваш драйвер поддерживает мастер режим с hostapd.

    Командой

    1
    sudo iw dev
    Вы можете убедиться, что в качестве типа, установлено AP (строка type AP):

    [IMG]

    Для остановки hostapd, просто нажмите ctrl+c.

    Проверка функциональности виртуального интерфейса
    Fluxion может использовать одну беспроводную карту с поддержкой виртуального сетевого интерфейса, либо две беспроводных карты одновременно. Это означает, что вам необязательно нужен виртуальный интерфейс, если у вас имеется второй беспроводной адаптер. Если вы пошли этим путём (два Wi-Fi адаптера), убедитесь, что выбранный интерфейс поддерживает инъекции, а второй интерфейс поддерживает мастер режим (режим точки доступа, рассмотренный чуть выше), он нужен для запуска атаки «Перехватывающий Портал» (Captive Portal)).

    Когда fluxion использует один интерфейс, то необходим виртуальный сетевой интерфейс. Это из-за того, что некоторые атаки, такие как Captive Portal, для успешного выполнения требуют два различных действия с беспроводными сетями: глушение целевой ТД и запуск собственной точки доступа (rogue AP).

    Для этого нам нужно создать дополнительный интерфейс из нашего основного интерфейса. Сначала нам нужно выбрать интерфейс, с которым мы хотели бы работать, и «зарезервировать его», установив его в режим мониторинга (замените wlan0 на имя выбранного вами интерфейса):

    1
    2
    3
    sudo ip link set wlan0 down # Деактивируем интерфейс
    sudo iw wlan0 set monitor control # Переключаем интерфейс в режим монитора
    sudo ip link set wlan0 up # Активируем интерфейс
    Приведённые выше команды не должны генерировать какой-либо вывод. Если после запуска любой из команды что-либо выводится на экран, это означает, что что-то идёт не так.

    Далее мы добавляем второй виртуальный интерфейс от главного интерфейса:

    1
    sudo iw dev wlan0 interface add wlan0ap type monitor
    Здесь:

    • wlan0 – имя сетевого интерфейса, присутствующего в вашей системе
    • wlan0ap – имя нового интерфейса, вы можете выбрать другое произвольное имя
    Эта команда не должна что-либо выводить на экран, если показан какой-либо вывод – значит что-то идёт не так.

    Командой

    1
    sudo iw dev
    можно проверить, что действительно был добавлен второй интерфейс:

    [IMG]

    Теперь у нас готовы оба интерфейс, и мы попробуем одновременно их использовать.

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

    • оба интерфейса должны быть на одной частоте (т.е. программная ТД поднимается на той же частоте, на которой атакуется истинная ТД)
    • интерфейс в режим AP может быть в комбинации с интерфейсом в режиме монитора (т.е. после запуска программной точки доступа, второй интерфейс автоматически переводится в режим монитора)
    В качестве эксперимента, что всё работает как это описано в теории, главный интерфейс (в моём примере это wlan0) запустит глушилку, в то время как второй интерфейс (в моём случае это wlan0ap), запустит мошенническую точку доступа.

    Нам нужно начать с поиска цели для глушения, поэтому переведём основной интерфейс в режим монитора:

    1
    2
    3
    sudo ip link set wlan0 down
    sudo iw wlan0 set monitor control
    sudo ip link set wlan0 up
    И на основном интерфейсе (wlan0) запустим airodump-ng:

    1
    sudo airodump-ng wlan0
    Допустим, в качестве цели я выбираю сеть MiAl, она находится на десятом канале (запоминаем это) и имеет BSSID 50:46:5D:6E:8C:20 (также запомним его):

    [IMG]

    Перейдём к созданию новой точки доступа. Для этого создайте файл hostapd.conf со следующим содержимым (обратите внимание, что теперь в качестве имени интерфейса мы используем wlan0ap – если вы выбрали другое имя для своего беспроводного интерфейса, то используйте его; также обратите внимание, что я изменил имя сети и установил девятый канал):

    1
    2
    3
    4
    interface=wlan0ap
    driver=nl80211
    ssid=MiAl
    channel=9
    Запускаем hostapd:

    1
    sudo hostapd hostapd.conf
    Командой

    1
    sudo iw dev
    вы можете посмотреть текущий статус беспроводных интерфейсов:

    [IMG]

    Для деаутентификации (глушения) можно использовать, например, mdk3.

    На главном интерфейсе (у меня это wlan0) запустите mdk3 примерно следующим образом:

    1
    sudo mdk3 ГЛАВНЫЙ_ИНТЕРФЕЙС d -c КАНАЛ_ЦЕЛЕВОЙ_ТД -t BSSID_ЦЕЛЕВОЙ_ТД
    В моём случае команда выглядит так:

    1
    sudo mdk3 wlan0 d -c 9 -t 50:46:5D:6E:8C:20
    В результате, пока работает mdk3, будет невозможно подключиться к истинной точке доступа, но при этом будет видна вторая ТД с точно таким же именем, к которой можно свободно подключиться без пароля. И обе эти операция выполняются при помощи одного единственного Wi-Fi адаптера.

    [IMG]

    Если всё нормально, 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[IMG] (потому что 2 диапазона и две отсоединяющиеся антенны) и Alfa AWUS036NHA[IMG] (потому что без проблем работает в атаках на WPS), с антеннами для усиления сигнала Alfa ARS-N19[IMG] или Alfa APA-M25[IMG].
     
  2. Darkhaese208060
    Спасибо, долго искал эту тему
     
Top