21 июня 2016

Подбор пароля к Wi-Fi сети используя атаку по словарю


В прошлый раз мы подключили Wi-Fi адаптер к микрокомпьютеру BeagleBoneBlack.

Пришло время узнать возможности этой штучки!


Основные этапы:

Исключительно в образовательных целях!

Автор напоминает, что вся представленная в статье информация опубликована исключительно в образовательных целях. Несанкционированный доступ к компьютерным системам и сетям преследуется по закону. Не нарушай закон!

Чтобы провести подбор пароля тебе собственно нужна тестовая Wi-Fi сеть доступная в радиусе приема антенны микрокомпьютера. Возьми свой маршрутизатор и настрой новую Wi-Fi сеть на канале 2.4 ГГц, пропиши ее имя (то есть BSSID) и задай пароль.
Подключи к этой сети устройства, например свой смартфон и планшет.

На своем ПК с системой Linux запусти терминал.
Выполни соединение с BeagleBoneBlack:
$ ssh root@192.168.1.59

Теперь задача состоит в том чтобы установить набор утилит для работы с безопасностью беспроводных сетей. Почему-то образ kali-2.1.2-bbb.img не содержит среди установленных нужный нам пакет aircrack-ng. Сделав поиск по репозиториям Debian (системы на которой основана Kali) ты найдешь что искомый пакет aircrack-ng лежит в репозитории wheezy-backports.

Значит надо добавить его в список источников для менеджера пакетов apt, выполни:

# nano /etc/apt/sources.list
виден список репозиториев: тебе нужно удалить символ комментария '#' с первой строки в которой есть слово wheezy-backports.
После чего сохранить (Ctrl+O) и выйти (Ctrl+X).

Обнови списки доступных приложений:
# apt-get update
Установи наборчик волшебных утилит:
# apt-get install aircrack-ng

Перед запуском aircrack-ng лучше перевести Wi-Fi интерфейс wlan0 в режим 'ручного' управления. Открой файл:

# nano /etc/network/interfaces
и добавь такую строку:
iface wlan0 inet manual
сохрани и выйди из редактора nano.


Теперь можно заняться делом :)
Переключи Wi-Fi адаптер в режим мониторинга:

airmon-ng start wlan0
Видно что режим монитора включен на интерфейсе mon1:

В столбце PID указаны номера процессов которые могут мешать нормальной работе утилит из набора aircrack-ng.

Если с ними ничего не сделать, то можно поймать вот такую ошибку если выполнить:
# airodump-ng --encrypt WPA2 wlan0

На снимке видно что некоторые процессы могут мешать работе airodump-ng:

ioctl(SIOCSIWMODE) failed: Device or resource busy

ARP linktype is set to 1 (Ethernet) - expected ARPHRD_IEEE80211,
ARPHRD_IEEE80211_FULL or ARPHRD_IEEE80211_PRISM instead.  Make
sure RFMON is enabled: run 'airmon-ng start wlan0 <#>'
Sysfs injection support was not found either.

Чаще всего эту ошибку вызывают посторонние процессы использующие интерфейс wlan0. Чтобы убрать лишние, можно воспользоваться командой:

# kill 606
где 606 - это номер процесса который следует завершить. Так нужно сделать для каждого конкурирующего с нами процесса.


Давай теперь посмотрим что у нас происходит в радиодиапазоне :

# airodump-ng --encrypt WPA2 wlan0
Сделай скриншот и заверши процесс airodump-ng нажав Ctrl+C.
Допустим твоя Wi-Fi сеть это 'Homeinet', в таблице на экране найдешь все ее параметры. Обрати внимание на столбицы BSSID и CH. Там указан MAC адрес точки и канал на котором она работает. Запиши его. Колонка STATION показывает всех клиентов зацепившихся за выбранную тобой точку.


Выбери цель - точку доступа Wi-Fi. Чтобы начать сбор фреймов и рукопожатий для нее, введи:

