Взлом с помощью видеокарты

Из-за увеличения популярности облачных экземпляров для взлома паролей мы решили сосредоточить наши усилия на оптимизации подхода Kali. Мы заметили, что Amazon AWS P2-Series и Microsoft Azure NC-Series ориентированы на Windows и Ubuntu. Соответствующие записи в блогах и руководства последовали этому примеру. Хотя эти экземпляры ограничены аппаратными возможностями NVIDIA Tesla K80, возможность быстрого развертывания экземпляра Kali с поддержкой CUDA привлекательна.
Установка проприетарных графических драйверов всегда была источником разочарования; к счастью, улучшения в упаковке сделали этот процесс более плавным.
Предпосылки
Во-первых, вам необходимо убедиться, что ваша система полностью обновлена и что ваша карта поддерживает CUDA.
Примечание. Рекомендуется использовать графические процессоры с возможностями CUDA > 5.0, но графические процессоры с меньшим количеством по-прежнему будут работать.
apt-get update && apt-get dist-upgrade -y
После того как мы обновили систему, нам нужно проверить модули ядра nouveau, и если они включены, запишите их в черный список.
root@kali:~# lsmod |grep -i nouveau
nouveau 1499136 1
mxm_wmi 16384 1 nouveau
wmi 16384 2 mxm_wmi,nouveau
video 40960 1 nouveau
echo -e "blacklist nouveau\noptions nouveau modeset=0\nalias nouveau off" > /etc/modprobe.d/blacklist-nouveau.conf
После изменения параметров ядра нам необходимо обновить наши initramfs, а затем перезагрузиться.
update-initramfs -u && reboot
Установка на локальном компьютере
После того, как мы перезагрузились и определили, что модули nouveau не загружены, мы продолжим установку OpenCL ICD Loader, Drivers и инструментария CUDA.
apt-get install -y ocl-icd-libopencl1 nvidia-driver nvidia-cuda-toolkit
Во время установки драйверов система создавала новые модули ядра, поэтому требуется перезагрузка.
Проверка установки драйвера
Теперь, когда наша система должна быть готова к работе, нам нужно проверить правильность загрузки драйверов. Мы можем быстро проверить это, запустив инструмент nvidia-smi .
root@kali:~# nvidia-smi
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 375.26 Driver Version: 375.26 |
|-------------------------------+----------------------+----------------------+
| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |
|===============================+======================+======================|
| 0 Tesla K80 Off | 0000:00:1E.0 Off | 0 |
| N/A 28C P0 53W / 149W | 0MiB / 11439MiB | 65% Default |
+-------------------------------+----------------------+----------------------+
Когда вывод правильно отображает наш драйвер и графический процессор, мы можем погрузиться в взлом паролей. Прежде чем зайти слишком далеко вперед, давайте проверим двойную проверку, чтобы убедиться, что hashcat и CUDA работают вместе.
root@kali:~# hashcat -I
OpenCL Info:
Platform ID #1
Vendor : NVIDIA Corporation
Name : NVIDIA CUDA
Version : OpenCL 1.2 CUDA 8.0.0
Device ID #1
Type : GPU
Vendor ID : 32
Vendor : NVIDIA Corporation
Name : Tesla K80
Version : OpenCL 1.2 CUDA
Processor(s) : 13
Clock : 823
Memory : 2047/11439 MB allocatable
OpenCL Version : OpenCL C 1.2
Driver Version : 375.26
Примечание.
Если вы получите сообщение об ошибке c lGetDeviceIDs (): CL_DEVICE_NOT_FOUND с идентификатором платформы ID Поставщик: Mesa run:
apt-get remove mesa-opencl-icd
Кажется, все работает, давайте продолжим и проведем контрольный тест.
Benchmarking
root@kali:~# hashcat -b
OpenCL Platform #1: NVIDIA Corporation
======================================
* Device #1: Tesla K80, 2047/11439 MB allocatable, 13MCU
Hashtype: MD5
Speed.Dev.#1.....: 4247.2 MH/s (102.66ms)
Hashtype: SHA1
Speed.Dev.#1.....: 1850.5 MH/s (58.64ms)
Hashtype: SHA256
Speed.Dev.#1.....: 785.1 MH/s (69.41ms)
Cracking
Теперь давайте взломать некоторые хеши. Мы собираемся использовать пример хэш-файла NetNTLMv2, найденный в wiki-файле hashcat.
root@kali:~# hashcat -a 0 -m 5600 ntlmv2.hash dict.txt
OpenCL Platform #1: NVIDIA Corporation
======================================
* Device #1: Tesla K80, 2047/11439 MB allocatable, 13MCU
ADMIN::N46iSNekpT:08ca45b7d7ea58ee:88dcbe4446168966a153a0064958dac6:5c7830315c7830310000000000000b45c67103d07d7b95acd12ffa11230e0000000052920b85f78d013c31cdb3b92f5d765c783030:hashcat
Session..........: hashcat
Status...........: Cracked
Hash.Type........: NetNTLMv2
Hash.Target......: ADMIN::N46iSNekpT:08ca45b7d7ea58ee:88dcbe4446168966a153a0064958dac6:5c7830315c7830310000000000000b45c67103d07d7b95acd12ffa11230e0000000052920b85f78d013c31cdb3b92f5d765c783030
Input.Base.......: File (dict.txt)
Input.Queue......: 1/1 (100.00%)
Speed.Dev.#1.....: 0 H/s (0.10ms)
Recovered........: 1/1 (100.00%) Digests, 1/1 (100.00%) Salts
Progress.........: 101/101 (100.00%)
Успех! Мы взломали пример хэша и доказали, что наша установка функциональна. Существует множество конфигураций для улучшения скорости, не упомянутых в этом руководстве. Однако мы рекомендуем вам взглянуть на документацию hashcat для ваших конкретных случаев.
Запуск экземпляра GPU в AWS
Мы зарегистрировали новые образы с разрешением CUDA Kali Rolling с Amazon, которые работают из коробки с образами P2 AWS. Если вам не требуется никакая дополнительная настройка, вы можете запустить их с помощью экземпляра GPU Kali менее чем за 30 секунд. Все, что вам нужно сделать, это выбрать экземпляр P2.