CUDA как инструмент взлома

CUDA как инструмент взлома

CUDA, выступая в роли инструмента для взлома, позволяет взламывать пароли с помощью видеокарт, снабженных соответствующим графическим процессором. При этом скорость взлома значительно выше той, что достигается на центральном процессоре.

Автор: Rohit Shaw

CUDA (Compute Unified Device Architecture) – архитектура параллельных вычислений, разработанная Nvidia для обработки графики. Использовать ресурсы этого вычислительного движка графических процессоров (GPU) Nvidia могут многие широко используемые языки программирования.

Введение

CUDA, выступая в роли инструмента для взлома, позволяет взламывать пароли с помощью видеокарт, снабженных соответствующим графическим процессором. При этом скорость взлома значительно выше той, что достигается на центральном процессоре.

Построение установки для взлома паролей

Чтобы создать чудо-CUDA агрегат, придется изрядно потрудиться. Сначала необходимо выбрать материнскую плату, которая поддерживает более одного графического процессора, поскольку, чем больше в нашем распоряжении GPU, тем быстрее будет взломан пароль. Я рекомендую материнскую плату MSI Big Bang Marshall, которая поддерживает установку до 8 графических карт. Другая уникальная особенность этой материнской платы в том, что она кроссплатформенная, то есть, позволяет одновременную установку видеокарт от Nvidia и ATI. Для обеспечения лучшей производительности стоит поставить на нее четырехъядерные процессоры или процессоры Intel из семества I. Плата обеспечивает эффективную работу RAM размером до 16 Гб. Также важно обеспечить машине достаточное питание – 1250 Вт. Наконец, понадобится как можно больше кулеров, ведь в процессе работы видеокарта будет сильно нагреваться.

Выбор видеокарты

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

Столбец SP/ALU count данной таблицы соответствует количеству ядер CUDA. Кроме того, в ней указаны скорости взлома популярных хэшей вроде MD5, SHA1, WPA и другая полезная информация. Для нашей установки мы используем видеокарту Radeon HD 5970, которая имеет в арсенале 3200 ядер, что позволяет достигать очень большой скорости взлома хэшей.

Теперь, когда видеокарта выбрана, нужно найти подходящий инструмент для взлома хэшей. Существует множество программ-взломщиков, использующих в своей работе GPU. Некоторые из них предназначены для Windows-систем, некоторые – для Linux. Ниже описаны несколько взломщиков с учетом их совместимости с различными ОС.

Инструменты для Windows

IGHASHGPU. Утилита, разработанная Иваном Голубевым. Она умеет работать только с тремя видами хэшей: SHA1, MD5 и MD4. Может использовать видеокарты как от ATI, так и от Nvidia. Поддерживаются следующие видеокарты ATI: Radeon HD 4550, 4670, 4830, 4730, 4770, 4850, 4870, 4890, 5750, 5770, 5850, 5870, 5970, а также различные видеокарты Nvidia с поддержкой CUDA.

BarsWF. Разработана Михаилом Сваричевским. Работает на видеокартах Nvidia и только с MD5-хэшами, но зато известна как самый быстрый в мире (почувствуй гордость за наших!) взломщик MD5.

Extreme GPU Bruteforcer. Коммерческий инструмент, разработанный InsidePro. Поддерживает целых 58 типов хэшей, среди которых MD5, MD4, NTLM, SHA-1, SHA-512 и многие другие. За счет одновременного использования мощности нескольких видеокарт (до 32) данная программа позволяет достигать невероятной скорости перебора, измеряющейся в миллиардах паролей в секунду. Работает только на видеокартах Nvidia.

Lightning Hash Cracker. Бесплатный взломщик, разработанный компанией Elcomsoft. Умеет работать только с хэшами MD5 и видеокартами Nvidia.

Oclhashcat Plus. Популярный взломщик хэшей, поддерживающий видеокарты как ATI, так и Nvidia. Работает и в Windows, и в Linux. Использует до 128 видеокарт, взламывает 57 типов хэшей.

Cryptohaze Multiforcer. Инструмент с открытым исходным кодом. Единственная утилита, которая может использовать для взлома несколько машин, соединенных в сеть. Поддерживает 17 типов хэшей, среди которых MD5, MD4, NTLM, LM и некоторые другие. Работает только со следующими сериями видеокарт Nvidia: 8000, 9000, GTX200 и GTX400/500.

Инструменты для Linux

New Multiforcer. Эта новая версия Cryptohaze Multiforcer является утилитой с открытым исходным кодом, работающей с ATI и с Nvidia. Более старая версия, Cryptohaze Multiforcer, не поддерживает видеокарты ATI. New Multiforcer умеет взламывать только 9 типов хэшей.