# airodump-ng -w air_dump -c 13 --bssid BC:XX:XX:XX:XX:XX wlan0
где:
-w air_dump - это префикс названия для файлов дампа которые создаст утилита;
-c 13 - это канал на котором работает выбраная сеть Homeinet;
-bssid BC:XX:XX:XX:XX:XX - это MAC адрес целевой точки (пароль от которой тебе нужно подобрать);

В этот момент есть два пути: либо ждать пока клиент подключится сам и произойдет 4-стороннее рукопожатие, или принудительно де-аутентифицировать любого уже подключенного клиента и этим заставить его переподключиться. Если сидеть и ждать не твое, тогда давай действовать активно. Запусти еще одно окно терминала на своем ПК и выполни дополнительное подключение к BeagleBoneBlack:

$ ssh root@192.168.1.59
Второе окно терминала тебе нужно для выполнения deauth-атаки клиентов выбраной станции. Это вынудит клиентов переподключиться и в этот момент они заново сделают рукопожатие с точкой Wi-Fi, чего мы и добиваемся.

В столбце STATION выбери любой MAC адрес который тебе нравится, сейчас мы заставим его отключиться от точки.

# aireplay-ng -0 1 -a BC:XX:XX:XX:XX:XX -c 24:XX:XX:XX:XX:XX wlan0 --ignore-negative-one
Эта команда отправит в эфир 64 DeAuth фрейма от имени точки доступа, которые получит указанный клиент:

Реакция на DeAuth фреймы различается для разных операционных систем и работающих в них драйверах Wi-Fi.
Например если выполнить в точности эту команду то:

Теперь внимательно следи за первым окном терминала, как только справа-вверху мелькнет [WPA handshake:...] это значит что рукопожатие было поймано. Заверши процесс airodump-ng нажав Ctrl+C.

Теперь все что тебе нужно это запустить полный перебор паролей по словарю. Подбирать пароли легче на мощном ПК, маленький BeagleBoneBlack не для этого.

По аналогии тому как ты делал для микрокомпьютера - установи на ПК пакет aircrack-ng.

Вытащи записанный на микрокомпьютере файлик-дамп с рукопожатиями, на своем ПК выполни:

$ scp root@192.168.1.59:/root/air_dump-01.cap .
В твоей текущей папке на ПК теперь лежит файлик air_dump-01.cap

Подготовь в этой же папке текстовый файлик с названием "passwordlist" с вариантами паролей: одна строка - один пароль. Обязательно укажи в нем настоящий пароль от целевой точки Wi-Fi. Так как это атака по словарю - то мы перебираем все известные пароли, а не взламываем.

Если готов, то запускай на своем ПК:

$ aircrack-ng -w passwordlist -c *.cap
Когда программа перепробует все пароли из файлика и какой-нибудь подойдет - ты увидишь приятное сообщение:
Оно означает что один пароль из файла passwordlist подошел и его можно использовать для подключения к целевой точке Wi-Fi.

Сколько времени тебе ждать?
Смотри, минимальная длинна пароля для WPA2 это 8 символов. В случае такого минимального пароля состоящего только из цифр (10 штук) и английских букв - прописные (26 штук) плюс строчные (26 штук) - компьютеру надо опробовать 26+26+10 = 62 варианта для каждого символа. Так как символов 8-мь получаем 62^8 = 62*62*62*62*62*62*62*62 = 218340105584896. То есть 218 триллионов с чем-то вариантов. При скорости подбора 954 ключа в секунду на моем процессоре уйдет ~7257 лет.



ССЫЛКИ:
  1. Теория 4-way handshake;
  2. Как пользоваться набором aircrack-ng;
  3. Kali описание опций утилит aircrack-ng;
  4. Пример словаря passwordlist;
  5. Можно ли с этим бороться;
  6. Большое руководство о том же;
  7. Ускорение перебора с помощью видеокарты.



Автор

© Dmytro Nikandrov