пятница, 28 июля 2017 г.

Атака на WPA2 с использованием поддельной точки доступа


Механизм четырёхэтапного рукопожатия организован таким образом, что точка доступа (ТД) не обладая паролем может получить всё необходимое, для его подбора.

Атакующему необходимо создать точку доступа с 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 wlan1mon
Cледует проследить, что были перехвачены первые два этапа рукопожатия периодически натравливая aircarck на файл дампа или просматривая его содержимое вручную, например с помощью tshark:


3. Подбор пароля
Этот этап не отличается от аналогичного, где handshake получен при подключении клиента к настойщей ТД. Подробнее здесь.
aircrack-ng dump-01.cap -w wordlist

***

Похоже перехваченный handshake не всегда пригоден для брута [link]. Почему так происходит?

Алсо

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

Организовать первые два этапа атаки можно и средствами мощного python-пакета Scapy.

Ссылки

airbase documentation
habrahabr: Wi-Fi сети: проникновение и защита.
How to get a WPA\WPA2 keys 4-way handshake using Airbase-ng