Одна «Альфа» хорошо, а две — лучше! Готовимся к продвинутым техникам взлома Wi-Fi

В прошлых статьях о пентестах точек доступа Wi-Fi мы разобрали базовые техники, а сейчас примемся за более продвинутые. Рассмотрим особенности адаптеров и добавим мощности нашему донглу. Это необходимо, чтобы использовать ускоренные способы взлома, принудительно отключать беспроводные клиенты, атаковать скрытые сети и обходить фильтрацию по MAC-адресам.

WARNING

Вся информация предоставлена исключительно в ознакомительных целях. Ни редакция, ни автор не несут ответственности за любой возможный вред, причиненный материалами данной статьи.

Увеличиваем мощность Wi-Fi-адаптера

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

Чувствительность приемника

Чем тише ты становишься, тем больше сможешь услышать — таков девиз Offensive Security, продвигающей популярный дистрибутив Kali Linux. Применительно к вардрайвингу он означает, что слушать эфир, находить в нем точки доступа Wi-Fi (далее — AP, access points) и собирать хендшейки нужно с максимально чувствительным приемником. То есть с таким адаптером, у которого высокое соотношение сигнал/шум.

Наивно ожидать его от USB-свистков со встроенными антеннами — у них очень слабый приемник, а слишком близко расположенные электронные компоненты генерируют сильные помехи. Поэтому важно выбрать Wi-Fi-адаптер не только с подходящим чипом, но и с адекватной схемотехникой (а в идеале — с хорошим экранированием).

Традиционно по этому показателю лидирует Alfa Network. Даже современные удешевленные ревизии без экранирующей пластины показывают чудеса. Например, AWUS051NH v2 лишен экранирования, но сделан все на том же чипе RT3572, и сделан качественно.

Чип RT3572
Вскрываем AWUS051NH v2

У него «правильный» чип RT3572 и весьма неплохая схемотехника (хотя у старых адаптеров от Alfa Network она еще лучше). За две минуты сканирования в моем тесте он поймал 70 точек доступа с уровнем сигнала 18 дБм и выше.

Улов AWUS051

Сравним с результатами другого адаптера — Netis WF2150. Аналогичное место и время, те же две минуты сканирования.

Улов WF2150

Всего 49 AP, а уровень сигнала от большинства из них упал ниже 18 дБм. Несмотря на «правильный» чип RT5572N, результаты оказываются плачевными из-за примитивной схемы самого адаптера. Как уже писал ранее, можно его разобрать и подключить внешнюю антенну к миниатюрному гнезду на плате. Однако коэффициент усиления (КУ) внешней антенны — тоже палка о двух концах, поскольку вместе с полезным сигналом растет и уровень шумов.

Прежде чем менять антенну, обрати внимание на диаграмму направленности и поэкспериментируй с частично направленными антеннами. Узким лучом «яги» сложно прицелиться, а вот панельные антенны оказались очень удобны на практике. Они дадут тебе широкий сектор градусов в шестьдесят. По выбранному направлению они продемонстрируют результат примерно в шесть раз лучше, чем если бы ты размахивал полуметровым диполем.

INFO

Антенна с более высоким КУ порой дает результаты хуже, чем штатная кроха на 3 дБи. Поэтому смотри на тип антенны, расположение антенного модуля и его экранирование, а не пытайся сравнивать децибелы в лоб и просто взять палку подлиннее. Только сочетание чипа с поддержкой режима мониторинга и приемника с высокой чувствительностью позволит захватить качественные хендшейки, содержащие всю необходимую информацию для восстановления пароля подключения.

Загрузка ...

Мощность передатчика

Сидеть в засаде с чувствительным приемником совершенно безопасно, однако прождать сбор хендшейков можно не один час. Продвинутые атаки на беспроводные сети занимают минуты и строятся на том, что ты действуешь активно. Например, рассылаешь пакеты деавторизации, вынуждая легальные клиенты атакуемой точки доступа выполнять постоянный реконнект. Либо ты просто глушишь реальную AP, подменяя ее в эфире своим «злым клоном», и напрямую получаешь пароли от доверчивых клиентских устройств. Все это требует мощного передатчика, но где его взять?

Есть два варианта: сразу обзавестись мощным либо прибавить мощности имеющемуся. В первом случае могут быть проблемы с покупкой, особенно из-за рубежа. Устройства с мощностью выше 100 мВт часто задерживают на таможне. Плюс любая покупка требует затрат, поэтому рассмотрим второй вариант.

WARNING