Oclhashcat Plus Этот мультиплатформенный инструмент работает и в Windows, и в Linux-подобных системах, на видеокартах ATI и Nvdia, поддерживает одновременную работу до 128 видеокарт и умеет взламывать большое число хэшей.

Whitepixel. Это инструмент с открытым исходным кодом, который работает только с MD5-хэшами и только на видеокартах ATI. Поддерживаются видеокарты серии Radeon HD 5000 и выше. Может использовать до 8 видеокарт одновременно.

Hashkill. Еще один взломщик с открытым кодом. Работает на видеокартах AMD и Nvidia. Имеет 40 плагинов для взлома разнообразных типов паролей: от простых хэшей MD5 и SHA1 до парольных фраз на закрытые SSL-ключи.

Данное описание позволяет узнать, с какими типами видеокарт может работать тот или иной инструмент, однако оно не говорит ничего о том, насколько хорошо и быстро каждый из инструментов справляется со взломом. Поэтому мы протестируем некоторые из этих инструментов, измерив скорость взлома хэша MD5.

CUDA-машина с Windows-системой

Для настройки CUDA-машины в ОС Windows придется установить драйвера ATI catalyst для соответствующей модели видеокарты (напомню, что ранее мы выбрали Radeon HD 5970).

Тестирование утилит на CUDA-машине под Windows

Сначала проверим IGHASHGPU. Это очень простая консольная утилита. Рассмотрим ключи ее использования.

