elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.


 


Tema destacado: Doble factor de autenticación o verificación en dos pasos


+  Foro de elhacker.net
|-+  Seguridad Informática
| |-+  Hacking Wireless
| | |-+  Wireless en Linux (Moderador: ChimoC)
| | | |-+  [HOWTO] Crakeando WPA/WPA2 vía fuerza bruta usando Pyrit
0 Usuarios y 2 Visitantes están viendo este tema.
Páginas: [1] 2 3 4 5 6 7 Ir Abajo Respuesta Imprimir
Autor Tema: [HOWTO] Crakeando WPA/WPA2 vía fuerza bruta usando Pyrit  (Leído 159,783 veces)
Festor
Ex-Staff
*
Desconectado Desconectado

Mensajes: 1.960


Ver Perfil
[HOWTO] Crakeando WPA/WPA2 vía fuerza bruta usando Pyrit
« en: 18 Julio 2009, 20:14 »

Hola a todos, hoy voy a mostraros como realizar un ataque de fuerza bruta usando Pyrit para crear tablas rainbow y Cowpatty para procesarlas.

Pyrit es una de las pocas herramientas disponibles para Unix/Linux y MacOS X que permite acelerar el pre-procesamiento una parte de la fase de autentificación de WPA/WPA2-PSK (~= creación de tablas rainbow) al explotar la potencia de computación de la GPU de nuestras tarjetas gráficas Nvida o ATi, además de la de nuestros procesadores de uno o más núcleos.

Para los que no lo sepan Pyrit, a día de hoy, constituye una de las herramientas más potentes contra WPA/WPA2-PSK, uno de protocolos de seguridad más robustos y fiables. Pyrit está escrito en python pero los módulos que permiten el acceso a la(s) GPU(s) están escritos en lenguajes de más bajo nivel (C/C++ y similares).

En resumidas cuentas, es como "darse cabezazos contra una pared" pero 5 o 6 veces (como mínimo) más rápido :laugh: de lo que conseguiríamos usando sólo nuestro(s) procesador(es). Esto bien puede traducirse a una reducción de por lo menos la mitad del tiempo necesario para crear una tabla rainbow (por ejemplo de, échale, 6 horas a quizás 2 o incluso 1), lo que resulta util para procesar diccionarios de varios gigabytes.

Vale... ya estoy viendo como a alguno se le cae la baba... sin embargo aunque no me guste puede que tenga que bajar a alguno de las nubes... :rolleyes:

Los sistemas que permiten acceder a Pyrit a las GPUs de las tarjetas gráficas son CUDA (en el caso de gráficas Nvidia) y Stream (en el caso de ATi), pues bien tanto CUDA como Stream son tecnologías relativamente recientes y sólo soportan una serie de modelos más o menos nuevos... si, no podía ser todo tan perfecto...

* Hardware soportado:
-> Modelos de Nvidia compatibles en esta web.
-> Modelos de ATi compatibles en en esta web.