Работая на высокой мощности, адаптер быстро перегревается (особенно в режиме инжекта пакетов), вызывает помехи связи и представляет некоторую опасность для здоровья. Поэтому не ставь сразу 33 dBm. Попробуй начать с 22 и плавно увеличивать значение. Шкала здесь логарифмическая, поэтому прибавка на пару-тройку dBm дает двукратное повышение мощности.

По умолчанию все Wi-Fi-модули стартуют на минимальной мощности. В таком режиме они запускаются согласно стандарту ISO 3166, который отражен в базе данных беспроводных устройств. В Linux это wireless regulatory database. В Kali Linux (включая Nethunter) она находится по адресу /lib/crda/regulatory.bin. Этот файл считывает агент центральной базы данных регламентированных настроек (Central Regulatory Domain Agent — CRDA) и отправляет ядру информацию о том, какая мощность допустима для передатчика в данном регионе. Таким образом, в ОС действует общая системная настройка мощности передатчика для любых Wi-Fi-адаптеров на конкретном беспроводном интерфейсе.

По умолчанию обычно задан какой-нибудь код из региона EMEA, где разрешаются только жалкие 100 мВт (20 дБм). Поэтому, подключив любой донгл, ты будешь тщетно слать пакеты deauth и пытаться заглушить найденные AP. Мало кто услышит твои 20 дБм, а львиная доля команд отфильтруется целевыми устройствами как помехи.

Посмотреть текущий регион, доступные каналы и разрешенные пределы мощности можно командой iw list, однако ее выдача получается очень длинной (на несколько экранов).

Смотрим параметры беспроводных устройств

Быстро проверить MAC-адрес и заданную мощность передатчика удобнее командой iw <имя_интерфейса> info.

Экспресс-проверка настроек

Во времена BackTrack можно было просто взять адаптер посерьезнее (например, от Alfa Network) и сразу получить прибавку мощности. Дело в том, что в них изначально был прошит такой региональный код, который позволяет использовать большую мощность. Например, код «BO» — Боливия. Когда-то там была разрешена мощность передатчиков IEEE 802.11b/g/n до 2000 мВт (33 дБм). Это в двадцать раз больше значения по умолчанию в России. Сейчас в Боливии действует ограничение в 30 дБм (1000 мВт), но это все равно на порядок лучше дефолтных настроек.

Сегодня региональные настройки ужесточились, а одна и та же модель обзавелась парой-тройкой ревизий. Поэтому каждая покупка «Альфы» превратилась в лотерею. Можно нарваться на удешевленную ревизию или просто грубую подделку. Напрашивается вывод: надо вручную сменить регион, подключить «Альфу» или другой проверенный адаптер, задать более высокую мощность передатчика и наслаждаться жизнью. Действительно, в большинстве дистрибутивов для пентеста это делается просто. Я специально проверил пять разных: Kali, BugTraq II, Backbox, Cyborg и Matriux. Везде команда смены региона и увеличения мощности сработала буквально в пять строк.

Какие-то особенности были только в Backbox. Название беспроводного интерфейса в нем выглядит как wlxmac, где вместо mac — адрес адаптера, записанный в нижнем регистре. Утилита macchanger отрабатывает корректно, однако название интерфейса остается прежним. Это надо учесть в последней команде его активации (см. далее по тексту).

Хитрое название wlan в Backbox
Загрузка ...

Общий принцип софтового увеличения мощности передатчика простой, но тут важны детали. Поэтому разберем его пошагово на примере Kali 2018.1.

INFO

Практически все команды выполняются от имени суперпользователя. Запусти терминал под рутом или дописывай sudo в начале каждой строки.

Сначала мы определяем имена беспроводных интерфейсов командой iwconfig. Видим, к примеру, wlan0 и wlan1 — как понять, какой из них нужный? Кроме многократно описанных красноглазых способов, есть и другие — быстрые и гарантированные.

Первый способ: физически отключаем USB-донгл и пишем команду iwconfig заново. Тот интерфейс, которого теперь нет в списке, и был нужным.

Определяем беспроводные интерфейсы

Второй способ: вызываем wifite. Он хоть и считается примитивным скриптом, зато сразу спрашивает, какой интерфейс использовать, и обозначает их уже более внятно — с указанием чипсета и задействованных драйверов. Если в названии wlan есть известный чипсет и окончание USB — он и нужен.

Смотрим номер wlan в wifite

После того как определились с названием беспроводного интерфейса, отключаем его.

ifconfig wlan1 down

На этом этапе желательно сменить MAC-адрес адаптера.

 macchanger -r wlan1

Ключ -r задает случайный адрес, а если хочешь указать определенный, используй ключ --mac. Например:

