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

Я использую ноутбук SAMSUNG R560 с GeForce 9600M GS на "борту", моя карточка в списке есть, значит "едем" дальше. Сразу, забегая вперед скажу, что возможности моей видеокарты более чем скромные по сравнению с "монстрами" занявшими первые места в сравнительной таблице. Мне удалось достичь результата для видеокарты в 1500pmk/s против 300pmk/s центрального процессора в моем ноутбуке - Intel Core 2 Duo P8400 2,27 GHz.
Установка.
Итак приступим.
Первым делом мы установим драйверы NVIDIA с поддержкой CUDA, устанавливаются они до старта "ИКСОВ" (startx). Переходим на страницу , выбираем операционную систему под которую мы ищем драйверы и качаем..
# 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
Спасибо Э_L_A_Y за статью. Сайт тоже очень хорош. Мой респект – толковым людям.
Спасибо за отзыв, статья была написана уже давно и не для блога :)