- HackWare.ru
- Этичный хакинг и тестирование на проникновение, информационная безопасность
- Атака на Wi-Fi с WPS, используя Reaver
- Что такое WPS
- Уязвимость WPS
- Защита от взлома WPS
- Какая беспроводная карта подойдёт для перебора WPS
- Алгоритм атаки на WPS
- Перевод беспроводной карты в режим монитора
- Поиск точек доступа с включённым WPS
- Проверка на уязвимость Pixie Dust в Reaver
- Полный перебор WPS пинов с Reaver
- Получение пароля Wi-Fi при известном WPS пине в Reaver
- HackWare.ru
- Этичный хакинг и тестирование на проникновение, информационная безопасность
- Эффективный подбор WPS ПИНа по базе известных и сгенерированным ПИНам
- Заключение
HackWare.ru
Этичный хакинг и тестирование на проникновение, информационная безопасность
Атака на Wi-Fi с WPS, используя Reaver
Что такое WPS
Wi-Fi Protected Setup (защищённая установка), WPS — стандарт (и одноимённый протокол) полуавтоматического создания беспроводной сети Wi-Fi.
WPS придумывался для упрощения развёртывания и подключения к Wi-Fi сетям.
Есть два типа WPS: WPS с пин-кодом из 8 цифр, на клиенте нужно ввести тот же код, что и на точке доступа, и кнопка WPS — нужно нажать кнопку на точке доступа и на клиенте с интервалом меньше двух минут, тогда они соединятся друг с другом.
Точки доступа, у которых включён WPS, уязвимы к атаке брут-форса (перебора) данного ПИНа. После того, как подобран WPS ПИН можно подключиться к точке доступа, а также узнать её WPA/WPA2 пароль. Перебор возможен только на точках доступа, для которых нужно вводить цифры, но невозможен там, где нужно нажимать кнопки.
Всего необходимо перебрать только 11000, что можно сделать за часы-дни.
Для перебора WPS ПИНов используются разные программы, самыми популярными являются Reaver и Bully. В данной инструкции я покажу, как использовать Reaver для взлома Wi-Fi.
Уязвимость WPS
В декабре 2011 Стефан Фибёк (англ. Stefan Viehböck) и Крейг Хеффнер (англ. Craig Heffner) рассказали о серьёзных прорехах в протоколе WPS. Оказалось, что если в точке доступа активирован WPS c PIN (который по умолчанию включен в большинстве роутеров), то подобрать PIN-код для подключения можно за считанные часы.
PIN-код состоит из восьми цифр — следовательно, существует 108 (100 000 000) вариантов PIN-кода для подбора. Однако количество вариантов можно существенно сократить. Дело в том, что последняя цифра PIN-кода представляет собой контрольную сумму, которая можно вычислить на основании первых семи цифр. Таким образом количество вариантов уже сокращается до 107 (10 000 000).
Авторизация по WPS предполагает отправку клиентом последовательности цифр PIN-кода и пакетов M4 или M6 и ответы на них от базовой станции. Если первые 4 цифры PIN-кода некорректны то получив их точка доступа отправит EAP-NACK сразу после получения M4, а если была ошибка в последних 3 цифрах правой части (8-ое число не считаем так как оно легко генерируется атакующим по формуле) — то после получения M6. Таким образом, недостаток протокола позволяет разделить PIN-код на две части, 4 начальные цифры и 3 последующие и проверять каждую часть на корректность отдельно используя базовую станцию как оракула, который подсказывает правильная ли последовательность цифр была отправлена.
Если PIN-код разбить на две части: Следовательно, получается 10 4 (10 000) вариантов для первой половины и 10 3 (1000) для второй. В итоге это составляет всего лишь 11 000 вариантов для полного перебора, что в более 9000 раз меньше исходного числа вариантов 10 8 .
Таким образом вместо одного большого пространства значений 10 7 мы получаем два по 10 4 и 10 3 , и, понятно, что 10 7 <> 10 4 +10 3 . В итоге достаточно протестировать 11 000 комбинаций (больше 4-х цифр на тысячу) вместо 10 000 000.
Также были обнаружены уязвимости в генераторе случайных чисел маршрутизаторов некоторых производителей. Уязвимость получила название pixie dust. Для уязвимых роутеров можно получить pin после первой попытки и оффлайн-брутфорса.
Защита от взлома WPS
Защититься от атаки можно пока одним способом — отключить WPS с пином в настройках роутера. Правда, сделать это возможно далеко не всегда, иногда WPS отключается только полностью. Самое большее, что могут сделать производители — выпустить прошивку, позволяющую вводить таймаут на блокировку функции, например, после 5 неудачных попыток ввода PIN-кода, что усложнит брутфорс и увеличит время подбора идентификатора злоумышленником.
Какая беспроводная карта подойдёт для перебора WPS
Необходима беспроводная карта, которая поддерживает режим монитора и способна делать инъекции. Т.е. в теории должна была бы подойти любая карта из этого списка.
Но на практике в Reaver присутствуют несколько багов, из-за которых невозможно выполнить перебор WPS пинов беспроводными картами с чипсетом Ralink, которые используют драйвера rt2800usb (чипы RT3070, RT3272, RT3570, RT3572 и т.д.), а также для карт с чипсетом Intel.
Разработчики Reaver (мода reaver-wps-fork-t6x) пытаются исправить эту ситуацию, в последнем релизе уже устранено несколько багов, но работа ещё не закончена. На момент написания рекомендуется использовать с Reaver беспроводной адаптер Alfa AWUS036NHA , поскольку у неё чипсет Atheros AR9271, который прекрасно работает с Reaver.
Если у вас есть только карта на чипсете Ralink, то вам следует изучить материал:
Алгоритм атаки на WPS
- Переводим беспроводной интерфейс в режим монитора
- Ищем цели для атаки
- Проверяем на подверженность Pixie Dust
- Пробуем, подойдут ли ПИНы из базы данных известных ПИНов и сгеренированные по определённым алгоритмам.
- Запускаем полный перебор, если предыдущие шаги не дали результата.
- Если получен ПИН, но не показан WPA пароль, то запускаем команды для получения пароля от Wi-Fi.
Перевод беспроводной карты в режим монитора
Для поиска сетей с WPS, а также для атаки на них нам понадобиться перевести Wi-Fi карту в режим монитора.
Закрываем программы, которые могут помешать нашей атаке:
Узнаём имя беспроводного интерфейса:
И переводим его в режим монитора (замените wlan0 на имя вашего интерфейса, если оно отличается):
Новый сетевой интерфейс в режиме монитора также называется wlan0.
Если у вас другое имя беспроводного сетевого интерфейса, то во всех последующих командах вставляйте его вместо wlan0.
Поиск точек доступа с включённым WPS
Очень многие ТД имеют функционал по работе с WPS. Но у многих эта функция отключена, а у тех, у которых включена, может быть заблокирована (например, из-за нескольких неудачных попыток подбора ПИНа).
Чтобы собрать информацию о точках доступа мы воспользуемся программой Wash, которая поставляется вместе с Reaver и именно для этого и предназначена.
Через несколько минут работы программы будет выведен похожий список:
Для завершения работы программы нажмите CTRL+c.
Wash – это утилита для выявления точек доступа с включённым WPS. Выше показан пример исследования на live («живом») интерфейсе, также она может сканировать pcap файлы (несколько за один раз).
Wash показывает следующую информацию об обнаруженных точках доступа:
Для атаки подходят только точки доступа, у которых в колонке Lck стоит No, т.е. у которых не заблокирован WPS.
По умолчанию wash выполняет пассивное исследование. Т.е. программа не отправляет какие-либо пакеты и остаётся абсолютно незаметной для возможных систем мониторинга беспроводной активности. Тем не менее, можно указать опцию -s и тогда wash будет отправлять probe requests (зондирующие запросы) к каждой ТД, это позволит получить больше информации о ТД.
Для того, чтобы проводить поиск на 5GHz 802.11 каналах используется опция -5.
Больше информации о Wash и её опциях, а также ссылки на дополнительные инструкции вы найдёте здесь https://kali.tools/?p=359.
Искать ТД с WPS можно и другими инструментами, дополнительная информация об этом в статье «Поиск беспроводных точек доступа с включённым WPS: использование программ Wash, Airodump-ng и Wifite»,
Проверка на уязвимость Pixie Dust в Reaver
Атака Pixie Dust позволяет очень быстро получить ПИН. Но не все Точки Доступа подвержены этой уязвимости.
Для проверки конкретной ТД на эту уязвимость с помощью Reaver используется опция -K. Т.е. команда имеет следующий вид:
MAC адрес Точки Доступа можно взять из столбца BSSID полученного в Wash вывода.
К примеру, меня заинтересовала следующая точка доступа:
Тогда команда для атаки будет выглядеть так:
Как можно увидеть на скриншоте, ТД оказалась уязвимой, и получен её WPS пин:
При выполнении атаки Pixie Dust не происходит получение WPA пароля (пароля от Wi-Fi сети), как его узнать будет показано ниже.
Если точка доступа неуязвима к Pixie Dust, то прежде чем перейти к полному перебору рекомендуется попробовать наиболее вероятные варианты для атакуемой Точки Доступа. Как это сделать описано в заметке «Эффективный подбор WPS ПИНа по базе известных и сгенерированным ПИНам».
Полный перебор WPS пинов с Reaver
Если ни один из описанных методов не помог, то переходим к полному перебору, который может занять часы или даже сутки.
Команда для запуска перебора похожа на предыдущую, но отсутствует опция, запускающая атаку Pixie Dust:
Перебор WPS пинов может идти неудачно по многим причинам, поэтому для более подробного вывода, чтобы определить, в чём проблема, используются опции -v, -vv или -vvv. Как можно догадаться, чем больше букв v, тем больше будет выведено подробной информации.
Дополнительную информацию о других опциях Reaver, а также подробное описание других ходовых опций, вы найдёте здесь: https://kali.tools/?p=355
Получение пароля Wi-Fi при известном WPS пине в Reaver
Если атака Pixie Dust прошла успешно, то показывается только ПИН. При полном переборе показывается и пин и WPA пароль. Если у вас уже есть пин, то для получения пароля Wi-Fi сети вам нужно в Reaver использовать опцию -p, после которой указать известный ПИН.
Если опция -p по каким-то причинам не срабатывает для вас, то попробуйте использовать wpa_supplicant, как это описано в заметке «Решение проблемы: Reaver показывает WPS пин, но не показывает пароль WPA-PSK».
HackWare.ru
Этичный хакинг и тестирование на проникновение, информационная безопасность
Эффективный подбор WPS ПИНа по базе известных и сгенерированным ПИНам
Перебор WPS ПИНов с Reaver занимает часы или даже сутки, особенно если атакуемая Точка Доступа далеко и для проверки одного и того же пина приходится делать несколько попыток.
Некоторые точки доступа уязвимы к атаке Pixie Dust, которая выполняется инструментом Pixiewps. Он позволяет раскрыть пин за минуты или даже секунды. Уязвимы не все точки доступа, поэтому после проверки на Pixie Dust, если атака потерпела неудачу, приходится браться за полный перебор.
Но до полного перебора можно попробовать ещё один эффективный метод, который включает в себя перебор по малому количеству очень вероятных ПИНов.
Эти ПИНы берутся из двух источников:
- база данных известных ПИНов;
- ПИНы, сгенерированные по определённым алгоритмам.
База данных известных ПИНов составлена для Точек Доступа определённых производителей для которых известно, что они используют одинаковые WPS ПИНы. Эта база данных содержит первые три октета MAC-адреса и список ПИНов, которые весьма вероятны для данного производителя.
Общеизвестны несколько алгоритмов генерации WPS ПИНов. Например, ComputePIN и EasyBox используют MAC-адрес Точки Доступа в своих расчётах. А алгоритм Arcadyan также требует ID устройства.
Поэтому атака на WPS ПИН может заключаться в следующих действиях, идущих по мере уменьшения их эффективности:
- Проверка на подверженность Pixie Dust
- Проверка по базе данных известных ПИНов и по сгенерированным с помощью алгоритмов ПИНам
- Полный перебор WPS ПИНов
В этой заметке я подробнее расскажу именно о втором варианте – проверка по БД и по сгенерированным ПИНам.
Данный вариант атаки автоматизирован в airgeddon. Поэтому переходим туда:
Хотя airgeddon сам умеет переводить беспроводную карту в режим монитора, никогда не будет лишним перед этим выполнить следующие команды:
Они завершат процессы, которые могут нам помешать.
Поскольку мы будет выполнять атаку методом перебора WPS ПИНа, то владельцам беспроводных карт с чипсетом Ralink, которые используют драйвера rt2800usb (чипы RT3070, RT3272, RT3570, RT3572 и т.д.), а также для карт с чипсетом Intel в данный момент недоступно использование Reaver в airgeddon, поэтому выбирайте опцию с Bully, эта программа работает с этими чипсетами чуть лучше.
Запускаем airgeddon, переводим беспроводную карту в режим монитора и переходим в «Меню атак на WPS»:
Нам нужно начать с выбора цели, это четвёртый пункт меню. ТД с заблокированным WPS помечены красным, чем выше уровень сигнала, тем выше вероятность удачного перебора ПИНа:
Далее выбираем пункт «12. (reaver) Атака на основе базы данных известных PIN».
У нас спрашивают про таймаут, ставьте на максимальное значение (100), поскольку ПИНов не очень много и будет обидно пропустить верный пин из-за задержек, вызванных помехами связи:
Далее мне сообщается:
Поиск в базе данных PIN. Подождите немного…
В базе данных PIN не найдено совпадений
В БД отсутствуют значения для выбранной ТД – ничего страшного, несколько дополнительных пинов будет сгенерировано алгоритмами. В любом случае будут вычислены и добавлены ПИНы из общеизвестных алгоритмов, таких как ComputePIN и EasyBox, поскольку вся необходимая информация для них уже имеется (нужен только MAC-адрес).
Далее программа нам сообщает:
Некоторые добавленные PIN были вычислены алгоритмами (ComputePIN, EasyBox, и т.д.), но вы можете добавить ещё один (Arcadyan). Для его вычисления требуются определенные данные, и необходимо выполнить фоновое сканирование. Процесс может быть очень медленным. Вы хотите добавить PIN, вычисленные этим алгоритмом? [y/N]
На самом деле, процесс не особо медленный – на него установлен таймаут в четыре минуты, а при хорошем уровне сигнала сбор информации завершиться быстрее. Кстати, если информация собирается все четыре минуты, а особенно если этот процесс завершился по таймауту, то это плохой признак – вероятно, сигнал слишком слабый, чтобы можно была запустить перебор ПИНов.
Я рекомендую использовать алгоритм Arcadyan и ответить y:
Далее программа сообщает:
Алгоритм Arcadyan бесполезен для выбранной целевой сети, действительное значение не может быть рассчитано
Добавлены PIN, рассчитанные с помощью алгоритмов. Атака будет произведена в общей сложности по 3 PIN
После остановки атаки (используя [Ctrl+C]), окно автоматически не закроется. У вас будет время переписать пароль, если атака завершилась успешно. Затем вам нужно закрыть его вручную
Хорошо, продолжаем как есть. Запускается автоматический подбор по каждому из пинов.
Уже второй ПИН оказался верным.
Т.е. даже если бы на ТД была блокировка после трёх неверно введённых ПИНов, мы всё равно бы успели узнать её пароль. Практически также быстро как с Pixie Dust!
Удачно завершился взлом Keenetic-8955, попробуем ещё одну ТД с именем Keenetic-*:
Можно предположить, что ТД Keenetic-* уязвимы к атакам подбора по сгенерированным алгоритмами ПИНам.
Для Keenetic13 подобран ПИН, но не удалось узнать WPA пароль (как подсказывает программа, возможно, из-за низкого качества сигнала) – пароль у меня уже есть, поэтому я не сильно расстроился:
А для ТД FTTX772802 выплыл интересный баг:
Т.е. и пин и пароль были получены, но программа автоматизации этого не заметила и проскочила полученный результат, запустив тестирование следующего пина, судя по всему из-за того, что момент получения пина совпал с истечением времени таймаута.. Поэтому просматривайте внимательнее результаты работы Reaver.
Заключение
Как видим, метод атаки на WPS ПИНы из базы данных и на сгенерированные по алгоритмам ПИНы имеет право на существование. При моих тестах обычно собиралось от 3 до 35 ПИНов, атаки имели переменный успех. Но в целом, результат весьма неплохой, особенно для ТД с сильным сигналом.
Если неудача связана с тем, что перебор некоторых ПИНов не был доведён до конца и завершился из-за таймаута, то есть смысл попробовать ещё раз для тестируемой ТД,
Алгоритм Arcadyan был добавлен в airgeddon начиная с 7.22 версии, на момент написания, это девелоперская (dev) версия.