miércoles, 22 de agosto de 2012

Crackeando WPA/WPA2 con Pyrit y GPU





Voy a realizar un crackeo de un handshake mediante pyrit utilizando la gpu de mi grafica nvidia. La instalacion la voy hacer de cero con lo que iré poniendo todas las dependencias y archivos que me vayan haciendo falta por el camino.
El sistema operativo sobre el que voy a trabajar sera un Debian Squeeze (64 bits).
En este tutorial no voy hablar de como se consigue un handshake , si buscas por google los hay a patadas.
Necesario para este tutorial a nivel personal: Algo de tiempo, un minimo de conocimiento, algunos dedos, un cerebro y una silla.


Antes de comenzar lo principal sera saber si nuestra tarjeta gráfica soporta CUDA, aquí te dejo una lista para que consultes: http://developer.nvidia.com/cuda/cuda-gpus (Para saber que modelo de nvidia tenemos bastara con escribir en terminal lspci | grep -i nvidia).



1.Instalando drivers de Nvidia


Para poder seguir avanzando es necesario tener instalado una versión reciente de los drivers privativos de nvidia para Linux (Si tienes una versión igual o superior a la 295.14 creo que te podrías saltar este punto entero. Averiguarlo escribiendo en consola nvidia-settings).
Puedes descargarlos desde este enlace: http://www.nvidia.com/Download/index.aspx?lang=es


Bajado ya el driver podemos empezar a instalar los drivers nvidia.Instalemos el material necesario:

sudo apt-get install binutils gcc make linux-headers-`uname -r`

Es necesario que los drivers puedan ser ejecutados como un programa (Con chmod +x NVIDIA-Linux-TUVERSON.run o botón derecho encima del archivo y en la pestaña Permisos activamos la casilla “Permitir ejecutar el archivo como un programa) .
A mayores necesitas que el archivo sea ejecutado con permisos de root y que tu no te encuentres en una sesión X (una sesión gráfica).

Para iniciar la instalación pulsa CTRL + ALT + F1 y una vez logeado, desde consola escribe para detener la sesión X con “ sudo /etc/init.d/gdm3 stop
Dirigete a la carpeta donde descargaste el driver y escribe “ ./NVIDIA-Linux-TUVERSION.run “ y sigue los pasos de la instalación.



ATENCIÓN!

Para aquellos que tengan instalado los drivers libres de Nouveau ofrecidos por la misma distribución ,en el asistente de nvidia, os aparecera un error en el que dirá que es necesario desactivar primero estos drivers antes de instalar los de nvidia.


El asistente te facilitara una posible opción que sera añadir un nuevo archivo en la carpeta /modprobe.d/ en la cual se puede conseguir deshabilitar dicho driver añadiéndolo a la lista negra y en el que tienes que contestar YES o NO. (Yo, personalmente, suelo utilizar este método visto que me funciona a la perfección y no me ando con líos. Si crees que tu tienes otro método mas controlado para conseguir este objetivo,adelante).

 Para los que dijimos “YES” tenemos que reiniciar con “sudo reboot” y en el grub tenemos que acceder al “Recovery mode” de la distribución.
En el " recovery mode" nos pedirá la clave de root para poder acceder a la terminal y con lo que tendremos que movernos al directorio donde descargamos el driver y ejecutarlo con “ ./NVIDIA-Linux-TUVERSION.run

Simplemente sigue los pasos del asistente y lee un poco para saber que te esta diciendo en cada paso (Por ejemplo, se puede dar que te de un aviso de que las versiones del GCC no son iguales, con el que debes de pulsar “NO” para que continué la instalación )

Una vez finalizada la instalación te preguntara si quieres que te cargue de forma automática la nueva configuración de xconfig-nvidia, pulsa “YES” y reinicia con “sudo reboot” para seleccionar en el GRUB el modo normal de arranque de tu Debian.



Nota: Para los que pulsasteis YES y veis que no recuperáis el entorno gráfico de ninguna forma recordad que eliminando el archivo que el asistente os añadió deberíais de rescatar el entorno gráfico (Usa rm /etc/modprobe.d/nvidia-installer-disable-noveau.conf desde alguna consola y reinicia)


2.INSTALANDO CUDA TOOLKIT 4.2


Descargamos Cuda 4.2 para Linux 64 bits o 32 bits respectivamente.

Damos permisos de ejecución de archivo como programa con
“ sudo chmod +x cudatoolkit_4.2.9_linux_64_ubuntu10.04.run
y ejecutamos el archivo con 
./cudatoolkit_4.2.9_linux_64_ubuntu10.04.run  " ,este nos preguntara donde queremos instalar CUDA. Pulsamos INTRO para dejarlo por defecto (/usr/local/cuda)

En caso recibir un “Extract failed” al ejecutar el .run es posible que tengas poco espacio en la partición o fallo de integridad del archivo. Para el primer caso usa “ ./cudatoolkit_4.2.9_linux_64_ubuntu10.04.run --target /opt “ o cualquier otra ruta para descomprimir. Para el segundo caso vuelve a descargar CUDA TOOLKIT 4.2.

Ahora debemos de configurar las variables de entorno para asignarle los nuevos cambios
sudo gedit ~/.bashrc “ y añadimos al final del archivo

export PATH=/usr/local/cuda/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH

AL LORO! Si estas haciendo la instalación bajo 32 bits tienes que cambiar “lib64” por “lib

Guardamos los cambios y cerramos el gedit, actualizamos el bash con “ sudo source ~/.bashrc ” y ponemos también “ sudo ldconfig

