martes, 21 de enero de 2014

Ataques por fuerza bruta. Diccionario.

Según lo poco que he leído, existen dos formas de romper la seguridad de una red wireless con encriptación WPA/WPA2.
Estas son una utilidad llamada reaver, que se basa en la debilidad de WPS (wifi protected setup) cuando no ha sido bien configurado, y las herramientas aircrack-ng, con las que se puede efectuar un ataque por fuerza bruta contra una "pre shared key " (PSK).
Para esto necesitamos capturar un handshake y disponer de un diccionario de posibles claves.
Ante la dificultad de descargar uno lo suficientemente bueno y grande(ninguno lo es XD) he optado por generar el mío propio y asegurar la inaccesibilidad de mi red ;)
Una contraseña WPA puede tener de 8 a 63 caracteres asíi que contemplar todas las posibilidades es tarea imposible. Pero se puede jugar a la lotería.

  1 #include <stdio.h>
2 #include <stdlib.h>
3 #include <time.h>
4 int main (void)
5 {
6 int i = 1,j,k;
7 srand(time(NULL));
8 while(i)
9 {
10 k = (rand()%5)+8;
11 for(i = 1;i <= k;++i)
12 {
13 j = 58;
14 while((j > 57 && j < 65) || (j > 90 && j < 97))
15 {
16 j = (rand() % 75) + 48;
17 }
18 printf ("%c",j);
19 }
20 printf("\n");
21 }
22 return 0;
23 }

Esto sólo genera claves con números, mayúsculas y minúsculas de 8 a 12 caracteres. Pero menos da una piedra XD
Y no no es nada fácil


Moraleja: Las claves cuanto más largas, mejor. Y que contengan todo tipo de caracteres, incluso acentos y tabuladores y arrobas etc... A no ser que a alguno le toque la lotería va a ser prácticamente imposible romper la seguridad de una red con este método.


En /usr/share/dict/ disponemos de algún diccionario con palabras en minúscula. Podemos pasarlo a mayúscula con tr o, también capitalizar sólo la primera letra con:

cat dict-spanish1.txt | sed 's/^./\U&/g' > dict-spanish2.txt