Атака на 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, то вам следует изучить материал:

Алгоритм атаки на WPS

  1. Переводим беспроводной интерфейс в режим монитора
  2. Ищем цели для атаки
  3. Проверяем на подверженность Pixie Dust
  4. Пробуем, подойдут ли ПИНы из базы данных известных ПИНов и сгеренированные по определённым алгоритмам.
  5. Запускаем полный перебор, если предыдущие шаги не дали результата.
  6. Если получен ПИН, но не показан 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».

Рекомендуемые статьи:

5 комментариев на Атака на Wi-Fi с WPS, используя Reaver

  1. Костя:

    Только мне кажется, что материал стал высасываться из апальца и дублировать статьи написаные ранее?

    • Alexey Alexey:

      Это русскоязычный вариант статьи, которую я готовлю для miloserdov.org. В рамках того сайта это не высасывание из пальца и даже не дубль. Я пишу на русском, а потом перевожу на английский в меру своих скромных способностей. Раз уж всё равно текст есть, то почему бы его не опубликовать?

      В рамках этого сайта можно считать дублем, но эта статья всё равно лучше предыдущей.

      П.с. звёздочки выполняют СЕО функцию (привлекают внимание в поисковой выдаче) и не служат для обратной связи, поэтому любые значения, отличные от 5 звёзд, исправляются на 5 звёзд.

  2. Cord:

    Привет

    Тестирую свою домашнию сеть через reaver пребором пина, при работе постоянно повторяется один и тотже пин , я так понимаю пин должен меняться

    WPS: A new PIN configured (timeout=0)
    WPS: UUID - hexdump(len=16): [NULL]
    WPS: PIN - hexdump_ascii(len=8):
         31 32 33 34 35 36 37 30                           12345670        
    WPS: Selected registrar information changed
    WPS: Internal Registrar selected (pbc=0)
    WPS: sel_reg_union
    WPS: set_ie
    WPS: cb_set_sel_reg
    WPS: Enter wps_cg_set_sel_reg
    WPS: Leave wps_cg_set_sel_reg early
    WPS: return from wps_selected_registrar_changed
    [+] Trying pin "12345670"
    
    • Alexey Alexey:

      Добавьте к команде опцию -vv, чтобы было больше информации. Какая у вас беспроводная карта? Посмотрите, что пишется в строках, которые начинаются с WARNING.

  3. Cord:

    Привет, привет изначально писал так :

     

    sudo reaver -i интерфейс -b MAC_адрес_ТД -vvv

    warningov не каких нету , я бы сразу проверил .

     

    карта: TP-LINK WN722N

    не каких проблем с другими пакетами нет.

     

    перезапущу еще ра все проверю

Добавить комментарий

Ваш e-mail не будет опубликован.