Vamos a ver si se configuro bien poniendo “nvcc -V” y si nos responde con un

nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2012 NVIDIA Corporation
Built on Thu_Apr__5_00:24:31_PDT_2012
Cuda compilation tools, release 4.2, V0.2.1221

es que todo va viento en popa!


3.INSTALANDO PYRIT Y PYRIT-CUDA

Instalamos primero el material necesario
apt-get install subversion python-dev libpcap-dev python-scapy

Vamos ahora a instalar pyrit desde el codigo fuente y lo descargamos mediante

svn checkout http://pyrit.googlecode.com/svn/trunk/ pyrit 

cd pyrit/pyrit

Compilamos pyrit

python setup.py build

Si no aparece ningun problema , instalamos

sudo python setup.py install

Venga,que ya falta poco :D

3.1.INSTALANDO PYRIT CUDA

Sin movernos de la terminal hacemos un “ cd ../../ “ para volver atrás y acceder entonces a “ cd pyrit/cpyrit_cuda/ “.

Situados ya en el directorio citado, procedemos a los pasos parecidos a lo de antes:

python setup.py build


Es posible que te aparezcan algún de estos errores al tratar de compilar , aqui te pongo algunas soluciones rápidas:

gcc: error trying to exec 'cc1plus': execvp: No existe el fichero o el directorio

Lo arreglariamos con un

sudo apt-get install g++-`gcc --version | grep gcc | awk '{print substr($4,1,3) }'`

(En realidad es simplemente apt-get install g++-TU_VERSION_DE_GCC , pero de esta forma te ahorro buscarte ya la versión. Lo digo por si te diera algún problema para que lo pudieras hacer manualmente)

En caso de recibir un error de tipo versiones de gcc del que el requiere al que tu tienes instalado en el sistema, solucionalo creando un enlace en la carpeta CUDA de tu gcc4.4 a gcc4.6 de la siguiente forma

 sudo ln -s /usr/bin/gcc-4.4 /usr/local/cuda/bin/gcc

En caso de no tener errores instalamos con

 python setup.py install

Bien,a ver si todo lo que hicimos sirvió para algo. Escribe en terminal “ pyrit list_cores “ si te contesta mostrando los núcleos de tu gráfica como algo parecido a la foto,es que todo a funcionado bien





(A ti te pueden salir mas núcleos y datos distintos evidentemente. Mi gráfica ya esta algo vieja U_U)


4.CRACKEANDO CON PYRIT (POR FIN!)

Ahora solo toca empezar a crackear el archivo .cap con el siguiente comando:

pyrit -r ARCHIVO_HANDSHAKE.cap -i diccionario.txt -b MAC_ESTACION attack_passthroug

-r : Parámetro para el archivo donde tenemos capturado el handshake
-i : Parámetro donde tenemos el diccionario para ir contrastando el handshake
-b : Parámetro donde se selecciona la estación mac (en el caso de que tengas varias capturadas dentro del mismo cap)



Dependiendo de la gráfica de la que dispongas podrás comprobar mas o menos palabras por segundo (en mi caso a 4828 PMKs), así que es solo cuestión de tiempo y un poco de suerte en que tu palabra este en el diccionario

Espero que todo haya funcionado bien, en breves colocare otro manual parecido pero utilizando gráficas ATI.

Puedes descargarte este tutorial en pdf aquí
Para cualquier duda, comentad! Saludos!

PD: Ire reeditando el articulo por si veo fallos o faltas de ortografías.




9 comentarios:

  1. Saludos amigo, he intentado hacer este proceso pero me da error, quisiera saber si a ti te funciona bien.

    ResponderEliminar
    Respuestas
    1. Efectivamente,todo lo que aquí escribo esta comprobado.

      Eliminar
  2. Muy bien hijo sobre todo la descarga del cuda toolkit comprueba los enlaces de 32 y 64 anda...estan cambiados... por lo de mas a ver que tal... voy a seguir.

    ResponderEliminar
  3. hermano buena información, permiteme consultarte algo: estoy usando wepcrackgui con el aircrack y se me genera un error al intentar autenticar las redes detectadas: pyrit is disable!!! esta instalado y gracias a tu post pude comprobarlo con el paso: pyrit list-cores lo que me indica que esta funcionando (sale la arquitectura que presentas en la foto marcada con n°2) la solucion que la aplicacion me presenta es la de modificar el patch de pyrit.... alli esta el detalle ni idea viejo de como se hace (uso Debian 7 a 32bit) saludos y gracias de antemano

    ResponderEliminar
  4. una consulta, todo me instala correctamente ,
    al ejecutar list_cores: me muestra esto.
    todo bien, quisiera saber como hago para que "'CUDA-Device #1 'GeForce 410''" me muestre en los 3 núcleos restantes?

    #1: 'CUDA-Device #1 'GeForce 210''
    #2: 'CPU-Core (SSE2)'
    #3: 'CPU-Core (SSE2)'
    #4: 'CPU-Core (SSE2)'

    GRACIAS...

    ResponderEliminar
  5. Excelente, los mismos pasos lo puedo realizar en wifislax o kali linux?

    ResponderEliminar
  6. Este comentario ha sido eliminado por el autor.

    ResponderEliminar
  7. Yo no puedo instalar los drivers nvidia, uso modo kde persist. Y con este método tampoco he podido. Error de X server. si voy al level 3, evito el error X server, pero me suelta otro error.
    si ejecuto sh nvidia.run -a -z -Z -no-x-check -b
    se salta el chekeo que x server y se instala. pero da error de kernel....
    que manera de complicarle la vida a uno.

    ResponderEliminar