В этой статье я хочу по шагам рассказать и показать как освременные GPU от NVIDIA могут реально ускорить время атаки на PSK ключи в современных WPA/WPA2 сетях. Так как стандарты WPA поддаются только атаке "bruteforce" - прогаммное обеспечение для генерации хешей в нашем случае должно использовать технологию CUDA / nvida. Вот что пишут по поводу этой технологии на официальном сайте:

Технология NVIDIA CUDA™ - это единственная среда разработки на C, которая позволяет программистам и разработчикам писать программное обеспечение для решения сложных вычислительных задач за меньшее время благодаря многоядерной вычислительной мощности графических процессоров. В мире уже установлены миллионы GPU с поддержкой CUDA, и тысячи программистов уже бесплатно пользуются инструментами CUDA для ускорения приложений – от кодирования видео и аудио до поисков нефти и газа, моделирования продуктов, вывода медицинских изображений и научных исследований.

http://www.nvidia.ru/object/cuda_what_is_ru.html

Сам продукт называется pyrit и позволяет сгенерировать те самые хеши на основе имени сети и парольных фраз. В этой статье мы постараемся пройти через все шаги, установки, настройки и применения всего механизма на практике, а помогать нам будут советы ребят с remote-exploit.org.

Первым делом смотрим, есть ли наша карточка в списке поддерживаемых технологией CUDA на:
http://en.wikipedia.org/wiki/CUDA#Supported_GPUs

pyritperfaa3

Я использую ноутбук SAMSUNG R560 с GeForce 9600M GS на "борту", моя карточка в списке есть, значит "едем" дальше. Сразу, забегая вперед скажу, что возможности моей видеокарты более чем скромные по сравнению с "монстрами" занявшими первые места в сравнительной таблице. Мне удалось достичь результата для видеокарты в 1500pmk/s против 300pmk/s центрального процессора в моем ноутбуке - Intel Core 2 Duo P8400 2,27 GHz.

Установка.

Итак приступим.
Первым делом мы установим драйверы NVIDIA с поддержкой CUDA, устанавливаются они до старта "ИКСОВ" (startx). Переходим на страницу http://www.nvidia.com/object/cuda_get.html, выбираем операционную систему под которую мы ищем драйверы и качаем..

# wget http://developer.download.nvidia.com/compute/cuda/2_1/drivers/NVIDIA-Linux-x86-180.22-pkg1.run

Устанавливаем.

# install NVIDIA-Linux-x86-180.44-pkg1.run nvidia
# ./nvidia

Для корректной деинсталяции и установки можно воспользоваться скриптом nv_inst.sh, скрип ложим в одну диррикторию с драйвером. (незабываем переименовать драйвер в скрипте на свой вариант). Выставляем, при необходимости скрипту права на выполнение. (chmod +x nv_inst.sh)

# запускаем
# sudo sh ./nv_inst.sh
 
# избавляемся от старых установок nvidia
nvidia-installer --uninstall
apt-get remove --purge nvidia*
 
# остановка xserver (если kdm то соотвественно /etc/init.d/kdm stop)
/etc/init.d/gdm stop
 
# остановка opengl
for every in `ps ax| grep glx | awk '{ print $1 }'`; do kill -9 $every; done;
 
# получить заголовки для компиляции (если нет)
apt-get install linux-headers-`uname -r`
 
#сделать файл исполняемым (цифры меняются на версию драйвера)
chmod +x NVIDIA-Linux-x86-180.44-pkg1.run
 
# выполнить
./NVIDIA-Linux-x86-180.44-pkg1.run
 
# рестарт xserver
/etc/init.d/gdm start

Так же качаем  со страницы http://code.google.com/p/pyrit/wiki/FirstSteps последнюю версию Pyrit и  CPyrit-CUDA. Действуя рекомендациям проверяем  latest project source code.

# svn checkout http://pyrit.googlecode.com/svn/trunk/ pyrit-read-only

Зависимости Pyrit:

# apt-get install  python-dev
# apt-get install  openssl
# apt-get install libssl-dev

Разархивируем исходный код (tar -zxvf source_code.tar.gz)
Перуходим в папку с Pyrit, компилируем и устанавливаем, затем тоже самое с CPyrit-CUDA.

# python setup.py build
# python setup.py install
# cd /dir/for/CPyrit-CUDA
# python setup.py build
# python setup.py install

Для сборки CPyrit-CUDA возможно придется задать $PATH для компилятора nvcc и в setup.py прописать пути к заголовочным файлам и библиотекам CUDA.

echo "# CUDA stuff
PATH=\$PATH:/usr/local/cuda/bin
LD_LIBRARY_PATH=\$LD_LIBRARY_PATH:/usr/local/cuda/lib
export PATH
export LD_LIBRARY_PATH" >> ~/.bashrc

BackTrack 4 beta  /opt/cuda/cuda-set-env.sh  -Путь где лежит скрипт в BT4beta

Прежде чем приступать к генерации хешей, попробуем использовать benchmark utility, чтобы наглядно убедиться в "превосходстве " нашего GPU над CPU или не убедиться если где-то выше мы допустили ошибку :)

# pyrit benchmark
Pyrit 0.2.2 (C) 2008, 2009 Lukas Lueg http://pyrit.googlecode.com
This code is distributed under the GNU General Public License v3
 
Running benchmark for at least 60 seconds...
 
CUDA-Device #1 'GeForce 9600M GS': 1324.10 PMKs/s, 84.51% occupancy
CPU-Core (x86): 188.87 PMKs/s, 98.74% occupancy
 
Benchmark done. 1512.97 PMKs/s total.

Как вы можете видеть моя 9600gs в 7 раз "быстрее" чем  Intel Core 2 Duo P8400 2.27GHz