Доступные ключи можно узнать, запустив в командной строке ighashgpu.exe без параметров. Вот ключи, которые нам понадобятся:

  • -c: задает набор символов (caps, small, digits, special, space, all)
  • -h: значение хэша
  • -t: тип хэша (MD5, MD4 или SHA1)
  • -min: минимальная длина пароля
  • -max: максимальная длина пароля
  • Давайте теперь протестируем нашу CUDA-машину. Сначала с помощью одного из онлайновых генераторов MD5, например www.md5.cz, сгенерируем хэш от пароля Xi4rCh.

    Теперь можно начать процесс взлома. Выполним следующую команду.

    ighashgpu.exe /h:a52a81807a28e5f92893dd5106c9ce65 /t:md5 /c:csda /max:7 /cpudontcare

    Синтаксис использования был описан ранее, поэтому я не буду останавливаться на описании данной команды. Итак, взлом начался:

    На рисунке выше видно, что средняя скорость перебора составляет 1116.8 миллионов вариантов в секунду, и оцененное время работы равно примерно 11 минутам. Но в нашем случае пароль был найден через 5 минут, что показано на рисунке ниже. Средняя скорость взлома увеличилась до 1119.1 миллионов вариантов в секунду. Таким образом, с помощью данной утилиты пароль, состоящий из 6 цифробуквенных символов (цифры и буквы в обоих регистрах), можно взломать за 5 минут.

    Давайте попробуем сравнить время взлома того же хэша с помощью CPU. Используем для восстановления пароля из того же хэша утилиту Cain n Able.

    На рисунке выше видно, что среднее время взлома составит 1.32945 года, так что разница между GPU и CPU налицо.

    BarsWF: Поддерживает только Nvidia, поэтому придется проверять ее на CPU. Запустим BarsWF.exe из командной строки, чтобы посмотреть список доступных опций.

    Синтаксис использования:

  • -c: задает набор символов (A-прописных, a-строчные, 0-цифры, ~-специальные символы)
  • -h: значение хэша
  • -min_len: минимальная длина пароля
  • Попробуем взломать тот же хэш, введя команду

    BarsWF_SSE2_x64.exe –c A0a –h a52a81807a28e5f92893dd5106c9ce65 –min_len 8

    На рисунке выше видно, что ожидаемое время взлома составляет 27 дней, что гораздо меньше, чем год, требуемый для Cain n Abel.

    CUDA-машина с Linux-системой

    Настройка CUDA-машины в Linux-системе не так проста, как в Windows. Процесс установки драйверов для видеокарт ATI отличается от процесса установки драйверов Nvidia

    Установка драйверов ATI

    1. Удалите старые драйверы AMD

    sudo sh /usr/share/ati/fglrx-uninstall.sh
    sudo apt-get remove --purge fglrx fglrx_* fglrx-amdcccle* fglrx-dev* xorg-driver-fglrx

    2. Загрузите драйверы AMD с официального сайта или выполните следующие команды в терминале:

    cd ~/; mkdir catalyst12.4; cd catalyst12.4/
    wget -O amd-driver-installer-12-4-x86.x86_64.run http://goo.gl/VGYWP

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

    chmod +x amd-driver-installer-12-4-x86.x86_64.run
    sudo sh ./amd-driver-installer-12-4-x86.x86_64.run

    Далее следуйте инструкциям мастера установки.

    Установка драйверов Nvidia

    1. Отредактируйте конфигурационные файлы

    gedit /etc/modprobe.d/blacklist.conf

    добавьте следующие строки в файл blacklist.conf

    blacklist vga16fb
    blacklist nouveau
    blacklist rivafb
    blacklist nvidiafb
    blacklist rivatv

    2. apt-get --purge remove nvidia-*

    3. Перезагрузите систему.

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

    add-apt-repository ppa:ubuntu-x-swat/x-updates
    apt-get update && apt-get install nvidia-current nvidia-current-modaliases nvidia-settings

    5. После еще одной перезагрузки, вы сможете увидеть настройки Nvidia.

    Тестирование утилит на CUDA-машине под управлением Linux

    В ОС на ядре Linux мы будем использовать видеокарту Nvidia, у которой меньше ядер CUDA, чем у видеокарты ATI Radeon, использованной нами для Windows.

    Cryptohaze Linux: Now let’s see the usage command for Cryptohaze. Type in this command

    Cryptohaze Linux. Найдем сначала доступные ключи использования. Для этого введем команду:

    ./Cryptohaze-Multiforcer --help

    Для взлома хэша нам пригодятся следующие три ключа:

  • -c (для файлов с набором символов)
  • -h (тип хэша)
  • -f (расположение файла с хэшем)
  • Набор символов (charset) – это определенный список символов, распознаваемый аппаратными или программными средствами. Можно создать текстовый документ и поместить туда буквы в нижнем регистре (a-z), буквы в верхнем регистре (A-Z), цифры (0-9) и прочие символы, а затем использовать получившийся файл с набором символов в качестве аргумента утилиты. Вот пример такого файла:

    Перейдем к тестированию. Введем команду:

    ./Cryptohaze-Multiforcer –c /root/Desktop/Cryptohaze-Linux/charsets/charsetall –h MD5 –f /root/Desktop/hash.txt

    После нажатия enter начинается процесс взлома.

    В верхней правой части вывода программы показана средняя скорость перебора вариантов на GPU. Она составляет всего 36.64 миллиона вариантов в секунду. Такая малая скорость объясняется тем, что используемая видеокарта Nvidia имеет всего 16 ядер. Взлом прошел успешно: утилита отобразила соответствующий хэшу пароль, p@ssw.

    New Multiforcer. New Multiforcer – более новая версия Cryptohaze Multiforcer, которая поддерживает видеокарты ATI. Использование данного инструмента аналогично использованию Cryptohaze Multiforcer. Дополнительно нужно передать следующие опции: –openclplatform=0, --opencldevice=1 –bfi_init

    ./NewMultiforcer --openclplatform=0 --opencldevice=1 –bfi_init -h Hash type -c mycharsets dir -f my file dir

    Что лучше – ATI или Nvidia?

    Выбор оптимальной видеокарты зависит от множества факторов, среди которых цена, используемый взломщик и количество ядер CUDA. По скорости взлома паролей, как можно было увидеть, видеокарты ATI выигрывают у Nvidia, поскольку у последних меньше ядер CUDA. Видеокарты Nvidia более дорогие, чем видеокарты ATI. Однако Nvidia также выпускает высокопроизводительные видеокарты вроде Tesla и Titan, которые при большой цене обеспечивают очень большую вычислительную мощность. Нужно учитывать, что большинство инструментов взлома, работающих как в Windows, так и в Linux, совместимы с Nvidia. Итак, если деньги не играют решающей роли, определенно стоит выбрать Nvidia, но если ваш бюджет невелик, имеет смысл приобрести видеокарту от ATI.

    Выводы

    При использовании нескольких высокопроизводительных видеокарт с числом ядер более 512 можно достичь гораздо большей скорости взлома. Видеокарта ATI с 3200 ядрами CUDA позволила перебирать 1116.8 миллионов вариантов в секунду, тогда как Nvidia с 16 ядрами – всего лишь 36 миллионов. Теперь понятно, какую большую роль играет количество ядер CUDA.

    Ссылки

    http://en.wikipedia.org/wiki/CUDA

    http://golubev.com/gpuest.htm

    http://cyruslab.wordpress.com/2012/01/26/installing-nvidia-on-backtrack5r1/

    Домашний Wi-Fi – ваша крепость или картонный домик?

    Узнайте, как построить неприступную стену