Как в Linux взламывать пароли видеокартой и центральным процессором

Драйверы и программы для взлома на графической карте и центральном процессоре в hashcat

В этой статье показано, какие драйверы и программы установить для того, чтобы hashcat и аналогичные программы для брут-форса могли использовать видеокарту и процессор для взлома паролей.

В настоящее время hashcat использует OpenCL. Как написано в Википедии, OpenCL (англ. Open Computing Language — открытый язык вычислений) — фреймворк для написания компьютерных программ, связанных с параллельными вычислениями на различных графических и центральных процессорах, а также FPGA. В OpenCL входят язык программирования, который основан на стандарте языка программирования Си C99, и интерфейс программирования приложений. OpenCL обеспечивает параллелизм на уровне инструкций и на уровне данных и является осуществлением техники GPGPU. OpenCL является полностью открытым стандартом, его использование не облагается лицензионными отчислениями.

Цель OpenCL состоит в том, чтобы дополнить открытые отраслевые стандарты для трёхмерной компьютерной графики и звука OpenGL и OpenAL возможностями GPU для высокопроизводительных вычислений. OpenCL разрабатывается и поддерживается некоммерческим консорциумом Khronos Group, в который входят много крупных компаний, включая AMD, Apple, ARM, Intel, Nvidia, Sony Computer Entertainment и другие.

То есть благодаря такой универсальности OpenCL, программы для выполнения вычислений, в том числе и hashcat, запускают свои задачи универсальным способом на любых устройствах, поддерживающих OpenCL.

OpenCL поддерживают видеокарты AMD, NVIDIA, а также Intel GPU.

Информацию о поддерживаемых процессорах Intel вы найдёте на странице https://github.com/intel/compute-runtime (поддержка «Intel Graphics Compute Runtime for oneAPI Level Zero and OpenCL» появилась с Gen8) и https://www.intel.ru/content/www/ru/ru/support/articles/000005524/graphics-drivers.html (поддержка OpenCL разными поколениями и моделями процессоров).

Видеокарты AMD, NVIDIA также в большинстве поддерживают OpenCL, кроме совсем старых.

Для работы OpenCL необходима установка драйвера и инструментов взаимодействия с OpenCL. Данная статья посвящена установке OpenCL в Linux. Аналогичные инструкции для Windows даны в статье «Инструкция по hashcat: запуск и использование программы для взлома паролей» (смотрите раздел «Драйверы для hashcat»).

Итак, требования для работы hashcat с OpenCL следующие:

  • Для AMD видеокарт необходимо: "RadeonOpenCompute (ROCm)" Software Platform (1.6.180 или более поздняя версия)
  • Для процессоров Intel необходимо: "OpenCL Runtime for Intel Core and Intel Xeon Processors" (16.1.1 или более поздняя версия)
  • Для NVIDIA видеокарт необходимо: "NVIDIA Driver" (367.x или более поздняя версия)

Для устаревших процессоров (до Broadwell) используется "OpenCL 2.0 GPU Driver Package for Linux" (Iris, Iris Pro).

В этой статье будет показано, как установить всё необходимое для использования OpenCL на видеокартах NVIDIA и современных процессорах Intel. Инструкции будут даны на примере Kali Linux (также должны подходить для Debian, Linux Mint, Ubuntu и их производных) и Arch Linux (BlackArch).

Как включить OpenCL на Kali Linux (Debian, Linux Mint, Ubuntu) для hashcat

Включение OpenCL для NVIDIA

Начните с полного обновления системы и затем перезагрузитесь:

sudo apt update && sudo apt full-upgrade -y
reboot

После того, как мы обновили систему, нужно проверить модули ядра nouveau (свободные драйвера Nvidia, они будут конфликтовать с проприетарными)

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" | sudo tee /etc/modprobe.d/blacklist-nouveau.conf

После изменения параметров ядра, нам нужно обновить наши initramfs и перезагрузиться.

update-initramfs -u && reboot

После перезагрузки и проверки, что модули nouveau не загружены, мы переходим к установке загрузчика OpenCL ICD, драйверов и набора инструментов CUDA.

sudo apt install -y ocl-icd-libopencl1 nvidia-driver nvidia-cuda-toolkit

Во время установки драйверов система создаёт новые модули ядра, поэтому требуется ещё одна перезагрузка.

Проверка установленных драйверов

Теперь наша система должна быть готова, нам нужно проверить, что драйверы корректно загружены. Мы можем быстро в этом убедиться запустив инструмент nvidia-smi.

nvidia-smi


Вывод показывает, что наш драйвер и GPU в порядке — можно приступать к взлому паролей. Перед продолжением, давайте ещё раз сделаем проверку и убедимся, что hashcat и CUDA работают вместе.

hashcat -I

Примечание:

Если вы получили ошибку clGetDeviceIDs(): CL_DEVICE_NOT_FOUND с отметкой Platform ID Vendor: Mesa, то запустите:

sudo apt remove mesa-opencl-icd

Продолжим запуском теста производительности. Бенчмарк

hashcat -b -D 1,2 --force

Включение OpenCL для Intel

Если ваш центральный процессор поддерживает OpenCL, то установите следующие пакеты:

sudo apt install firmware-misc-nonfree intel-opencl-icd

Просмотрим список устройств ещё раз (должно добавиться новое устройство):

hashcat -I

И выполним бенчмар ещё раз:

hashcat -b -D 1,2 --force

Как включить OpenCL на Arch Linux (BlackArch) для hashcat

Включение OpenCL для NVIDIA

Удалите xf86-video-nouveau есть он есть:

sudo pacman -R xf86-video-nouveau

Установите проприетарный драйвер NVIDIA:

sudo pacman -S nvidia nvidia-utils

Установите драйвер CUDA и другие необходимые пакеты, а также hashcat:

sudo pacman -S opencl-nvidia opencl-headers cuda hashcat

Включение OpenCL для Intel

sudo pacman -S linux-firmware intel-compute-runtime pocl

Теперь проверим список устройств:

hashcat -I

Запустим бенчмарк:

hashcat -b -D 1,2 --force

Пакет beignet

beignet — это реализация OpenCL для Intel IvyBridge и Haswell iGPUs. В настоящее время этот пакет считается устаревшим и его должен заменить intel-compute-runtime. У меня в системе установить beignet, то появляется дополнительное устройство OpenCL — как на Kali Linux, где также видно 3 устройства OpenCL. Но это устройство работает нестабильно с Hashcat.

Вы можете протестировать, как себя ведёт beignet на вашей системе. Возможно, для более старых процессоров это единственная опция.

OpenCL для AMD

Если вы владелец AMD карты, то поделитесь вашим опытом установки драйвера AMD с поддержкой OpenCL. Пишите ваши команды для установки в комментариях — и я добавлю в статью новый раздел. Если есть возможность, сделайте скриншоты и/или бенчмарки.

Смотрите также:

Рекомендуется Вам:

Добавить комментарий

Ваш адрес email не будет опубликован.