Antes de nada debo daros un consejo, sobre todo si estáis pensando en comprar una tarjeta gráfica pronto, el rendimiento de Nvidia usando CUDA es notablemente superior al de los modelos de ATi que soporta Stream. La diferencia es tal que, en el caso de que vuestra gráfica sea una ATi, si no disponéis de una modelo de la serie Radeon HD38xx o superior (preferiblemente la serie Radeon HD48xx) os aconsejo que no sigáis con el manual ya que es probable que os llevéis una gran decepción. Lo digo en serio, yo tengo una Radeon HD3470... :-(

Este gráfico puede daros una idea de la diferencia de potencia entre ATi y Nvidia y, en especial, entre los modelos de Nvidia:


Como ya dije, tengo una Radeon HD3470 y el equipo en el que estoy actualmente no es que digamos una maquina bestial por lo que para hacer este manual utilizaré datos estadísticos de este otro, el cual también me sirvió de referencia para aprender a manejar Pyrit y poder escribir este documento.

Enhorabuena para los afortunados y otra vez será para los demás (o ir ahorrando para actualizar vuestra tarjeta gráfica :-\ ) y sin más dilación vamos con la parte "divertida" ;D .

* Requisitos indispensables:
 - Es imprescindible tener instalados los controladores propietarios de tu tarjeta gráfica ATi/Nvidia, preferiblemente los más actuales, ya que tanto Stream (ATi) como CUDA (Nvidia) hacen uso de bibliotecas del controlador propietario de la tarjeta gráfica.
 - Disponer de un diccionario en texto plano a partir del cual crearemos las tablas rainbow.
 - Capturar un handshake de una red wifi protegida con WPA-PSK o WPA2-PSK.
 - Tener instalado cowpatty, pyrit y el módulo de Pyrit correspondiente a tu tarjeta gráfica (pyrit-stream para ATi o pyrit-cuda para Nvidia).

Si tenéis Ubuntu 9.04 podéis encontrar las herramientas cowpatty y pyrit empaquetadas en formato deb en este enlace:

http://foro.elhacker.net/gnulinux/lista_de_repositorios_de_paquetes_deb_para_ubuntu_ppas_que_mantengo-t261488.0.html

Una vez que tengamos todo instalado, podemos comprobar la potencia de nuestra maquina ejecutando esta orden en una terminal:

Código
  1. pyrit benchmark

Esto lanzará una prueba de testeo que nos dará una idea aproximada de la potencia de tu sistema teniendo en cuenta tu(s) procesador(es) (CPUs) y la(s) GPU(s) de tu(s) tarjeta(s) gráfica(s). Pues bien, según pureh@te, en su sistema (un Q6600 Quad Core funcionando 3.6 GHz y una GeForce 8800 GT) la salida es esta:

Citar
The Pyrit commandline-client (C) 2008 Lukas Lueg http://pyrit.googlecode.com
This code is distributed under the GNU General Public License v3

The ESSID-blobspace seems to be empty; you should create an ESSID...
Available cores: 'Standard CPU', 'Nvidia CUDA'
Testing CPU-only core 'Standard CPU' (4 CPUs)... 1294.58 PMKs/s

Testing GPU core 'Nvidia CUDA' (Device 'GeForce 8800 GT')... 5409.43 PMKs/s

En resumen, la GPU de su 8800 GT es casi 5 veces más rápida que sus 4 CPUs.... :rolleyes:

Otro ejemplo es el caso de oscar, que con un Pentium Dual Core E5200 a 2.50 GHz y una Nvidia GeForce 9800 GT con 1 Gb GDDR3 tiene estos resultados:

Citar
oscar@ubuntu:~$ pyrit benchmark
Pyrit 0.2.2 (C) 2008, 2009 Lukas Lueg http://pyrit.googlecode.com
This code is distributed under the GNU General Public License v3

The ESSID-blobspace seems to be empty; you should create an ESSID...

Running benchmark for at least 60 seconds...

CUDA-Device #1 'GeForce 9800 GT': 5120.71 PMKs/s, 85.34% occupancy
CPU-Core (x86): 231.16 PMKs/s, 98.46% occupancy

Benchmark done. 5351.86 PMKs/s total.

Seguimos con el manual... Primero debemos crear el essid de la red que queremos crakear ya que es una variable necesaria para crear las tablas rainbow a partir del diccionario en texto plano. Para ello escribimos en una terminal:

Código
  1. pyrit -e Fenix88 create_essid

Mi red se llama Fenix88, por lo que cambia ese nombre por el de la red deseada.

Pyrit puede administrar la creación de tablas rainbow de 2 formas distintas: batchprocess (o batch) el cual procesa el diccionario y almacena las tablas en el disco duro para un uso posterior, y passthrough el cual procesa el diccionario escribiendo las tablas en la salida estándar (standard output o simplemente "stdout") para un uso inmediato, es decir, permite automatizar el ataquete por diccionario.

Sin embargo también se puede batchprocess y passthrough para usarlos al mismo tiempo. Tal como nos explica lukas en su blog:
Cita de: ebfe
Al parecer, a menudo he pasado por alto una forma que te permite utilizar batchprocess (calcular y escribir los resultados en el disco para su uso posterior) y passthrough (calcular y escribir los resultados a la salida para su uso inmediato) al mismo tiempo. Todo lo que tienes que hacer es especificar '-f - ' como una opción para el comando batchprocess.

Lo que ocurre es que Pyrit procesa las contraseñas para un único ESSID (usando '-e'), almacena los resultados en el disco y las escribe en la salida estándar (stdout). Los datos que ya se han procesado inmediatamente por escrito al stdout. Batchprocess continua funcionando si stdout si no está disponible (por ejemplo, porque el programa/shell destino cerró la tubería). Si todos los resultados ya han sido computados, batchprocess casi se comporta exactamente como hace passthrough.

De esta forma se puede detener y reanudar passthrough con bastante facilidad. También evita la necesidad de volver a procesar todos los datos en el caso de que Pyrit sufra una caída.

Si quieres usar passthrough en Pyrit con cowpatty debes introducir algo como esto:

Código
  1. pyrit -e Fenix88 -f wpa.lst passthrough | cowpatty -d - -r handshake-01.cap -s Fenix88

Pero si por el contrario quieres usar el batchprocess entonces debemos importar primero el archivo diccionario donde residen las contraseñas a procesar (cambia wpa.lst por la ruta completa a tu diccionario).

Código
  1. pyrit -f wpa.lst import_passwords

Creado el essid e importadas las contraseñas sólo nos queda dar inicio al proceso de creación de las tablas rainbow.

Código
  1. pyrit batchprocess

Bien, si has llegado hasta aquí es que todo ha salido sin problemas, continuamos. Pyrit permite exportar la tabla rainbow en formato compatible con Cowpatty o con airolib-ng (de la suite aircrack-ng). De momento usaremos Cowpatty ya que parece ser algo más rápido que airolib-ng aunque este último también tiene sus ventajas.

Procedemos a exportar el diccionario desde Pyrit

Código
  1. pyrit -e Fenix88 -f rainbowtable.cow export_cowpatty

Luego procedemos a importar el diccionario desde cowpatty para procesarlo.

Código
  1. cowpatty -d rainbowtable.cow -s Fenix88 -r handshake-01.cap

Donde handshake-01.cap es el archivo cap que contiene el handshake capturado, naturalmente debes substituirlo por la ruta completa a tu archivo cap. Bueno, si has tenido suerte y la clave estaba en el diccionario debería aparecerte algo parecido a esto:

Código
  1. festor@sniper-win:~$ cowpatty -d DicCowpatty.cow -s Fenix88 -r handshake-01.cap
  2. cowpatty 4.6 - WPA-PSK dictionary attack. <jwright@hasborg.com>
  3.  
  4. Collected all necessary data to mount crack against WPA2/PSK passphrase.
  5. Starting dictionary attack. Please be patient.
  6. key no. 10000: elipkcot
  7. key no. 20000: queerness
  8. key no. 30000: bynumber
  9. key no. 40000: neuheikendorferweg
  10. key no. 50000: biologistic
  11. key no. 60000: loessoid
  12. key no. 70000: surreverence
  13. key no. 80000: consalvi
  14. key no. 90000: needputenv
  15. key no. 100000: yratenom
  16. key no. 110000: fire-fly
  17. key no. 120000: schweikardt
  18. key no. 130000: cardphone
  19. key no. 140000: nighness
  20. key no. 150000: XXX/Operator
  21. key no. 160000: hydroxyzine
  22. key no. 170000: tectocephaly
  23. key no. 180000: dux/SimCity
  24. key no. 190000: nibelungenstr
  25. key no. 200000: ResolveAlias
  26.  
  27. The PSK is "IWill51Try01Shoot9The32Web".
  28.  
  29. 205478 passphrases tested in 1.64 seconds: 125473.71 passphrases/second

Si quieres puedes probar a saltarte el proceso de creación del rainbow table y trabajar directamente con el diccionario en texto plano (para ello cambia "-d DicCowpatty.cow" por "-f RutaCompletaATuDiccionario". Si haces esto comprobarás la tremenda diferencia de velocidad que implica usar o no Pyrit para preprocesar el diccionario.

Fin de la guía (por ahora... ;D )
« Última modificación: 14 Febrero 2010, 20:05 por Festor » En línea

Festor
Ex-Staff
*
Desconectado Desconectado

Mensajes: 1.960


Ver Perfil
Re: [HOWTO] Crakeando WPA/WPA2 vía fuerza bruta usando Pyrit en Ubuntu 9.04
« Respuesta #1 en: 18 Julio 2009, 20:17 »

Me reservo este post por si quiero extender el manual.

Por último quería dejaros una pequeña opinión: aunque el uso de las GPUs representa una mejora considerable en la capacidad de procesamiento de nuestros ordenadores, tanto WPA-PSK como WPA2-PSK siguen siendo seguros si se utilizan buenas contraseñas y una configuración adecuada. El uso de la(s) GPU(s) en la fuerza bruta contra WPA(2)-PSK puede ser útil para acelerar la creación de rainbow tables de diccionarios del estilo "claves por defecto de las redes JAZZTEL_XX" o para realizar ataques a estaciones protegidas con estos sistemas con una contraseña débil.

La fuerza bruta en mi opinión no es divertida ni eficiente  :-\  sin embargo en este caso sentía curiosidad por comprobar la potencia de las tarjetas gráficas que muchas veces estamos infrautilizando.

Lo entretenido es averiguar los algoritmos de creación de las claves por defecto de un ISP o encontrar un error en WPA-TKIP....  :silbar:

Sin embargo de momento esto es de lo más potente que hay contra WPA(2)-PSK :-\ .

Bueno si tengo tiempo procuraré escribir otros manuales que tengo en mente  ;D
« Última modificación: 13 Noviembre 2009, 15:29 por Festor » En línea

|FluiD|


Desconectado Desconectado

Mensajes: 383



Ver Perfil
Re: [HOWTO] Crakeando WPA/WPA2 vía fuerza bruta usando Pyrit en Ubuntu 9.04
« Respuesta #2 en: 19 Julio 2009, 00:37 »

Muchas gracias por tu tiempo, el tuto esta muy muy bien...

Yo estuve haciendo pruebas con la herramienta que hay para windows (de elcomsoftware) y no me atrevi ha hacerlo con pyrit por falta de tiempo...

Ahora no tengo excusa, habra que probarlo...

Un saludo

FluiD
En línea

|FluiD|


Desconectado Desconectado

Mensajes: 383



Ver Perfil
Re: [HOWTO] Crakeando WPA/WPA2 vía fuerza bruta usando Pyrit en Ubuntu 9.04
« Respuesta #3 en: 19 Julio 2009, 18:22 »

Tengo una duda, normalmente antes de postear algo, lo he trasteado antes, le he preguntado a mi amigo google, he leido los "reedme" y con mi medio spanglish y un traductor suelo aclarar mi duda, pero hoy voy a intentarlo por la via vaga  ;D (es verano y domingo)...

Como se haria para probar directamente el diccionario sobre handshake sin crear las tablas usando pyrit? 


Saludos

P.D Me da hasta cosa preguntar "asin", es como preguntar los numeros de la primitiva del jueves que viene  ;D

FluiD
« Última modificación: 20 Julio 2009, 21:49 por fluid2 » En línea

Festor
Ex-Staff
*
Desconectado Desconectado

Mensajes: 1.960


Ver Perfil
Re: [HOWTO] Crakeando WPA/WPA2 vía fuerza bruta usando Pyrit en Ubuntu 9.04
« Respuesta #4 en: 19 Julio 2009, 19:29 »

Tengo una duda, normalmente antes de postear algo, lo he trasteado antes, le he preguntado a mi amigo google, he leido los "reedme" y con mi medio spanglish y un traductor suelo aclarar mi duda, pero hoy voy a intentarlo por la via vaga  ;D (es verano y domingo)...

Como se haria para probar directamente el diccionario sobre handshake sin crear las tablas?

Saludos

P.D Me da hasta cosa preguntar "asin", es como preguntar los numeros de la primitiva del jueves que viene  ;D

FluiD

Muy simple, así:

Código:
cowpatty -f ArchivoDiccionario -s Fenix88 -r handshake-01.cap

Aunque siempre es recomendable crear las tablas rainbow ya que ganas mucha más velocidad.

¿Preguntas esto porque tu tarjeta gráfica no está soportada por pyrit? ¿o simplemente por curiosidad?

Si es lo primero debo decirte que pyrit funciona sin necesidad de los módulos adicionales que permiten el acceso a la GPU(s) de tu gráfica. De esta forma pyrit se convierte en un homologo de genpmk (la herramienta de generación de tablas rainbow de Cowpatty) pero sorprendentemente es mucho más veloz que genpmk aun sin usar la GPU de tu gráfica.

¿Posible motivo? Pyrit 0.2.3-dev incorpora el soporte para SSE2 lo que supone una mejora notable del rendimiento de nuestra CPU (ten en cuenta que != GPU). Por el otro lado desconozco si genpmk usa las instrucciones SSE2 de tu procesador pero por lo que he podido comprobar en mi máquina pyrit-0.2.3-dev es mucho más rápido que genpmk aun si usar la potencia de la GPU de tu gráfica.
En línea

|FluiD|


Desconectado Desconectado

Mensajes: 383



Ver Perfil
Re: [HOWTO] Crakeando WPA/WPA2 vía fuerza bruta usando Pyrit en Ubuntu 9.04
« Respuesta #5 en: 20 Julio 2009, 00:53 »

Si si, mi tarjeta esta soportado por CUDA, es una 8800GTX y si no recuerdo mal comprobaba a unos 8000 y pico pal/seg como muestra el grafico, sobre la herramienta de elcom software.

Por pruebas que hice hace tiempo (sin pyrit) se que el proceso de crear las tablas era mas lento que pasar un diccionario directamente sin ellas, con lo cual el crearla es (o era) interesante para intercambiarlas fijando un ESSID y/o  luego pasarlo en unos seg/min las veces que quisieras por ejemplo, por eso el interes de hacerlo sin las tablas, por que igual para algo puntual no seria (o era) productivo.

Me explico a donde quiero llegar (o por lo menos lo intento):

Usando pyrit basicamente como dices se convierte en un homologo de gempmk, es aqui donde realmente esta la aceleracion de la GPU, no en cowpatty al comprobarlas, con lo cual el usar el diccionario en texto plano directamente contra un handshake con cowpatty (o aircrack)  no implica mejora.

¿Es correcto o de alguna forma que se me escapa cowpatty usaria las GPU's tambien con las contraseñas en texto plano?

Por cierto ChimoC el tuto se merece como minimo una entrada en la chincheta de  "Temas de interes"  ;-)

Saludos

FluiD
« Última modificación: 20 Julio 2009, 21:51 por fluid2 » En línea

Festor
Ex-Staff
*
Desconectado Desconectado

Mensajes: 1.960


Ver Perfil
Re: [HOWTO] Crakeando WPA/WPA2 vía fuerza bruta usando Pyrit en Ubuntu 9.04
« Respuesta #6 en: 20 Julio 2009, 06:12 »

¿Es correcto o de alguna forma que se me escapa cowpatty usaria las GPU's tambien con las contraseñas en texto plano?

Hasta lo que yo sé, a día de hoy Pyrit es la única aplicación, para Unix/Mac, que utiliza la potencia de las GPUs para acelerar el ataque por diccionario contra WPA(2)-PSK. Es por eso que aunque no me entusiasma demasiado la fuerza bruta sentí curiosidad por probar y empaquetar esta herramienta.

No tengo noticias de que Cowpatty use la potencia de las GPUs y menos para procesar diccionarios en texto plano.
En línea

|FluiD|


Desconectado Desconectado

Mensajes: 383



Ver Perfil
Re: [HOWTO] Crakeando WPA/WPA2 vía fuerza bruta usando Pyrit en Ubuntu 9.04
« Respuesta #7 en: 20 Julio 2009, 10:23 »

Entendido, muchas gracias, a ver si esta semana tengo un rato y lo pruebo...

Saludos.

FluiD
En línea

Festor
Ex-Staff
*
Desconectado Desconectado

Mensajes: 1.960


Ver Perfil
Re: [HOWTO] Crakeando WPA/WPA2 vía fuerza bruta usando Pyrit en Ubuntu 9.04
« Respuesta #8 en: 20 Julio 2009, 10:42 »

Bien, he actualizado y reordenado un poco la información de la guía.

Ahora sólo me falta algunas cosas como el uso con airolibg-ng o la creación de clusters con pyrit y ya estaría casi completa  ;D

Tiempo al tiempo...  ;)
En línea