macchanger --mac=2F:4B:D9:33:89:0B wlan1

Напоминаю, что первые три цифры указывают производителя. Их список (OUI vendor list) смотри здесь или здесь. Он пригодится, если ты хочешь сымитировать подключение от устройства другого вендора или не слишком выдавать атаку полностью случайным MAC-адресом. К тому же многие AP сегодня сверяются с OUI и просто отказывают в подключении клиентам с MAC-адресом неизвестного производителя.

Теперь задаем название региона, в котором разрешены передатчики мощностью 30 дБм или выше.

iw reg set BO

Помимо BO, для повышения мощности также успешно используются регионы AM, BZ, GR, GY, NZ, VE и другие (полный список смотри в файле db.txt, ссылка на него есть во врезке далее по тексту). Опционально проверяем новую установку региона:

iw reg get

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

iwconfig wlan1 txpower 30

Поднимаем его:

ifconfig wlan1 up

и проверяем результат:

iwconfig

Должно получиться примерно так, как на скриншоте ниже.


Если не удалось, то внимательно проверь команды еще раз. Также учти, что общую настройку iw reg set может игнорировать драйвер. На моей практике такое встречалось с драйвером ath9k htc и чипом Qualcomm Atheros AR9271. На нем, в частности, производится модель AWUS036NHA. Поэкспериментируй с другими драйверами, адаптерами и дистрибутивами Linux.

INFO

Настройки wireless regdb прописаны в файле db.txt внутри архива. В нем ты увидишь регионы и с большей разрешенной мощностью, но не спеши радоваться. Даже если выставить 36 дБм, то совсем не факт, что твой донгл от этого станет дальнобойнее. Большинство USB-адаптеров не дотягивают и до 30 дБм из-за чисто конструктивных ограничений. Дальнейшее устранение софтовых лимитов им не поможет.

После увеличения мощности можно гораздо эффективнее выполнять атаки на AP с использованием деаутентификации подключенных к ним клиентов. В примере ниже до целевой точки доступа примерно 20 метров и две кирпичные стены. Без увеличения мощности передатчика ее клиенты просто не слышат команды deauth. Если поднять мощность донгла с 20 до 30 дБм, то принудительное отключение ее клиентов и захват хендшейка занимает менее восьми минут.

Успешный захват хендшейка

Если пароль словарный, то он быстро вскроется на том же ноутбуке. Иначе попробуй сбрутить его на видюхах (см. статью «Брут на GPU») или в каком-нибудь онлайновом сервисе.

Подбор пароля в EDPR
Проверка хендшейка и его брут в облаке

Также тебе может пригодиться онлайновый конвертер .cap → hashcat и анализатор файлов .pcap. Преобразовать .cap в .pcap можно с помощью tshark:

tshark -F libpcap -w <имя_файла_pcap> -r <имя_файла_cap> 

Ранее мы писали о взломе Wi-Fi со смартфона, но выполнять продвинутые атаки с него очень неудобно (а некоторые — технически невозможно). Нужно каким-то образом подключать сразу два внешних адаптера и (желательно) внешний аккумулятор, а потом долго мучиться с повышением мощности их передатчиков. В пять строк это уже не сделаешь — там семь кругов ада с make/install и отловом ошибок. Если тебе хочется хайтек-мазохизма, я как-нибудь поделюсь с тобой этой болью, а сейчас лучше возьми ноутбук и запусти десктопную Kali.

Загрузка ...

Узнаём имена скрытых сетей

Имя беспроводной сети (SSID или ESSID) иногда специально скрывают для ее защиты. Действительно, так отсекаются неофиты и поток желающих подключиться к AP заметно уменьшается: если цель не видно, многие ее не атакуют. Однако узнать SSID довольно просто: эта информация постоянно транслируется в эфир.

Каждый клиент указывает в «рукопожатии» имя сети (SSID), ее цифровой идентификатор (BSSID, обычно совпадает с MAC AP) и свой MAC-адрес. Поэтому атака деавторизации успешно используется для выяснения SSID скрытых сетей. Если удастся перехватить хендшейк при подключении легального клиента к выбранной точке доступа, то мы сразу узнаем ее имя. Достаточно написать простейшую команду и подождать.

airodump-ng wlan1

Подразумевается, что твой донгл определяется как wlan1, его мощность уже увеличена, а сам он переключен в режим монитора. Если еще нет, то просто выруби его (ifconfig wlan1 down), и airodump-ng сам переведет его в monitor mode.

Ждать хендшейка неопределенно долго, поэтому давай ускорим процесс. Откроем второе окно терминала и отправим в нем широковещательную команду деавторизации, заставив всех клиентов выбранной AP заново подключиться и прокричать ее SSID на весь эфир.

