This document explains how to make use of NVIDIA video hardware and install the drivers on a Kali Linux system. The first step is to fully update your Kali Linux system and make sure you have the kernel headers installed.
apt-get update apt-get dist-upgrade apt-get install -y linux-headers-$(uname -r) apt-get install nvidia-kernel-dkms
The next step is to disable the nouveau driver. Nouveau is a open source NVIDIA driver project, however it lacks the 3D graphics acceleration needed to run Cuda pentest tools.
sed 's/quiet/quiet nouveau.modeset=0/g' -i /etc/default/grub update-grub reboot
Once the system boots back up, you may see a NVIDIA splash screen, which will indicate that the drivers installed correctly, however, this is not always the case. In order to check if the drivers are working properly, execute the following command.
root@kali:~# glxinfo | grep -i "direct rendering" direct rendering: Yes
Although utilizing the Cuda tools included in Kali is beyond the scope of this article, checking to make sure that they are working properly is always a good idea. The following command uses Oclhashcat-plus with some of the example files included in the package.
cd /usr/share/oclhashcat-plus/ ./cudaHashcat-plus.bin -t 32 -a 7 example0.hash ?a?a?a?a example.dict cudaHashcat-plus v0.14 by atom starting... Hashes: 6494 total, 1 unique salts, 6494 unique digests Bitmaps: 16 bits, 65536 entries, 0x0000ffff mask, 262144 bytes Workload: 256 loops, 80 accel Watchdog: Temperature abort trigger set to 90c Watchdog: Temperature retain trigger set to 80c Device #1: GeForce G210M, 511MB, 1468Mhz, 2MCU Device #2: GeForce 9400M G, 253MB, 1100Mhz, 2MCU Device #1: Kernel ./kernels/4318/m0000_a1.sm_12.64.ptx Device #2: Kernel ./kernels/4318/m0000_a1.sm_11.64.ptx Generated dictionary stats for example.dict: 1210228 bytes, 129988 words, 129988 keyspace 27b797965af03466041487f2a455fe52:mo0000 a48dd0f09abaf64324be83ce86414b5f:ap2300000 7becb9424f38abff581f6f2a82ff436a:sail00 1459ccf0940e63051d5a875a88acfaaf:pigi00 3baa3048651a65d1260eb521ab7c3bc0:ek110 7a7a8220266f71f54f85685969ce999f:davi0123456789 98c627ca129e64dfff3bf08fbaab6c86:fire01man
As you can see in the output above, the cards are recognized and the passwords are being recovered successfully.