Механизм четырёхэтапного рукопожатия организован таким образом, что точка доступа (ТД) не обладая паролем может получить всё необходимое, для его подбора.
Атакующему необходимо создать точку доступа с ESSID (именем сети), совпадающим с именем сети, от которой требуется выяснить пароль и такими же настройками безопасности. Здесь рассматриватеся только WPA2 сети.
Устройство
жертвы обнаружив сеть в эфире попытается к ней подключиться, отправив
MIC (Message Integrity Code) содержимое которого и будет использована
для перебора. Таким образом для атаки на пароль будет необходимо перехватить только первые два этапа 4-way handshake.
Боле подробно процесс подключения клиента к сети описан в этой статье.
В конце концов, так как поддельной ТД пароль неизвестен, клиент не сможет подключится.
Этот способ хорошо подходит, когда перехватить хэндшейк находясь рядом с ТД проблематично. Но нужно находится в зоне видимости устроства, которое автоматически подключается к интересующей сети.
После попытки подключения на клиентском устройстве может появится запрос на новый пароль.
Если не стоит задачи атаковать конкретную сеть, можно предположить названия сети самостоятельно и ждать подключения. Другой вариант - перехватить probe request кадры, которые рассылают устройства в поисках знакомых сетей поблизости.
Для атаки (создания поддельной ТД) будем пользоваться утилитой из aircrack-ng под названием airbase-ng. Документация приведена по ссылке.
1. Создадим поддельную точку доступа
airbase-ng -c 9 -e teddy -Z 4 -W 1 wlan0mon
-c 9 - канал
-e - ESSID
-Z 4 - определяет тип защиты, здесь - WPA2
-W 1 - установить флаг WEP. Некоторые клинеты не подключаются без него.
wlan0mon - интерфейс, на базе которого создаётся ТД.
Атака на несколько ESSID одновременно.
airbase-ng может перехватывать beacon frames, содержащие ESSID, и автоматически рассылать маячковые кадры c этим именем сети. Таким образом, точка доступа будет менять имя в сети, в зависимости от того, какие сети известны устройствам поблизости.
Добавим два параметра
-P - для мимикрии под актуальные сети;
-С 60 - число секунд, в течении которого точка доступа рассылает маячковые запросы с одним именем сети
и уберём ключ с именем сети.
airbase-ng -P -C 60 -c 9 -Z 4 -W 1 wlan0mon
2. Перехватить handshake.
Для этого можно использовать airbase добавив ключи:
airbase-ng ... -F dump -i wlan1mon-F dump - имя файла для записи пакетов
-i wlan1mon - имя интерфейса, с которого будут записываться пакеты.
Интерфейс для записи лучше использовать отличный о того, что используется для работы в качестве ТД. Иначе может не получится записать пакеты клинта, содержащие MIC.
Другой вариант получения handshake - использовать airodump-ng также как и для атаки вблизи ТД:
airodump-ng -w dump -с 9 wlan1monCледует проследить, что были перехвачены первые два этапа рукопожатия периодически натравливая aircarck на файл дампа или просматривая его содержимое вручную, например с помощью tshark:
3. Подбор пароля
Этот этап не отличается от аналогичного, где handshake получен при подключении клиента к настойщей ТД. Подробнее здесь.
aircrack-ng dump-01.cap -w wordlist
***
Похоже перехваченный handshake не всегда пригоден для брута [link]. Почему так происходит?
Алсо
airbase позволяет организовать и другие атаки, прочитать о которых можно в документации.Организовать первые два этапа атаки можно и средствами мощного python-пакета Scapy.
Ссылки
airbase documentationhabrahabr: Wi-Fi сети: проникновение и защита.
How to get a WPA\WPA2 keys 4-way handshake using Airbase-ng