Атака на 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-код разбить на две части: Следовательно, получается 104 (10 000) вариантов для первой половины и 103 (1000) для второй. В итоге это составляет всего лишь 11 000 вариантов для полного перебора, что в более 9000 раз меньше исходного числа вариантов 108.
Таким образом вместо одного большого пространства значений 107 мы получаем два по 104 и 103, и, понятно, что 107 <> 104+103. В итоге достаточно протестировать 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, то вам следует изучить материал:
- Решение проблем Reaver: WARNING: Failed to associate with и WPS transaction failed (code: 0x03), re-trying last pin
- WiFi-autopwner: скрипт для автоматического поиска и аудита Wi-Fi сетей с низкой безопасностью
Алгоритм атаки на WPS
- Переводим беспроводной интерфейс в режим монитора
- Ищем цели для атаки
- Проверяем на подверженность Pixie Dust
- Пробуем, подойдут ли ПИНы из базы данных известных ПИНов и сгеренированные по определённым алгоритмам.
- Запускаем полный перебор, если предыдущие шаги не дали результата.
- Если получен ПИН, но не показан WPA пароль, то запускаем команды для получения пароля от Wi-Fi.
Перевод беспроводной карты в режим монитора
Для поиска сетей с WPS, а также для атаки на них нам понадобиться перевести Wi-Fi карту в режим монитора.
Закрываем программы, которые могут помешать нашей атаке:
sudo systemctl stop NetworkManager sudo airmon-ng check kill
Узнаём имя беспроводного интерфейса:
sudo iw dev
И переводим его в режим монитора (замените wlan0 на имя вашего интерфейса, если оно отличается):
sudo ip link set wlan0 down sudo iw wlan0 set monitor control sudo ip link set wlan0 up
Новый сетевой интерфейс в режиме монитора также называется wlan0.
Если у вас другое имя беспроводного сетевого интерфейса, то во всех последующих командах вставляйте его вместо wlan0.
Поиск точек доступа с включённым WPS
Очень многие ТД имеют функционал по работе с WPS. Но у многих эта функция отключена, а у тех, у которых включена, может быть заблокирована (например, из-за нескольких неудачных попыток подбора ПИНа).
Чтобы собрать информацию о точках доступа мы воспользуемся программой Wash, которая поставляется вместе с Reaver и именно для этого и предназначена.
sudo wash -i wlan0
Через несколько минут работы программы будет выведен похожий список:
Для завершения работы программы нажмите CTRL+c.
Wash – это утилита для выявления точек доступа с включённым WPS. Выше показан пример исследования на live («живом») интерфейсе, также она может сканировать pcap файлы (несколько за один раз).
Wash показывает следующую информацию об обнаруженных точках доступа:
BSSID BSSID Точки Доступа (т.е. MAC-адрес) Ch Канал ТД dBm Уровень сигнала ТД WPS Версию WPS, поддерживаемую ТД Lck Статус блокировки WPS Vendor Производитель ТД ESSID ESSID (т.е. имя) Точки Доступа
Для атаки подходят только точки доступа, у которых в колонке 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. Т.е. команда имеет следующий вид:
sudo reaver -i интерфейс -b MAC_адрес_ТД -K
MAC адрес Точки Доступа можно взять из столбца BSSID полученного в Wash вывода.
К примеру, меня заинтересовала следующая точка доступа:
BSSID Ch dBm WPS Lck Vendor ESSID -------------------------------------------------------------------------------- EE:43:F6:CF:C3:08 3 -81 2.0 No RalinkTe Keenetic-8955
Тогда команда для атаки будет выглядеть так:
sudo reaver -i wlan0 -b EE:43:F6:CF:C3:08 -K
Как можно увидеть на скриншоте, ТД оказалась уязвимой, и получен её WPS пин:
WPS pin: 36158805
При выполнении атаки Pixie Dust не происходит получение WPA пароля (пароля от Wi-Fi сети), как его узнать будет показано ниже.
Если точка доступа неуязвима к Pixie Dust, то прежде чем перейти к полному перебору рекомендуется попробовать наиболее вероятные варианты для атакуемой Точки Доступа. Как это сделать описано в заметке «Эффективный подбор WPS ПИНа по базе известных и сгенерированным ПИНам».
Полный перебор WPS пинов с Reaver
Если ни один из описанных методов не помог, то переходим к полному перебору, который может занять часы или даже сутки.
Команда для запуска перебора похожа на предыдущую, но отсутствует опция, запускающая атаку Pixie Dust:
sudo reaver -i интерфейс -b MAC_адрес_ТД
Перебор WPS пинов может идти неудачно по многим причинам, поэтому для более подробного вывода, чтобы определить, в чём проблема, используются опции -v, -vv или -vvv. Как можно догадаться, чем больше букв v, тем больше будет выведено подробной информации.
Дополнительную информацию о других опциях Reaver, а также подробное описание других ходовых опций, вы найдёте здесь: https://kali.tools/?p=355
Получение пароля Wi-Fi при известном WPS пине в Reaver
Если атака Pixie Dust прошла успешно, то показывается только ПИН. При полном переборе показывается и пин и WPA пароль. Если у вас уже есть пин, то для получения пароля Wi-Fi сети вам нужно в Reaver использовать опцию -p, после которой указать известный ПИН.
Пример:
sudo reaver -i wlan0 -b EE:43:F6:CF:C3:08 -p 36158805
Если опция -p по каким-то причинам не срабатывает для вас, то попробуйте использовать wpa_supplicant, как это описано в заметке «Решение проблемы: Reaver показывает WPS пин, но не показывает пароль WPA-PSK».
Связанные статьи:
- Новое в Wash и Reaver (94.4%)
- Поиск беспроводных точек доступа с включённым WPS: использование программ Wash, Airodump-ng и Wifite (84.8%)
- Эффективный подбор WPS ПИНа по базе известных и сгенерированным ПИНам (69.3%)
- Взлом WPS с Reaver (68.1%)
- WiFi-autopwner: скрипт для автоматического поиска и аудита Wi-Fi сетей с низкой безопасностью (68.1%)
- Как сбросить пароль Windows (RANDOM - 1.2%)
Только мне кажется, что материал стал высасываться из апальца и дублировать статьи написаные ранее?
Это русскоязычный вариант статьи, которую я готовлю для miloserdov.org. В рамках того сайта это не высасывание из пальца и даже не дубль. Я пишу на русском, а потом перевожу на английский в меру своих скромных способностей. Раз уж всё равно текст есть, то почему бы его не опубликовать?
В рамках этого сайта можно считать дублем, но эта статья всё равно лучше предыдущей.
П.с. звёздочки выполняют СЕО функцию (привлекают внимание в поисковой выдаче) и не служат для обратной связи, поэтому любые значения, отличные от 5 звёзд, исправляются на 5 звёзд.
Привет
Тестирую свою домашнию сеть через reaver пребором пина, при работе постоянно повторяется один и тотже пин , я так понимаю пин должен меняться
Добавьте к команде опцию -vv, чтобы было больше информации. Какая у вас беспроводная карта? Посмотрите, что пишется в строках, которые начинаются с WARNING.
Та же проблема. Постоянно отправляет запрос с одним и тем же пином. Насколько я понял эта строка выводит ошибку:
WPS transaction failed (code: 0x03), re-trying last pin
но что она обозначают совершенно не ясно…
Привет, привет изначально писал так :
sudo reaver -i интерфейс -b MAC_адрес_ТД -vvv
warningov не каких нету , я бы сразу проверил .
карта: TP-LINK WN722N
не каких проблем с другими пакетами нет.
перезапущу еще ра все проверю
В наличии имеется Alfa AWUS036NHA (оригинальная) и последняя версия Kali linux. Атака на WIFI методом перебора WPS не работает. Reaver каждый раз перебирает один и тот же пин.
Pixie Dust работает довольно хорошо, но только на сети с версией WPS 1.0 и разблокированным WPS.
Возможно я чего то не понимаю, может возмоно как-то пофиксить WPS брутфорс?
Можно ли заняться переносом скрипта на MAC OS? Я мог бы это сделать..