aireplay-ng -0 5 -a D8:FE:E3:XX:XX:XX wlan1

Этой командой мы отправили пять пакетов deauth всем клиентам точки доступа с MAC-адресом D8:FE:E3:и так далее (часть адреса, как обычно, скрываю, наслаждаясь паранойей). Результат не заставил себя ждать. Буквально сразу в основном окне airodump-ng появилось имя сети. Пока оно было скрыто, вместо имени отображалась его длина (в данном примере — шесть символов).

Быстро узнаем SSID скрытой сети

Обходим фильтрацию по MAC-адресу

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

Однако нам важно другое: если клиентское устройство соединилось с выбранной точкой доступа, значит, оно гарантированно есть в ее «белом списке». Осталось кикнуть его прочь с целевой AP и присвоить его (открыто передаваемый в эфир) MAC-адрес своему адаптеру Wi-Fi. Чтобы успеть подключиться вместо доверенного девайса, команду деавторизации лучше запустить параллельно в другом окне терминала и отправлять их со второго донгла. Вот как это выглядит поэтапно на AP из примера выше.

  1. Поднимаем мощность адаптера, маскируем его MAC-адрес и переводим в режим монитора (см. первую часть статьи).

  2. Слушаем эфир:

    airodump-ng wlan1
    

    В таблице будут отображаться точки доступа и MAC-адреса подключенных к ним клиентов (см. столбец «STATION» напротив нужной AP).

    Узнаем MAC-адреса клиентов

  3. Присваиваем одному из своих донглов этот MAC-адрес.

    macchanger --mac=64:DB:43:XX:XX:XX wlan1
    
  4. Со второго адаптера шлем пакеты деавторизации.

    aireplay-ng -0 5 -a D8:FE:E3:XX:XX:XX wlan1
    
  5. Подключаемся первым адаптером, как только настоящий клиент отрубится от AP.

Выводы

Для выполнения качественного пентеста беспроводных точек доступа необходимо приобрести пару USB-адаптеров Wi-Fi с подходящими чипами и доработать их. Подключить вместо штатных антенн направленные внешние и повысить мощность передатчика, увеличив значение txpower.

Скрытое имя беспроводной сети и фильтрация клиентов по MAC-адресам слабо препятствуют ее взлому. SSID и подходящие адреса из «белого списка» легко узнать, просто дождавшись очередного хендшейка или сразу выполнив атаку деавторизации.

Комментарии (15)

  • Неплохо как некоторая компиляция общей информации по теме, но нового практически ничего. Даёшь хардкор с программирование на Ц и тру стори от пентестеров!

    • Это и есть компиляция. Про отдельные моменты много где можно прочесть (в основном перепечатки времён BackTrack), а вот детально и с проверкой в последних дистрах - шиш.

  • вызывать wifite с целью определить имя сетевого интерфейса - очень оригинально

  • Я бы добавил команду besside-ng, так как новичками будет с ней проще работать.

  • Присоединяюсь к besside-ng. И можно добавить сайтик для любителей паяльника lan23.ru

  • Спасибо за статью, прочитал с удовольствием!
    Раз уж мы в ней заговорили о macchanger, задам вопрос: почему при его использовании адрес адаптера уважаемой всеми нами фирмы меняется, а после поднятия интерфейса и подключения к AP снова становится родным.
    ifconfig wlan1 down
    macchanger -r wlan1
    /etc/init.d/networking restart
    ifconfig wlan1 up # Все ок, адрес сменился, но как только происходит подключение к AP iwconfig опять показывает родной.
    ???

    • Dreamcorp, проблему воспроизвести не удалось.
      У меня macchanger корректно отрабатывает в Kali 2018.1. Во всяком случае, в логах роутера отображается фейковый, а не реальный MAC-адрес адаптера.
      ¯\_(ツ)_/¯

  • Данный трабл наблюдается в Kali в Unumtu все норм.

  • Из изложенной тут информации вообще не понятно зачем две алфы в заголовки. Все что тут изложено а по факту не чего нужна только одна и то не обязательна алфа. Два адаптера нужно только в том случаи если ты делаешь злого двойника и то можно сделать при желании это все через один адаптер

  • Вот интересно. У плат mPCIe или mPCIe half схемотехника будет лучше чем в обычном USB донгле? Место там ведь больше. Как насчет использовать такую карту с каким-нибудь переходником на USB? Не лучше будет вариант?
    В корпус воткнуть все это - это второй вопрос.

Похожие материалы