ChimoC
Por la libertad y contra el terrorismo
Moderador
***
Desconectado Desconectado

Mensajes: 5.139


Paz, dignidad y justicia


Ver Perfil
Re: [HOWTO] Crakeando WPA/WPA2 vía fuerza bruta usando Pyrit en Ubuntu 9.04
« Respuesta #9 en: 20 Julio 2009, 11:01 »

Buenas:

Este fin de semana me lo he tomado sabático (cervecita, tapitay nada de "internés")  ;D

Chincheta al canto en Temas de interés y muchas gracias  ;-)

Un saludo

ChimoC
« Última modificación: 20 Julio 2009, 11:04 por ChimoC » En línea

Páginas: [1] 2 3 4 5 6 7 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
problemas al conectar con redes wpa/wpa2 usando mac falsa
Hacking Wireless
melodic 2 3,342 Último mensaje 7 Julio 2011, 18:17
por melodic
crack wpa / wpa2 Usando Reaver 1.3 « 1 2 »
Hacking Wireless
[M4rtin] 13 23,755 Último mensaje 24 Agosto 2012, 18:57
por carrrca
Hacking wpa-wpa2 fuerza bruta « 1 2 »
Hacking Wireless
Blackfall 13 32,545 Último mensaje 24 Noviembre 2013, 06:32
por Sh4k4
[DUDA] se puede hackear telnet usando fuerza bruta?
Hacking Básico
Noxware 2 1,012 Último mensaje 17 Febrero 2014, 21:11
por Tronos154
Un estudiante hackea la Fuerza usando un Star Fighter impreso en 3D, un ....
Noticias
wolfbcn 4 1,631 Último mensaje 11 Febrero 2014, 19:13
por #!drvy
Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines