Вступление
Прошло больше двух лет, а CUDA (wiki://
CUDA) уже на маках работает,
оказывается.
Я, по мере такого открытия, решил сравнить по скорости подбора NTLM-хешей мою GeForce GTX280 и rainbowcrack (Core2Duo@3GHz).
Далее следует субъективное сравнение.
Подготовка и установка
Требуются:
- Таблицы ntlm_mixalpha-numeric-1-7
- rainbowcrack
- CUDA-брутфорсер
- Окружение CUDA
Во-первых, благодарность выражается
alesk,
ekrava и
http_404 за помощь в
генерировании таблиц. Благодаря им я сэкономил несколько месяцев.
Во-вторых, спасибо Эрику Уинклеру за
маковский порт rainbowcrack'а. На его сайте можно скачать как исходники, так и готовые бинарики.
Относительно брутфорсера, который бы работал в CUDA и поддерживал NTLM, я нашел какой-то
CUDA Multiforcer по первому запросу.
Установка же самого окружения CUDA оказалась довольно простой.
Сначала я скачал следующие файлы с
оф. сайта:
- cudadriver_2.3.0a_macos.pkg
- cudatoolkit_2.3a_macos_32.pkg
- gpucomputingsdk_2.3a_macos_32.pkg
Затем в такой же последовательности установил все пакеты.
Потом потребовалось скомпилировать одну программу, с помощью которой можно было узнать, определилась ли моя видеокарта.
Для удобности работы в будущем, я поправил мой .profile, добавив две строки:
export PATH=/usr/local/cuda/bin:$PATH
export DYLD_LIBRARY_PATH=/usr/local/cuda/lib:$DYLD_LIBRARY_PATH
Затем проверил версию тулкита и скомпилировал все в папке /Developer/GPU Computing/C (в ней много других интересных программ):
Пока меня интересовала только deviceQuery. И моя карта, к счастью, определилась. Ну, мало ли, хакинтош все-таки:
Что ж, платформа готова.
Для тестов я
сгенерировал эти пять тестовых хешей:
3afa54b69ed1b518c98e4f85c3155c14 -> nVidia
758fcf1675ea9e2def7583c969c1cef5 -> GPGPU
1d78a07d3bd2dc67658db706ec27862b -> 984Russ
e0fba38268d0ec66ef1cb452d5885e53 -> abc
1358215d780c5b973388825ad577079d -> n1xbl0g
Action!
Поехали:
rcrack /Volumes/storage/pentest/rainbow/ntlm/*.rt -l hash.txt
Одно из ядер в работе:
Я закинул
полный лог, если кому-то интересно. Как видно из этого лога, общее время поиска составило примерно ~8 минут. Впечатляет, правда? Хотя, нужно также учитывать количество потраченного времени, которое ушло на генерирование таблиц; я потратил около двух с половиной месяцев.
CUDA справилась с задачей за ~111 минут. Скачать подробный лог также
можно скачать.