Autor Tema: Crear diccionario wpa  (Leído 29157 veces)

0 Usuarios y 1 Visitante están viendo este tema.

axelsrk

  • Visitante
Crear diccionario wpa
« en: 12-05-2009, 11:53 (Martes) »
Hola.

Bueno mi idea era hacer un diccionario en formato .txt con c++

La idea es esta: el año pasado en clase nos dieron una clave para la wifi con formato (Xxxx0000) o sea los 4 primeros digitos son caracteres de la a la z i la primera mayuscula i los ultimos 4 numeros.

Este año nos han dado otra distinta para otra classe con el mismo formato.

El problema esta en  que esta wifi k tenos este año va muy lenta y se cuelga cada 2x3, pero hay mas wifis alrededor pero el profe no nos quiere dar las claves mi idea era crear un diccionario (las wifis estan en WPA TKIP i solo una esta en WPA2 AES-CCMP)

En resumen lo que quiero es crear un programa C++ que me cree un .txt con una combinacion de password asi:

Aaaa0000
   .
   .
   .
Zzzz9999

Lo que pasa es que no se mucho de C++ y no se, si alguien me pudiera ayudar?

Muchas Gracias de antemano  ;)






derfeliano

  • Visitante
Re: Crear diccionario wpa
« Respuesta #1 en: 12-05-2009, 12:11 (Martes) »
Yo he probado el stringenerator que puedes encontrar en este post:

https://foro.seguridadwireless.net/enlaces-descarga-aplicaciones-wireless-linux/creadores-de-diccionarios/msg114634/#msg114634

y va de fábula para lo que quieres hacer!! ;) ;)

axelsrk

  • Visitante
Re: Crear diccionario wpa
« Respuesta #2 en: 12-05-2009, 14:49 (Martes) »
Muchas gracias derfeliano voy a probar

axelsrk

  • Visitante
Re: Crear diccionario wpa
« Respuesta #3 en: 12-05-2009, 17:42 (Martes) »
Gracias, pero no me sirve. si puede hacer un diccionario con 8 caracteres alternando letras y numeros pero no puede poner las 4 primeras letras siendo la primera mayuscula y despues 4 num no tiene esta opcion que estaba buscando pero de todas formas gracias

Seguire buscando  ;D

*dudux

  • Visitante
Re: Crear diccionario wpa
« Respuesta #4 en: 12-05-2009, 18:01 (Martes) »
Gracias, pero no me sirve. si puede hacer un diccionario con 8 caracteres alternando letras y numeros pero no puede poner las 4 primeras letras siendo la primera mayuscula y despues 4 num no tiene esta opcion que estaba buscando pero de todas formas gracias

Seguire buscando  ;D

habla con el creador y comentale que implemente esa funcion,talvez la meta en la siguiente version

Gonzalo1987

  • Visitante
Re: Crear diccionario wpa
« Respuesta #5 en: 15-05-2009, 18:16 (Viernes) »
Toma, he hecho este código de Visual .NET que hace lo que pides

Module Module1

    Sub Main()
        FileOpen(1, "diccionario.txt", OpenMode.Output)
        Dim a, b, c, d As Integer
        Dim numero As Integer
        For a = Asc("A") To Asc("Z")
            For b = Asc("a") To Asc("z")
                For c = Asc("a") To Asc("z")
                    For d = Asc("a") To Asc("z")
                        For numero = 0 To 9999
                            WriteLine(1, (Chr(a) & Chr(b) & Chr(c) & Chr(d) & Format(numero, "0000")))
                        Next
                    Next
                Next
            Next
        Next
        Console.WriteLine("Terminado")
        FileClose(1)
        Console.ReadLine()
    End Sub

End Module

el problema es que su ejecución tarda un ratito majo... además no sé como quitar las " " que se quedan en cada número se queda en el formato que quieres pero entrecomillado
"Aaaa0001"
"Aaaa0002"

para quitar las comillas te valdría cualquier editor
Además te va a salir un diccionario que pesa bastante (bastante que será mas de 100 mbs) te aviso :p si aun así lo quieres compilado te mando el .exe el lunes, no puedo hacerlo antes ya que no vuelvo hasta el lunes :p

Chau
« Última modificación: 10-02-2014, 16:36 (Lunes) por Gonzalo1987 »

Alter3go

  • Visitante
Re: Crear diccionario wpa
« Respuesta #6 en: 23-12-2009, 18:24 (Miércoles) »
Buenas, se que esto ya no se leerá pero aqui tienes tu programa en C de la old school:
/*Diccionario Aaaa0000 - Zzzz9999*/

#include <stdio.h>
#include <string.h>

int main (int argc, char *argv[])
{
FILE *fichero;

if (argc!=2){
   printf("El programa s'ejecuta de la siguiente manera: ./axelsrk <fichero>\n");
   return 1;;}

fichero=fopen(argv[1], "w+");

if (fichero==NULL){
   printf("Error al crear el fitxer");
   return 1;}

char cadena1[8]="00000000";
int a,b,c,d,e,f,g,h;

for (a=65;a<91;a++){
   cadena1[0]=a;
   for (b=97;b<123;b++){
      cadena1[1]=b;
      for (c=97;c<123;c++){
         cadena1[2]=c;
         for (d=97;d<123;d++){
            cadena1[3]=d;
            for (e=48;e<58;e++){
               cadena1[4]=e;
               for (f=48;f<58;f++){
                  cadena1[5]=f;
                  for (g=48;g<58;g++){
                     cadena1[6]=e;
                     for (h=48;h<58;h++){
                        cadena1[7]=h;
                        fprintf(fichero,"%c%c%c%c%c%c%c%c\n",cadena1[0],cadena1[1],cadena1[2],cadena1[3],cadena1[4],cadena1[5],cadena1[6],cadena1[7]);}
                        }
                     }
                  }
               }
            }
         }
      }
fclose(fichero);
return 0;
}

Pues ya está. En linux lo ejecutas como ./axelsrk diccionario.txt.
CONSEJO: tarda 95 segundos y genera un archivo de 1,5GB solo desde la Aaaa0000 hasta la Azzz9999 así que mejor corre el primer for por partes, en total serian 37,5GB si no calculo mal.

Si tienes alguna duda ya me diras, chequeare este post de vez en cuando.

//FINAL Y MÁS DOS RESPUESTAS