Como dijo Daisetsu, no estás haciendo nada mal: la CPU es muy lenta en el hashing de las contraseñas WPA. Si bien no tengo experiencia en ello, OSX tampoco debería ser un problema.
La especificación WPA / 2 exige 4096 rondas de hashes HMAC-SHA1 para obtener la clave final. Esto equivale a 16,384,000 hashes HMAC-SHA1 / segundo en ~ 4k claves / segundo. Individualmente, son bastante rápidos. Sin embargo, WPA fue diseñado en parte para hacer que los ataques de fuerza bruta sean más difíciles (así como más seguros en general), y por lo tanto implementó muchas rondas de hashes en lugar de usar solo una.
Confiar en la CPU para descifrar WPA no te llevará muy lejos, como lo has notado. Un método mucho más rápido sería el cracking GPU. Incluso sin una GPU potente, lo más probable es que obtengas mejores resultados.
En mi opinión, hay dos competidores principales en el juego de craqueo de GPU: hashcat y Pyrit;
hashcat
Sitio: enlace
Tutorial: enlace
hashcat es genial si no tienes mucho espacio en el disco duro. Puede alimentar su entrada con crujido (como lo está haciendo ahora), y admite una increíble cantidad de algoritmos; no sólo WPA. Si detiene el hashcat, puede recogerlo más tarde especificando la cadena de inicio en aplastamiento, ya que el hashcat le brinda actualizaciones periódicas sobre su velocidad y contraseña actual, así como otras cosas.
Pyrit
Sitio: enlace
Tutorial: enlace
Pyrit es ideal para ataques precomputacionales . Pyrit le permite especificar un SSID (ya que el SSID se usa en el algoritmo HMAC) y calcular una tabla de claves basada en una entrada (ya sea un archivo o una contracción) y guardarlas . Si conocía el SSID que buscaba (por ejemplo, Netgear; un nombre predeterminado), simplemente podría comparar las claves sin tener que volver a calcularlas una y otra vez . Esto es genial porque el proceso de comparación es increíblemente fácil y seguirá usando el gpu. Con mi configuración SLI GTX650TI boost, obtuve unos 55k hashes / segundo, y cien millones de comparaciones / segundo (si mi memoria es correcta; esto fue hace un tiempo).
Pyrit es más útil a largo plazo, ya que solo tiene que calcular las claves una vez y luego compararlas con el protocolo de enlace capturado en sus archivos de pcap. Con el hashcat, puedes llegar a descifrar y comparar al mismo tiempo sin la necesidad de calcular todo y luego compararlo.
La diferencia es el tiempo: si tiene una contraseña de 8 caracteres y va a probar todas las combinaciones posibles de aaaaaaaa
a zzzzzzzz
y su contraseña era mmmmmmmm
, Pyrit tendría que calcular todas las claves posibles de aaaaaaaa
a zzzzzzzz
y luego compárelo, mientras que hashcat obtendría mmmmmmmm
, lo troceará, lo comparará y le dirá que encontró la respuesta sin tener que pasar por todas las otros posibles candidatos.
Ahora, si luego cambiaste la contraseña y quisiste comparar otro apretón de manos, Pyrit sería tu hijo, ya que ya calculaste todas las claves de aaaaaaaa
a zzzzzzzz
para ese SSID, mientras que hashcat tendría para recompensarlos. Básicamente, si va a reutilizar un SSID muchas veces, elija Pyrit. Si está apagado, usa hashcat.
En cuanto a los números de velocidad sin formato, este sitio tiene una tabla muy buena que compara las velocidades de muchos gráficos diferentes tarjetas En mi experiencia, hashcat y Pyrit tienen aproximadamente las mismas velocidades de hashing, por lo que si ese número es su principal preocupación, el uso de cualquiera de los programas de hash de GPU producirá aproximadamente los mismos resultados. Su principal preocupación entre los programas será la reutilización de ese SSID.
Espero que esto tenga sentido. Si no, hágamelo saber y trataré de explicarlo mejor.