Обзор Reaver
Reaver предназначен для подборки пина WPS (Wifi Protected Setup) методом перебора. Конечной целью является расшифровка пароля WPA/WPA2. Reaver создан для надёжной и практичной атаки на WPS, он прошёл тестирование на большом количестве точек доступа с разными реализациями WPS. В среднем, Reaver раскрывает пароль WPA/WPA2 в виде простого текста целевой точки доступа (ТД) за 4-10 часов, в зависимости от ТД. На практике, ему обычно нужна половина этого времени на предположение пина WPS и разгадки пароля.
Т.к. оригинальная версия Reaver не обновлялась с января 2012 года, то был сделан форк. Сайт форка —
Пожалуйста,
Вход
или
Регистрация
для просмотра содержимого URL-адресов!
. Последние изменения в форке датируются январём 2014 года.Жизнь не стоит на месте. И совсем недавно (в апреле 2015 года) была официально выпущена модифицированная версия форка Reaver. Сайт этой модификации —
Пожалуйста,
Вход
или
Регистрация
для просмотра содержимого URL-адресов!
. Главное её отличие в том, что она может использовать атаку Pixie Dust для нахождения верного пина WPS. Эта атака применима ко многим точкам доступа Ralink, Broadcom и Realtek. Атака, используемая для этой версии, разработана Wiire.Запускается модифицированная версия Reaver точно также, как и форк. О новых ключах форка и какие нововведения он нам несёт будет рассказано ниже.
Основные векторы взлома Wi-Fi сетей:
- перехват рукопожатий (хендшейков) и последующий их брутфорсинг
- подбор пина на ТД с включённым WPS.
Суть метода атаки Reaver — подбор WPS
Главное, что нам нужно от атакуемой точки доступа, это включённость на ней WPS. В случае правильного введения пина, ТД сама предоставит нам необходимые данные для аутентификации (в т.ч. WPA PSK).
Как уже было сказано, нужно ввести правильный пин. Думаю, все уже догадались, что Reaver занимается тем, что перебирает пины, пока не найдёт верный. Об этом пине известно следующее: это восьмизначное число. Вводить его можно в любое время — каких-либо действий со стороны владельца ТД не требуется. Нам не нужна никакая больше информация: ни о настройках ТД, ни о шифровании или конфигурации. Для восьмизначных чисел возможно 10^8 (100,000,000) вариантов. Но последняя цифра не является случайно, она рассчитывается по алгоритму, т. е. говоря простым языком, последнюю цифру мы всегда знаем, и количество возможных вариантов сокращается до 10^7 (10,000,000).
Ну и будто бы специально, чтобы нам было проще брутфорсить, пин делится на две половины, и каждая из этих половин проверяется индивидуально. Это означает, что для первой половины 10^4 (10,000) возможных вариантов, а для второй — всего 10^3 (1,000), т. к. последняя цифра не является случайной.
Reaver подбирает первую половину пина, а потом вторую. Общее число возможных вариантов, как мы только что посчитали, равняется 11,000. Скорость, с которой Reaver тестирует номера пинов полностью зависит от скорости с которой ТД может обрабатывать запросы. Некоторые достаточно быстрые — можно тестировать по одному пину в секунду, другие — медленнее, они позволяют вводить только один пин в 10 секунд.
Установка Reaver
Установите Kali Linux, там уже всё встроено. (Reaver, libpcap и libsqlite3).
Использование Reaver
Начинаем вводом команды
# airmon-ng
1
И смотрим на вывод, точнее нас интересует только интерфейс. Он называется wlan0. Теперь набираем команду airmon-ng start <имя_интерфейса>
У меня так:
# airmon-ng start wlan0
Для Reaver нужна следующая информация: имя интерфейса и BSSID целевой ТД. Узнать, какие ТД находяться в радиусе доступности, а также их BSSID можно так:
# airodump-ng --wps wlan0mon
2
Например, из этого списка меня заинтересовал ТД Kitty, её BSSID — 4C:72:B9:FE:B8:0C.
Вся необходима информация для запуска Reaver'а у меня есть. Останавливаем airodump-ng и запускаем Ривер.
# reaver -i wlan0mon -b 4C:72:B9:FE:B8:0C
Канал и SSID (при условии, что SSID не замаскирована) целевой ТД будет автоматически идентифицирована Reaver'ом, если они не заданы явным образом в командной строке:
# reaver -i wlan0mon -b 4C:72:B9:FE:B8:0C -c 4 -e Kitty
По умолчанию, если ТД переключает каналы, Reaver также будет соответственно переключать каналы. Тем не менее, эту функцию можно отключить, зафиксировав канал интерфейса:
# reaver -i wlan0mon -b 4C:72:B9:FE:B8:0C --fixed
Таймаут по умолчанию равен 5 секундам. Если нужно, этот период таймаута можно задать вручную (минимальный период таймаута — 1 секунда).
# reaver -i wlan0mon -b 4C:72:B9:FE:B8:0C -t 2
Дефолтный период между попытками пина — 1 секунда. Эта величина может быть увеличена или уменьшена до любого не отрицательного целого числа. Величина ноль означает без задержки:
# reaver -i wlan0mon -b 4C:72:B9:FE:B8:0C -d 0
Некоторые ТД временно блокирует их WPS состояние, обычно на 5 минут или меньше, когда выявлена «подозрительная» активность. По умолчанию, когда выявлен заблокированное состояние, Reaver будет проверять состояние каждый 315 секунд (5 минут и 15 секунд) и не будет продолжать брут-форсить, пока WPS состояние не разблокируется. Эта проверка может быть увеличена или уменьшена до любой не отрицательной целой величины:
# reaver -i wlan0mon -b 4C:72:B9:FE:B8:0C --lock-delay=250
Для дополнительного вывода, можно задать уровень подробности. Если опцию подробности написать дважды, то это увеличит количество выдаваемой информации и будет отображать каждую попытку пина:
reaver -i wlan0mon -b 4C:72:B9:FE:B8:0C -vv
Дефолтный период получения сообщений ответа M5 и M7 WPS — 0.1 секунды. Если нужно, этот период таймаута может быть задан автоматически (максимальный период таймаута — 1 секунда):
reaver -i wlan0mon -b 4C:72:B9:FE:B8:0C -T .5
Некоторые убогие реализации WPS разрывают соединение, если введён неверный пин, вместо того, чтобы отвечать сообщением NACK, как этого требует спецификация. В расчёте на это, если достигнут таймаут M5/M7, это лечится также установлением NACK по умолчанию. Тем не менее, если известно, что целевая ТД отправляет NACK'и (большинство делают), эта функция может быть отключена для улучшения совместимости. Обычно эта опция не используется, поскольку Reaver автоматически определяет, отправляет ли ТД надлежащие ответы с NACK'и или нет:
reaver -i wlan0mon -b 4C:72:B9:FE:B8:0C --nack
Хотя большинство ТД не заботятся об отправки им сообщения EAP FAIL для закрытия сессии WPS, иногда это необходимо. По умолчанию, эта функция отключена, но она может быть задействована для тех ТД, которым это нужно:
reaver -i wlan0mon -b 4C:72:B9:FE:B8:0C --eap-terminate
Когда случаются 10 последовательных неожиданных ошибок WPS, будет отображено сообщение предупреждения. Поскольку это может быть знаком того, что ТД ограничивает скорость попыток пина или просто перегружена, то на этот случай может быть задан период сна, который программа будет бездействовать при появлении этого сообщения предупреждения:
reaver -i wlan0mon -b 4C:72:B9:FE:B8:0C --fail-wait=360
Ускоряем атаку
По умолчанию, Reaver имеет задержку в 1 секунду между попытками пина. Вы можете отключить эту задержку добавив «-d 0» к командной строке, но некоторые ТД не любят этого:
#reaver -i wlan0mon -b 4C:72:B9:FE:B8:0C -d 0
Другая опция, которая может ускорить атаку, это –dh-small. Эта опция инструктирует Reaver использовать маленькие секретные номера Диффи-Хеллмана, чтобы уменьшить вычислительную нагрузку на целевую ТД:
#reaver -i wlan0mon -b 4C:72:B9:FE:B8:0C --dh-small
Reaver, атака Pixiewps и ключ -K 1
Не так давно открытая атака Pixiewps позволяет взламывать некоторые модели роутеров за считанные секунды. Модификация форка Reaver — t6x — для использования атаки Pixie Dust включена в Kali Linux. При этом она заменяет оригинальную версию. Т.е. запускать её нужно точно также, как и устаревший Reaver. Единственным её отличием является поддержка атаки Pixiewps и нескольких новых ключей. Одним из этих ключей является -K 1. Если задать этот ключ, то Reaver попытается осуществить в отношении выбранной ТД атаку Pixiewps. Т.е. теперь команда будет выглядеть так:
#reaver -i wlan0mon -b 4C:72:B9:FE:B8:0C -K 1
Подмена MAC
В некоторых случаях вам может хотеть/нужно подменить ваш MAC адрес. Reaver поддерживает подмену MAC мадрес с опцией –mac, но вам нужно убедиться, что MAC адрес корректно подменён, т. к. есть нюансы.
Изменение MAC адреса виртуального интерфейса режима монитора (теперь называемого wlan0mon) НЕ БУДЕТ РАБОТАТЬ. Вы должны изменить MAC адрес физического интерфейса вашей беспроводной карты. Например:
# ifconfig wlan0 down# ifconfig wlan0 hw ether 04E:AD:BE:EF:45# ifconfig wlan0 up# airmon-ng start wlan0# reaver -i wlan0mon -b 4C:72:B9:FE:B8:0C -vv --mac=04E:AD:BE:EF:45