En esta entrada explicamos como instalar pyrit con soporte CUDA y OpenCL
enfocado a tarjetas gráficas NVIDIA y la distribución Debian aunque
deberá funcionar correctamente en otras derivadas como Ubuntu (para AMD
no tenemos GPU con la que probar)
Antes de comenzar tal vez sea buena idea comprobar si tienes soporte
en los paquetes que tienes en tus repositorios para conocer si está
soportado CUDA y/o OpenCL cuando se compiló.
En el caso de no estar disponible entonces si continuar con este
tutorial.
Puedes leer más sobre pyrit en esta entrada:
https://laguialinux.es/pyrit-descifrar-clave-wpa-con-gpu
También puedes ver ejemplos e información de uso en esta entrada:
https://laguialinux.es/pyrit-analizando-y-capturando-handshakes
Pyrit, OpenCL y CUDA
También disponemos de un vídeo explicando y mostrando estos pasos:
Eliminar
Antes de comenzar, nos aseguramos de no tener instalada ninguna versión
de los repositorios (en los repositorios puede estar sin soporte CUDA y
OpenCL)
Si tenéis instalado pyrit ya lo removemos con las siguientes líneas,
pero con precaución al introducir los comandos y mirar antes de aceptar:
sudo apt purge pyrit
sudo apt purge pyrit-opencl
sudo rm -rf /usr/local/lib/python2.7/dist-packages/pyrit
Si usáis otra distribución deberéis adaptar los paquetes y gestor.
Instalar dependencias para pyrit
Necesitamos una serie de herramientas para instalar y poder usar
correctamente pyrit con cuda
- git: Para obtener el repositorio
- python-pycuda: Para acceder con python a cuda
- libssl: Librerías para ssl
A continuación pongo un ejemplo de la instalación en debian y derivados:
sudo apt install git python2.7-dev mesa-utils libssl-dev zlib1g-dev libpcap-dev python-pycuda python3-pycuda
Instalar dependencias para nvidia cuda
Para nvidia disponemos de CUDA lo cual instalaremos desde repositorios
sudo apt install nvidia-driver nvidia-cuda-toolkit nvidia-xconfig
sudo apt install libegl-nvidia0 libglx-nvidia0 ocl-icd-libopencl1
Una vez instalado el controlador nvidia privativo y cuda reiniciamos:
reboot
Preparando para compilar pyrit y sus módulos
Entramos al directorio /usr/src y descargamos los sources:
cd /usr/src/
sudo git clone https://github.com/JPaulMora/Pyrit pyrit
Ahora damos grupo a nuestro propio usuario para poder listar directorios
y acceder correctamente a ellos (puedes cambiar a root en su lugar):
yo=$(whoami) && sudo chown -R :$yo pyrit
Editamos el módulo para adaptarlo a la distribución. Primero abrimos
el editor nano o vim:
sudo nano -c /usr/src/pyrit/modules/cpyrit_cuda/setup.py
Modificar en la línea 34:
for path in (‘/usr/local/cuda’, ‘/opt/cuda’):
Por el siguiente contenido:
for path in (‘/usr/local/cuda’,’/usr/lib/nvidia-cuda-toolkit’,’/opt/cuda’):
Modificar línea 88:
nvcc_cmd = NVCC+ bit_flag + ‘ -ccbin clang -Xcompiler “-fPIC” –ptx ./_cpyrit_cudakernel.cu’
Por este contenido:
nvcc_cmd = NVCC + bit_flag + ‘ -ccbin clang-3.8 -Xcompiler “-fPIC” –ptx ./_cpyrit_cudakernel.cu’
Instalar módulo CUDA para pyrit
Ahora entramos al módulo CUDA y lo instalamos:
cd /usr/src/pyrit/modules/cpyrit_cuda
sudo python setup.py clean build install
Instalar módulo OpenCL para pyrit
Ahora instalamos OpenCL si tenemos amd o si lo preferimos a CUDA por
cualquier motivo.
cd /usr/src/pyrit/modules/cpyrit_opencl
sudo python setup.py clean build install
Instalar pyrit
cd /usr/src/pyrit
sudo python setup.py clean build install
Configurar pyrit
En el directorio personal tenemos que establecer las configuraciones
que utilizará pyrit.
Esto se realiza en el archivo config dentro de .pyrit, en este
caso lo configuramos para root ya que para acceder al hardware será él
quien lo haga.
Si damos permisos a otro usuario también lo configuramos en su home.
sudo nano /root/.pyrit/config
Dentro del archivo de configuración agregamos:
default_storage = file://
limit_ncpus = 1
rpc_announce = true
rpc_announce_broadcast = false
rpc_knownclients =
rpc_server = false
workunit_size = 75000
use_CUDA = true
use_OpenCL = false
Esta configuración la adaptamos a nuestro entorno o preferencias.
Usando solo una CPU se logra más potencia de GPU que con más núcleos.
Comprobar GPU y testear potencia de cómputo con pyrit
Si hemos realizado todos los pasos anteriores ya deberíamos lograr
listar y utilizar todas las gpu que tengamos.
Podemos listar todos los núcleos con esta orden:
sudo pyrit list_cores
Nos devolvería un resultado similar al siguiente:
Si todo está correctamente detectado podemos hacer un benchmark con:
sudo pyrit benchmark
Devolviendo un resultado parecido a este:
Ya podemos utilizar nuestra GPU para el cómputo acelerado en toda su potencia:
En esta imagen anterior utilizo como ejemplo mi nvidia gtx 970
Además podemos obtener más información de uso aquí
Comenta si tienes algún inconveniente aunque para un soporte más certero puedes recurrir al repositorio oficial y plantear tus problemas directamente a los desarrolladores y comunidad:
https://github.com/JPaulMora/Pyrit
Tenemos esta entrada donde mostramos ejemplos de uso y más información adicional sobre pyrit y trabajar con bases de datos.
Instalar pyrit desde fuentes con soporte para GPU y CUDA o OpenCL
En este vídeo explicamos como instalar pyrit con soporte CUDA y OpenCL enfocado a tarjetas gráficas NVIDIA y la distribución Debian.
Muchas gracias me sirvió pero si puedes modificar la línea 34, ya que falta un espacio entre las comas y el ‘
Dejo aquí como debería ser:
(‘/usr/local/cuda’, ’/usr/lib/nvidia-cuda-toolkit’, ’/opt/cuda’)
Saludos
Correcto, ami me pasó.
Me dice que el directorio .pyrit no existe.
Entonces simplemente tienes que crear el directorio
Los archivos o directorios que empiezan por “.” te indican que están ocultos. Quizás activar la opción “ver archivos ocultos” te ayudaría.