Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: WiseHidden en 18 Marzo 2011, 11:13 am



Título: Intentando crear programa romper claves wifi (WEP) S.O Windows en C++
Publicado por: WiseHidden en 18 Marzo 2011, 11:13 am
Mi reto personal es un poco bastante grande para mi (Pues apenas estoy empezando en C/C++
Mi objetivo seria crear un programa para romper las claves (Predeterminadas) wifi (WEP) en un sistema como Windows en C++.
Como vereis mi programa (Bastante escueto) pues solo tiene "cout" es decir texto plano imprimido en pantalla, pero el proposito del post es que entre todos aportes un toque al programa y realizemos un programa que haga dicha funcion, de este modo, creo que muchos aprenderemos sobre funciones, variables, y un sin fin mas de cosas de este maravilloso lenguaje.

Asi pues solo queda decir que bienvenidos a todo el que se una a este interesante proyecto pues podemos compartir una aficcion y una vez terminado compartirlo con todos aquellos que lo deseen.

Un saludo camaradas


atentamente
Wissehidden


Título: Re: Intentando crear programa romper claves wifi (WEP) S.O Windows en C++
Publicado por: WiseHidden en 18 Marzo 2011, 11:14 am
Aqui va el código
Citar
#include <iostream>

void funcion1();
void funcion2();
void funcion3();
void funcion4();
void funcion5();
void funcion6();
void funcion7();


int main()
{
    top: //etiqueta para el goto
    int menu; //declaramos la variable "menu"
   
         //mostramos en pantalla todas las opciones disponibles
         std::cout << "Programa Wifi_hi v 1.0 (Beta)" << std::endl;
         std::cout << "by Wisehidden 2011" << std::endl;
         std::cout << "_________________________________________________________" << std::endl;
         
         std::cout << "" << std::endl;
         std::cout << "" << std::endl;
         std::cout << "" << std::endl;
       
         
         //incluimos una tabulación para hacer el menú a dos linias (t)
         std::cout << "1."  << "Ayuda" << std::endl;
         std::cout << "_________________________________________________________"<< std::endl;
         std::cout << "GENERADORES DE DICCIONARIO"<<std::endl;
         std::cout << "2."  << "Generador de Diccionario Wlan_xx" << std::endl;
         std::cout << "3."  << "Generador de Diccionario Wlan_xxxx" <<  std::endl;
         std::cout << "4."  << "Generador de Diccionario Jazztel" << std::endl;
         std::cout << "_________________________________________________________"<<std::endl;
         
         std::cout << "5."  << "Ataque por diccionario" << std::endl;
         std::cout << "_________________________________________________________"<<std::endl;
         
             
         //mostramos la opción de salir en la parte derecha de la pantalla
         std::cout << "6." << "Salir" << std::endl;
         std::cout << "" << std::endl;
         std::cout << "Eliga una opcion" << std::endl;
         std::cin >> menu; //hacemos que el programa lea del teclado la variable "menu"
 
 switch (menu)
  {
 case 1: //para la selección 1
    system("cls"); //limpiamos la pantalla
    funcion1(); //ejecutamos la función 1
    system("cls"); //limpiamos la pantalla
    goto top; //enviamos el programa al inicio de este.
    break; //rompemos el control del programa (no necesario ya que ha sido enviado anteriormente)
 case 2: //para la selección 2
    system("cls");
    funcion2();
    system("cls");
    goto top;
    break;
 case 3: //para la selección 2
    system("cls");
    funcion2();
    system("cls");
    goto top;
    break;
 case 4: //para la selección 2
    system("cls");
    funcion2();
    system("cls");
    goto top;
    break;
 case 5: //para la selección 2
    system("cls");
    funcion2();
    system("cls");
    goto top;
    break;
 case 6: //para salir
      break; //rompemos el control del programa y lo enviamos al final del switch ( } ) ahí acabará la ejecución después del return 0;
 default://en caso de otro número, limpiamos la pantalla y enviamos el programa al inicio.
    system("cls");
    goto top;
    break;
   }
   
return 0;   
}

//funciones secundarias
void funcion1()
{
     std::cout << "Ayuda" << std::endl;//mostramos Funcion 1 en pantalla
     std::cout << "_____________________________________________________________" << std::endl;
     std::cout << "Esta opcion es una ayuda para comprender el funcionamiento del programa" << std::endl;
     std::cout << "Este programa Cuenta con 6 opciones acontinuacion explicare cada una de ellas" << std::endl;
     std::cout << "La opcion 1: (Ayuda) Esta opcion nos ayuda a entender cada funcionamiento del programa" << std::endl;
     std::cout << "La opcion 2: (GD Wlan_xx) Genera un diccionario para romper las claves WEP Wlan_xx" << std::endl;
     std::cout << "La opcion 3: (GD Wlan_xxxx) Genera un diccionario para romper las claves WEP Wlan_xxxx" << std::endl;
     std::cout << "La opcion 4: (GD Jazztel) Genera un diccionario para romper las claves WEP Jazztel" << std::endl;
     std::cout << "La opcion 5: (Ataque por diccionario)Realiza el ataque mediante un diccionario" << std::endl;
     std::cout << "La opcion 6: (Salir) Salimos del programa automaticamente" << std::endl;
     system("pause");//pausamos la ejecución del programa
}

void funcion2()
{
     std::cout << "Generador de Diccionario Wlan_xx" << std::endl;
     std::cout << "_____________________________________________________________" << std::endl;
     std::cout << "Introduce la BSSID:" << std::endl;
     std::cout << "Introduce la ESSID:" << std::endl;
     std::cout << "Eliga Nombre de Diccionario:" << std::endl;
     system("pause");
}
void funcion3()
{
     std::cout << "Generador de Diccionario Wlan_xxxx" << std::endl;
     std::cout << "_____________________________________________________________" << std::endl;
     std::cout << "Introduce la BSSID:" << std::endl;
     std::cout << "Introduce la ESSID:" << std::endl;
     std::cout << "Eliga Nombre de Diccionario:" << std::endl;
     system("pause");
}
void funcion4()
{
     std::cout << "Generador de Diccionario Jazztel" << std::endl;
     std::cout << "_____________________________________________________________" << std::endl;
     std::cout << "Introduce la BSSID:" << std::endl;
     std::cout << "Introduce la ESSID:" << std::endl;
     std::cout << "Eliga Nombre de Diccionario:" << std::endl;
     system("pause");
}
void funcion5()
{
     std::cout << "Ataque por Diccionario" << std::endl;
     std::cout << "_____________________________________________________________" << std::endl;
     std::cout << "Introduce la BSSID:" << std::endl;
     std::cout << "Introduce la ESSID:" << std::endl;
     std::cout << "Seleccione Diccionario:" << std::endl;
     std::cout << "Introduzca Ip del cliente (192.168.1.1):" << std::endl;
     std::cout << "Introduzca Ip de cliente falso a asociar:" << std::endl;
     std::cout << "Introduzca numero de ARP:" << std::endl;
     std::cout << "Seleccione tipo de ataque clave/segundo:" << std::endl;
     std::cout << ":" << std::endl;
     system("pause");
}


Título: Re: Intentando crear programa romper claves wifi (WEP) S.O Windows en C++
Publicado por: anonimo12121 en 18 Marzo 2011, 11:32 am
Por diccionario?... prueba a usar fstream para abrir un archivo y pasar las claves a memoria, recuerda que el abrir un archivo y copiar una palabra cuesta más que copiarlo estando ya en memoria.

PD: Este maldito fallo lo tuve con mi editor de mapas y no veas lo ralentizado que iba lo soluciones e iba como la luz


Título: Re: Intentando crear programa romper claves wifi (WEP) S.O Windows en C++
Publicado por: WiseHidden en 18 Marzo 2011, 11:37 am
Citar
prueba a usar fstream para abrir un archivo y pasar las claves a memoria

Agradezco tu orientación, soy muy muy nuevo en esto de la programación y toda ayuda es buena y bien recibida.

Entonces si no he entendido mal, tu idea es usar un fstream (#include <fstream>) Que esto lo que abriria seria un (*.txt) o algun documento de texto ya creado con las posibles combinaciones???

Eso suena fantastico.

Como lo crearia??

Un saludo y buen aporta


Título: Re: Intentando crear programa romper claves wifi (WEP) S.O Windows en C++
Publicado por: anonimo12121 en 18 Marzo 2011, 11:41 am
Pues sería en plan tipo de router, de compañía tengo entendido que a veces ponen claves predeterminada.
Seria abrirlo y pasarlo alguna string o algo así. y el archivo .txt mismo vale.
Algo así podría ser :
root,admin,1234,asdf...
Lo típico añadiendo las claves predeterminadas que dan las compañías.

Saludos.


Pero date cuenta que si es por diccionario y la clave es por ejemplo.

3lh4ck3r3lh4ck3r3lh4ck3r

Y esto no está en el diccionario no la descifrara en la vida.
Además no sé, creó que tendrías que trabajar con drivers para usar la tarjeta inalámbrica para hacer intentos de conexión o quizás no , no tengo ni idea


Título: Re: Intentando crear programa romper claves wifi (WEP) S.O Windows en C++
Publicado por: WiseHidden en 18 Marzo 2011, 12:05 pm
La idea es sacar en un principio las claves predeterminadas.
Esto seria 13 caracteres (Ascii) Sino estoy mal informado.

Partiendo de esto tendria que crear un .txt con decenas, cientos, miles de posibles combinaciones????


Título: Re: Intentando crear programa romper claves wifi (WEP) S.O Windows en C++
Publicado por: Z3R0 BOOM en 18 Marzo 2011, 15:19 pm
Me parece un proyecto muy interesante yo siempre quize hacer algo igual.
Me apunto!!!!



Título: Re: Intentando crear programa romper claves wifi (WEP) S.O Windows en C++
Publicado por: WiseHidden en 19 Marzo 2011, 19:25 pm
Bien entonces lo que necesitamos para empezar es generar diccionarios en documentos .txt para llamarlos con el fstream y asi acelerar el proceso de busqueda, para no generarlos en el mismo momento.

Alguien podria orientarnos o dar su punto de vista sobre el tema!!!


Un saludo

Atentamente

WH


Título: Re: Intentando crear programa romper claves wifi (WEP) S.O Windows en C++
Publicado por: <<<-Basura->>> en 20 Marzo 2011, 16:30 pm
Ammm podrias hacer antes un programa para generar aparte todas las contraseñas posibles... digamos... batiemos jeje.
digamos que:

YO ------ Victima

Victima usa una contraseña (batiamos) de 3 catacteres... segun el codigo asii serian 255 caracteres verdad... entonces serian miles de provavilidades... algo como 255 elevado a la 3 = 16581375 demaciadas contraseñas pero... digamos que " Victima " no usa mayusculas ni signos raros... centremonos solo en minusculas y numeros primero. minusculas = 24 y numeros = 9; entonces 24+9=33 entonces son 33 elevado a la 3 = 35937 ven ya son menos a provar....
no se si me captan :S

Entonces YO haria un programa para que en un .txt guarde todas las contraseñas posibles.. y despues otro programa para que prueve una por una y si entra finalice el programa y me diga cual fue la que le sirvio.. y la almacene en algun lugar por si pasa algun error ;)


Título: Re: Intentando crear programa romper claves wifi (WEP) S.O Windows en C++
Publicado por: <<<-Basura->>> en 20 Marzo 2011, 16:43 pm
Ahh tambien lo que podrias hacer y menos complicado crearte un keylogger y robar asi su pass de wifi... el problema seria si la Victima que le vas mandar el keylogger tiene todo el dia el wifi conectado... lo que tendrias que hacer es otro virus q se lo desconecte para asi estar seguro de que va a digitar su pass.. pero tambien esta la provavilidad de que tenga varios ordenadores en la casa, entonces tendrias mas problemas .....


Título: Re: Intentando crear programa romper claves wifi (WEP) S.O Windows en C++
Publicado por: anonimo12121 en 20 Marzo 2011, 18:33 pm
Ahh tambien lo que podrias hacer y menos complicado crearte un keylogger y robar asi su pass de wifi... el problema seria si la Victima que le vas mandar el keylogger tiene todo el dia el wifi conectado... lo que tendrias que hacer es otro virus q se lo desconecte para asi estar seguro de que va a digitar su pass.. pero tambien esta la provavilidad de que tenga varios ordenadores en la casa, entonces tendrias mas problemas .....
como le metes el virus sin estar conectado a su red ? -.-


Título: Re: Intentando crear programa romper claves wifi (WEP) S.O Windows en C++
Publicado por: <<<-Basura->>> en 20 Marzo 2011, 18:36 pm
No lo se algo se puede ocurrir.. talvez mandandole un correo a una persona X de la casa de la victima a la que tu conoscas.. como ahora es muy comun el facebook podrias agregarlo a amigos y despues convenserlo que se meta en pagina X... mm muchas formas jeje pero la verdad esas ya estan muy quemadas  lol


Título: Re: Intentando crear programa romper claves wifi (WEP) S.O Windows en C++
Publicado por: WiseHidden en 20 Marzo 2011, 21:36 pm
Vallamos por partes.
No se trata de "sacarle" el wifi al vecino!!!!
De hecho yo e hecho mis experimentos con wifiway y siempre me an dado resultado.

Lo que nos concentra aqui es crear, Repito Crear un programa que haga tal funcion.
como a dicho rasielunderwar, primero debemos centrarnos en crear un programa para generar claves en un .txt

Una vez sabido esto, por donde empezamos??

Vamos a crear entre todos los que se quieran apuntar un codigo y lo vamos mejorando
q os parece??


Título: Re: Intentando crear programa romper claves wifi (WEP) S.O Windows en C++
Publicado por: El_Java en 20 Marzo 2011, 21:55 pm
Me gusta la idea, me apunto yo tambien  :P

Seria buena idea detallar lo maximo posible el objetivo del programa, con todos los detalles  ;D


Título: Re: Intentando crear programa romper claves wifi (WEP) S.O Windows en C++
Publicado por: WiseHidden en 20 Marzo 2011, 22:40 pm
En Principio el programa esta diseñado para sacar claves wifi (WEp) Predeterminadas.

Se trata de un ataque por fueza bruta (Atraves de diccionario) lo primero que debemos realizar es un proyecto que realize un generador de x caracteres (En un documento *.txt) Para que el proceso n sea muy lento y que lo compare con (Una contraseña predeterminada por nosotros) y haciendo comparacion consigamos sacarla.

No se si me e explicado bien, de forma sencilla:

Hacer un programa que compare con un *.txt (documento donde iran miles de posibilidades)  dicha contraseña predeterminada.

PD: El programa se hara en C/C++
PD: Todo aquel que quiera es libre de opinar, aportar o mejorar el programa

Todos los colaboradores seran reconocidos en dicho programa.

un saludo



Título: Re: Intentando crear programa romper claves wifi (WEP) S.O Windows en C++
Publicado por: <<<-Basura->>> en 20 Marzo 2011, 22:41 pm
Dime Underwar jeje .. ¬¬es que no me dejaba registrarme cuando lo intente decia que estaba en uso alguien me lo robo (?)...
ammm posten un codigo yo estoy corto de tiempo para hacer uno.. jeje mandemen un privado talvez me haga uno jeje ;) suerte


Título: Re: Intentando crear programa romper claves wifi (WEP) S.O Windows en C++
Publicado por: WiseHidden en 20 Marzo 2011, 23:55 pm
A pesar de ser el promotor de este Gran reto, aun estoy muy verde en programacion C/C++ Pero creo que podemos partir de este codigo.
Lo dicho todos pueden aportar ideas, retoques y consejos. Un saludo

Citar
#include <iostream>
#include <fstream>
using namespace std;

int main()
{
   /* Fichero original, se abre para lectura pasando parámetros en la declaración de la variable */
   ifstream f("fichero.txt", ifstream::in);

   /* Fichero nuevo para copiar, se abre después de declararlo, llamando a open() */
   ofstream f2;
   f2.open("fichero2.txt", ofstream::out);
   system ("pause");
}

El hecho de que emprenda esta aventura, es una forma dinamica de aprender a programar, pues asi uno ve, retoca, y aprende mucho sobre este lenguaje. Y tanto yo como cualquier iniciado puede aprender participando en un proyecto de esta indole.

PD: Se agradeceria que al lado de cada "linea" se (comentara) su funcion.

Un saludo


Título: Re: Intentando crear programa romper claves wifi (WEP) S.O Windows en C++
Publicado por: WiseHidden en 23 Marzo 2011, 16:52 pm
Buenas Tardes camaradas!!!

No veo aportacion ninguna por vuestro parte!!!!
Que pasa? Ya lo he resuelto yo solo?? Jajajajaja Venga aportes ideas, codigos o sugerencias, que se vea esto mas activo!!!!

Un saludo a todos camaradas!!!

Un abrazo
Atentamente
WH


Título: Re: Intentando crear programa romper claves wifi (WEP) S.O Windows en C++
Publicado por: anonimo12121 en 23 Marzo 2011, 17:42 pm
Buenas Tardes camaradas!!!

No veo aportacion ninguna por vuestro parte!!!!
Que pasa? Ya lo he resuelto yo solo?? Jajajajaja Venga aportes ideas, codigos o sugerencias, que se vea esto mas activo!!!!

Un saludo a todos camaradas!!!

Un abrazo
Atentamente
WH
Esto es como decir, quiero hacer un megaman en SDL alguien quiere hacerlo conmigo?
Pon que se pongan en contacto contigo por MP  los interesados .Y vais posteando aquí los avances.
PD: Así será más serio, suerte amigo.


Título: Re: Intentando crear programa romper claves wifi (WEP) S.O Windows en C++
Publicado por: WiseHidden en 23 Marzo 2011, 20:19 pm
No lo habia visto desde ese punto de vista la verdad! Jaja
Gracias

Bueno pues todos los interesados en crear este programa (Mas que todo para aprender) se pongan en contacto en privado.

Un saludo y bienvenido a todos los que quieran unirse

Xafi contaremos con tu sabiduria no?? :D Que se que le das bien al tema!! :D Agradeceria tenerte en el equipo!!!

WH


Título: Re: Intentando crear programa romper claves wifi (WEP) S.O Windows en C++
Publicado por: anonimo12121 en 23 Marzo 2011, 22:15 pm
No lo habia visto desde ese punto de vista la verdad! Jaja
Gracias

Bueno pues todos los interesados en crear este programa (Mas que todo para aprender) se pongan en contacto en privado.

Un saludo y bienvenido a todos los que quieran unirse

Xafi contaremos con tu sabiduria no?? :D Que se que le das bien al tema!! :D Agradeceria tenerte en el equipo!!!

WH
Jaja gracias pero no tengo ni pu*a idea solo hago teorías XD yo soy más de juegos XDD. SDL. no más y aún así nunca termino nada. y no dedico mucho tiempo. por culpa de los vicios a los juegos XDD.
Pero te estaré observando XD. Además si no se te une nadie inténtalo solo. Recuerda que es para aprender.


Título: Re: Intentando crear programa romper claves wifi (WEP) S.O Windows en C++
Publicado por: <<<-Basura->>> en 24 Marzo 2011, 00:08 am
Mandame un mp, yo voy haber que ago.. talvez esete fin de semana que estoy corto de tiempo entre semana


Título: Re: Intentando crear programa romper claves wifi (WEP) S.O Windows en C++
Publicado por: <<<-Basura->>> en 27 Marzo 2011, 23:59 pm
Bueno esto fue lo que hice esta mal echo... lo hice a la carrera jejeje tengo examen pronto y tengo que prepararme jeje:

Código
  1. #include <iostream>
  2.    using namespace std;
  3.  
  4. void vaciar(int pass[100][3]);
  5.  
  6. int main(){
  7.    int pass[100][3];
  8.    int temp1=0,temp2=0,temp3=0;
  9.    vaciar(pass);
  10.  
  11. for(int i=0;i<100;i++){    
  12.    if(pass[i][2]<4){
  13.        pass[i][2]=temp1;
  14.        pass[i][1]=temp2;
  15.        pass[i][0]=temp3;
  16.        temp1++;
  17.  
  18.        if(pass[i][2]==4){
  19.            if(pass[i][2]==4){
  20.                temp2++;
  21.            }
  22.            temp1=0;
  23.            pass[i][2]=temp1;
  24.            pass[i][1]=temp2;
  25.            pass[i][0]=temp3;
  26.            temp1=1;
  27.            if(pass[i][1]==4){
  28.                if(pass[i][1]==4){
  29.                    temp3++;
  30.                }
  31.                temp1=0;
  32.                temp2=0;
  33.                pass[i][2]=temp1;
  34.                pass[i][1]=temp2;
  35.                pass[i][0]=temp3;
  36.                temp1=1;
  37.                if(pass[i][0]==3 && pass[i][0]==3 && pass[i][0]==3){
  38.                        break;
  39.                    }              
  40.  
  41.            }
  42.        }    
  43.    }
  44. }  
  45.  
  46.  
  47.    for(int i=0;i<100;i++){
  48.        for(int j=0;j<3;j++){
  49.            switch(pass[i][j]){
  50.                case 0:
  51.                    cout <<"-";
  52.                break;
  53.                case 1:
  54.                    cout <<"a";    
  55.                break;
  56.                case 2:
  57.                    cout <<"b";    
  58.                break;
  59.                case 3:
  60.                    cout <<"c";    
  61.                break;
  62.            }
  63.  
  64.        }
  65.        cout << endl;
  66.    }
  67.  
  68.  
  69.  
  70.  
  71. cout << "Presione cualquier tecla para continuar...";
  72. getchar();
  73. return 0;
  74. }
  75.  
  76. void vaciar(int pass[100][3]){
  77.    for(int i=0;i<100;i++){
  78.        for(int j=0;j<3;j++){
  79.            pass[i][j]=0;
  80.        }    
  81.    }  
  82. }
  83.  

Se los dejo de guia espero que lo perfeccionen, pasen codigo para ir viendo y yo tambien aportando... yo seguire trabajando ese codigo que tengo, cada vez que tenga tiempo... Suerte


Título: Re: Intentando crear programa romper claves wifi (WEP) S.O Windows en C++
Publicado por: WiseHidden en 30 Marzo 2011, 00:33 am
Rasielunderwar Camarada!!!
Agredezo tu aporte, se que lo has hecho ala carrera, y no has podido explicar el funcionamiento del programa!
Cuando tengas un hueco si eres tan amable, de comentar y explicar su funcionalidad para que todos los interesados en el proyecto puedan unirse....Te estariamos muy agradecidos.

Yo tb estoy terminando mi codigo, aunque la verdad que tengo muy poco tiempo!! pero cada hueco lo dedico a esto, solo me queda decir que buen aporte, y que todos pueden ir, asesorando, aconsejando, exponiendo e incluso modificando los codigos aqui expuestos, pues este proyecto es una labor y colaboracion de todos, y toda ayuda y orientacion sera bien acojida, un saludo a todos

Atentamente

WH


Título: Re: Intentando crear programa romper claves wifi (WEP) S.O Windows en C++
Publicado por: <<<-Basura->>> en 30 Marzo 2011, 03:38 am
lo poco que hace mi codigo es generar contraseñas con las posibles combinaciones de 3 letras (a,b,c) jeje.... nada mas tienen que mejorarlo y meterle que produsca mas letras... cuando lo logren despues tratemos que lo imprima en un block de notas de forma ordenada... saludos y suerte... espero haber sido de apollo


Título: Re: Intentando crear programa romper claves wifi (WEP) S.O Windows en C++
Publicado por: Danyel_Casvill en 9 Abril 2011, 05:17 am
Emmm, voy a empezar aclarando que creo que voy a meter la pataa hablando aqui, ya que yo apenas estoy empezando a entender el bucle for XD (con eso se imaginaran lo verde que estoy).

No se muy bien lo que quieran hacer pero pues aqui va mi "aporte"; Podrían hacer algo (un ejemplo) que genere n número de combinaciones de números de n número de dígitos al azar (por ahí vi una funcion que puede generar numero al azar, no se si tambien pueda letras..) y que en el documento de texto muestre las combinaciones INCORRECTAS e irlas descartando y que siga generando las combinaciones sin que repita las incorrectas hasta encontrar la correcta y la muestre en el documento.

Bueno, esa es solo mi idea, no se la verdad muy bien como hacerlo ya que como les digo estoy muy verde.... en fin ya dije que creo meto la pata aqui XD

Saludos, Hasta luegoo ^^

"No me equivoque creando mi programa, es sólo que aprendí mil formas de cómo NO hacerlo".

Ya me acorde que funcion es la que echa números al azar, es randomize(); y para hacer que tire el numero, hay que declarar una variable y ponerle por ejemplo:

a=random(100);

entonces, la variable a, dara un numero al azar desde 0 hasta 99.

ejemplo:

Código
  1. #include <iostream>
  2. #include <stdlib>
  3. int main()
  4. {
  5. int x,c;
  6. randomize();
  7. c=random(11);
  8. for(x=1; x<=10; x++)
  9. cout<<c<<" X "<<x<<"="<<x*c<<endl;
  10.  
  11. cin.get(); cin.get();
  12. }

Lo malo es que creo solo sirve para numeros al azar, asi que si son letras, no sirve :/


Título: Re: Intentando crear programa romper claves wifi (WEP) S.O Windows en C++
Publicado por: WiseHidden en 23 Abril 2011, 01:07 am
Buenas Camaradas!
Ante todo disculpen mi ausencia, un trabajo me mantubo ocupado mas de lo previsto, Veo que el tema se esta desviando pero llego en buen momento, Como ha dicho Rasierlunderwar deberiamos empezar por un programa que "comparase" una contraseña predeterminada en un .txt (Unas 36.000 posibilidades) y nos compare cual fue la correcta.

PD: La claves WEP suelen ser 13 caracteres en Codigo ASCII

Pero por el momento podemos crear un primer programa como boceto de menos caracteres es decir unos cuatro caracteres.

Partiendo de esta idea lo siguiente seria aumentar de 4 a 13

un saludo e id exponiendo vuestros codigos para asi ir aportando todos nuestro granito

Atentamente
WH


Título: Re: Intentando crear programa romper claves wifi (WEP) S.O Windows en C++
Publicado por: El_Java en 24 Abril 2011, 14:00 pm
Hola, he encontrado algo de tiempo para hacer el codigo para empezar.
El programa coge una contraseña que introduzcas y la compara con un archivo de texto (sirve para 13 caracteres, asi que no hay que pasar de 4 a 13 ya).

(falta colocar las tildes y ñ, pero no recuerdo como era xD)
Codigo:
Código
  1. //Código by: El_Java
  2. #include <iostream>
  3. #include <fstream>
  4. #include <string.h>
  5.  
  6. //using namespace std; para programas largos es mejor no ponerlo
  7.  
  8.  
  9. int main(){
  10.    std::ifstream txtIn;
  11.    char texto[14], clave[14];
  12.  
  13.    std::cout << "Escribe la contrasenha a comparar: " << std::endl;
  14.    std::cin.getline(clave, 14);
  15.  
  16.    txtIn.open("pass.txt");
  17.  
  18.    if (!txtIn.is_open()){
  19.        std::cout << "Error abriendo archivo, comprueba que existe el archivo" << std::endl;
  20.    }
  21.  
  22.    if (!txtIn.good()){
  23.        std::cout << "Error, no es posible leer el archivo" << std::endl;
  24.    }
  25.  
  26.    while((txtIn.eof()) == 0){ //mientras el archivo no haya llegado al final
  27.        txtIn.getline(texto, 14, '\n');
  28.        if ((strcmp(texto, clave)) == 0) break; //Si alguna contrasenha concuerda, parar el bucle while
  29.        if ((strcmp(texto, "NINGUNA")) == 0) break;
  30.    }
  31.  
  32.    if((strcmp(texto, "NINGUNA")) == 0){
  33.        std::cout << "Ninguna contrasenha valida" << std::endl;
  34.    }
  35.  
  36.    else{
  37.        std::cout << "Encontrada la contrasenha:\n";
  38.        std::cout << "texto: " << texto << std::endl;
  39.        std::cout << "clave: " << clave << std::endl;
  40.    }
  41.  
  42.    return 0;
  43. }
  44.  
  45.  

Y para que funcione el texto tiene que tener estas caracteristicas:
  • Llamarse pass.txt
  • Por cada linea tener una contraseña
  • Al final del texto terminarlo con la palabra NINGUNA
tal que quedaría asi:

pass.txt                                       pass.txt
1234567899874                         contraseña1
9876543210123                         contraseña2
7412589634157                         contraseña3
asdfghjkkasfg                               contrseña4
NINGUNA                                     final del texto


Título: Re: Intentando crear programa romper claves wifi (WEP) S.O Windows en C++
Publicado por: Danyel_Casvill en 24 Abril 2011, 20:04 pm
Hola, he encontrado algo de tiempo para hacer el codigo para empezar.
El programa coge una contraseña que introduzcas y la compara con un archivo de texto (sirve para 13 caracteres, asi que no hay que pasar de 4 a 13 ya).

(falta colocar las tildes y ñ, pero no recuerdo como era xD)
Codigo:
Código
  1. //Código by: El_Java
  2. #include <iostream>
  3. #include <fstream>
  4. #include <string.h>
  5.  
  6. //using namespace std; para programas largos es mejor no ponerlo
  7.  
  8.  
  9. int main(){
  10.    std::ifstream txtIn;
  11.    char texto[14], clave[14];
  12.  
  13.    std::cout << "Escribe la contrasenha a comparar: " << std::endl;
  14.    std::cin.getline(clave, 14);
  15.  
  16.    txtIn.open("pass.txt");
  17.  
  18.    if (!txtIn.is_open()){
  19.        std::cout << "Error abriendo archivo, comprueba que existe el archivo" << std::endl;
  20.    }
  21.  
  22.    if (!txtIn.good()){
  23.        std::cout << "Error, no es posible leer el archivo" << std::endl;
  24.    }
  25.  
  26.    while((txtIn.eof()) == 0){ //mientras el archivo no haya llegado al final
  27.        txtIn.getline(texto, 14, '\n');
  28.        if ((strcmp(texto, clave)) == 0) break; //Si alguna contrasenha concuerda, parar el bucle while
  29.        if ((strcmp(texto, "NINGUNA")) == 0) break;
  30.    }
  31.  
  32.    if((strcmp(texto, "NINGUNA")) == 0){
  33.        std::cout << "Ninguna contrasenha valida" << std::endl;
  34.    }
  35.  
  36.    else{
  37.        std::cout << "Encontrada la contrasenha:\n";
  38.        std::cout << "texto: " << texto << std::endl;
  39.        std::cout << "clave: " << clave << std::endl;
  40.    }
  41.  
  42.    return 0;
  43. }
  44.  
  45.  

Y para que funcione el texto tiene que tener estas caracteristicas:
  • Llamarse pass.txt
  • Por cada linea tener una contraseña
  • Al final del texto terminarlo con la palabra NINGUNA
tal que quedaría asi:

pass.txt                                       pass.txt
1234567899874                         contraseña1
9876543210123                         contraseña2
7412589634157                         contraseña3
asdfghjkkasfg                               contrseña4
NINGUNA                                     final del texto

 :o quedo muy bien tu código, ahora la cosa es usar las api`s de windows para poder inyectar la clave en el box de la password y probar las posibles contraseñas, aaa!! y agregar mas contraseñas claro, voy a ver si me doy un tiempo para hacerlo, saludos.


Título: Re: Intentando crear programa romper claves wifi (WEP) S.O Windows en C++
Publicado por: El_Java en 25 Abril 2011, 13:46 pm
Hola de nuevo, he estado viendo el codigo de rasielunderwar y hay un método más eficiente de hacer todas las combinaciones posibles, lo vi mientras ensallaba en las olimpiadas de españa de programación y es mediante backtracking (recursividad), os dejo el codigo:
Código
  1. #include <iostream>
  2. #include <string>
  3.  
  4. using namespace std;
  5.  
  6. void escribe (const &string s){
  7.     cout << s << endl;
  8. }
  9.  
  10. void rec (string &s, int i, int n){
  11.    escribe(s);
  12.    if (i<n){
  13.         s[i] = 'A';
  14.         rec (s, i+1, n);
  15.         s[i] = 'B';
  16.         rec (s, i+1, n);
  17.         s[i] = 'C';
  18.         rec (s, i+1, n);
  19.         s[i] = '-';
  20.    }
  21. }
  22.  
  23. int main(){
  24.       int n;
  25.       cin >> n;
  26.       string s(n, '-');
  27.       rec (s, 0, n);
  28. }
  29.  

Y la salida sería esta si por ejemplo, n = 3:
---
A--
AA-
AAA
AAB
AAC
AB-
ABA
ABB
ABC
AC-
ACA
ACB
ACC
B--
BA-
BAA
BAB
BAC
BB-
BBA
BBB
BBC
BC-
BCA
BCB
BCC
C--
CA-
CAA
CAB
CAC
CB-
CBA
CBB
CBC
CC-
CCA
CCB
CCC

Un saludo.


Título: Re: Intentando crear programa romper claves wifi (WEP) S.O Windows en C++
Publicado por: lluk en 25 Abril 2011, 13:53 pm
yo también quiero ayudar, aunque más que nada para aprender porque justo ayer me puse con el wifiway y porque creo que no se lo suficiente de c/c++ pero si necesitan algo pueden pedírmelo y lo intento

mirando el primer codigo he visto una cosa que podrias hacer para hacerlo mas corto y legible:

donde pones
Código:
std::cout << "" << std::endl;
std::cout << "" << std::endl;
std::cout << "" << std::endl;

porqué no pones
Código:
std::cout <<"\n\n\n";
? bueno no es gran cosa ni mucho menos xdd pero algo es algo jaja


Título: Re: Intentando crear programa romper claves wifi (WEP) S.O Windows en C++
Publicado por: lluk en 25 Abril 2011, 14:50 pm
perdon por el doble post pero esque me he interesado mucho por este tema ^^

dejo mi aportacion:
Código:
#include <iostream>
#include <conio.h>
#include <string.h>

using namespace std;

int main()
{
    
    
    
    char letra2[2];
    
    for(int contador=48; contador<52; contador++)
    {
                     for(int contador2=48; contador2<52;contador2++)
                     {
                                       letra2[0]=contador;
                                       letra2[1]=contador2;
                                       cout<<letra2[0]<<letra2[1]<<endl;
                     }
    }                                      
    getch();
}

este codigo coje los caracteres ascii del 48 al 51 y imprime en pantalla todas las posibles combinaciones

y así hacemos que se guarde en un archivo.txt
Código:
#include <iostream>
#include <conio.h>
#include <string.h>
#include <fstream.h>

char nombre[50];

using namespace std;

int main()
{
    system("time /t");
    ofstream archivo;
        
    char letra2[2];
    
    cout<<"Introduce el nombre del archivo: ";
    gets(nombre);
    archivo.open(nombre);
    for(int contador=48; contador<52; contador++)
    {
                     for(int contador2=48; contador2<52;contador2++)
                     {
                                       letra2[0]=contador;
                                       letra2[1]=contador2;
                                       cout<<letra2[0]<<letra2[1]<<endl;
                                       archivo<<letra2[0]<<letra2[1]<<endl;
                     }
    }            
    archivo.close();                        
    getch();
}

esto ara que se guarden todas las combinaciones (como en el programa anterior) pero esta vez en un archivo.txt
mi padre dice que es casi infinito y que se me va a colapsar el ordenador, creeis que esta en lo cierto? dice que es mejor que envez de guardarlo en el archivo.txt todos que mire cada vez si es el correcto (yo eso ya no lo se hacer) y que solo guarde el correcto es decir donde pone:
Código:
archivo<<letra2[0]<<letra2[1]<<endl;

que ponga (lo voy a decir asi mal explicado sin comprobar lo de los drivers)
Código:
si(letra2[0] hasta la 13 = contraseña del wifi)
{
         guardar la cadena letra2 en el archivo.txt
}

EDITO:

imposible entrar en una red wifi por fuerza bruta si hay 13 caracteres usando el alfabeto alfanumérico (35 caracteres) hay 1'71*10 a la 20 combinaciones distintas, eso en un archivo.txt ocupa más de 1 millón de GB no creo que tu ordenador lo tenga.
Pense en hacerlo en vez de escribirlo en un archivo.txt comprobar cada vez si la combinación esa es correcta pero así nos podríamos pasar años intentándolo.

Si alguien le interesa el código al que llegé:
Código:
#include <iostream>
#include <conio.h>
#include <string.h>
#include <fstream.h>

char nombre[50];
char letra2[13];

using namespace std;
void escribir(int c,int c2,int c3,int c4,int c5,int c6,int c7,int c8,int c9,int c10,int c11,int c12,int c13)
{
     letra2[0]=c;
     letra2[1]=c2;
     letra2[2]=c3;
     letra2[3]=c4;
     letra2[4]=c5;
     letra2[5]=c6;
     letra2[6]=c7;
     letra2[7]=c8;
     letra2[8]=c9;
     letra2[9]=c10;
     letra2[10]=c11;
     letra2[11]=c12;
     letra2[12]=c13;
     cout<<letra2[0]<<letra2[1]<<letra2[2]<<letra2[3]<<letra2[4]<<letra2[5]<<letra2[6]<<letra2[7]<<letra2[8]<<letra2[9]<<letra2[10]<<letra2[11]<<letra2[12]<<endl;
}

int main()
{
    system("time /t");
    ofstream archivo;
    int c,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13;
   
   
    cout<<"Introduce el nombre del archivo: ";
    gets(nombre);
    archivo.open(nombre);
    for(c=48;c<90;c++)
    {
                      for(c;c>=58&&c<=64;c++)
                      {}                     
    for(c2=48;c2<90;c2++)
    {
                      for(c2;c2>=58&&c2<=64;c2++)
                      {}
    for(c3=48;c3<90;c3++)
    {
                         for(c3;c3>=58&&c3<=64;c3++)
                         {}
    for(c4=48;c4<90;c4++)
    {
                         for(c4;c4>=58&&c4<=64;c4++)
                         {}
    for(c5=48;c5<90;c5++)
    {
                         for(c5;c5>=58&&c5<=64;c5++)
                         {}
    for(c6=48;c6<90;c6++)
    {
                         for(c6;c6>=58&&c6<=64;c6++)
                         {}
    for(c7=48;c7<90;c7++)
    {
                         for(c7;c7>=58&&c7<=64;c7++)
                         {}
    for(c8=48;c8<90;c8++)
    {
                         for(c8;c8>=58&&c8<=64;c8++)
                         {}
    for(c9=48;c9<90;c9++)
    {
                         for(c9;c9>=58&&c9<=64;c9++)
                         {}
    for(c10=48;c10<90;c10++)
    {
                         for(c10;c10>=58&&c10<=64;c10++)
                         {}
    for(c11=48;c11<90;c11++)
    {
                         for(c11;c11>=58&&c11<=64;c11++)
                         {}
    for(c12=48;c12<90;c12++)
    {
                         for(c12;c12>=58&&c12<=64;c12++)
                         {}
    for(c13=48;c13<90;c13++)
    {
                         for(c13;c13>=58&&c13<=64;c13++)
                         {}
            escribir(c,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13);
            archivo<<letra2[0]<<letra2[1]<<letra2[2]<<letra2[3]<<letra2[4]<<letra2[5]<<letra2[6]<<letra2[7]<<letra2[8]<<letra2[9]<<letra2[10]<<letra2[11]<<letra2[12]<<endl;
    }
    }                               
    }
    }
    }
    } 
    }
    }                               
    }
    }
    }
    }
    }           
    archivo.close();                         
    getch();
}

espero que haya servido mi código y mis consejos ;)


Título: Re: Intentando crear programa romper claves wifi (WEP) S.O Windows en C++
Publicado por: El_Java en 25 Abril 2011, 19:40 pm
lluk tu padre tiene razón, son una burrada de combinaciones y lo mejor sería mientras que las hacemos,comprobarlas, por lo que podriamos perfectamente prescindir del texto con las contraseñas preestablecidas.
Y respecto a tu código, es algo lioso, creo que sería mucho más facil crear las combinaciones con el codigo de backtracking que he puesto antes. Y siempre que puedas, prescinde de system() porque lo unico que hace es quitarle portabilidad a tu código.

Se me ha ocurrido otra forma de comprobar las contraseñas que creo que sería más eficiente que las dadas hasta ahora. Os explico:

* Pongamos que la contraseña es "Perico198", no?
* Pues consistiría en algo parecido a lo de las peliculas americanas de robo de bancos.
* Hariamos una función para ver si un caracter coincide con el de la lista ASCII (sencillo)
* Al encontrarlo, guardar el caracter y buscar el siguiente caracter (tambien sencillo)
* El funcionamiento sería:
Contraseña:
Perico198   //comienza el programa...
Perico198   //encuentra el primer caracter "P" y lo fija
Perico   //encuentra el segundo caracter "e" y lo fija
Perico198   // etc etc etc etc
Perico198   //Voilá! Contraseña encontrada y lista para guardar :D

¿Qué me decis? Parece mejor que buscar una por una, opinad y hacemos asi.
En cuanto pueda hago el código, en dos días o así, ahora mismo estoy con un programa que me tiene bastante absorbido...  ;)


Título: Re: Intentando crear programa romper claves wifi (WEP) S.O Windows en C++
Publicado por: lluk en 26 Abril 2011, 00:25 am
eso me parece muy buena idea
pensando en el codigo alfanumerico (35 caracteres)
solo tiene que comprobar la posicion 1 de la clave 35 veces (o tantas asta que coincidan)
y asi asta 13
ok me parece buena idea ^^


Título: Re: Intentando crear programa romper claves wifi (WEP) S.O Windows en C++
Publicado por: <<<-Basura->>> en 26 Abril 2011, 04:56 am
pues es mala idea, puesto que no funciona xq??

pues cuando tu programa comiensa a buscar una letra. digamos "Perico198" y el programa inserta la letra "p" y q devuelve, simplemente un error*.

no te va a decir .... bien la primer letra es "p" fijala y sige intentando...


Título: Re: Intentando crear programa romper claves wifi (WEP) S.O Windows en C++
Publicado por: El_Java en 26 Abril 2011, 12:54 pm
Underwar lleva razón... no habia pensado en eso, gracias por la correccion xD
Pues nada, toca hacerlo con el metodo largo


Título: Re: Intentando crear programa romper claves wifi (WEP) S.O Windows en C++
Publicado por: Crash_RPM en 26 Abril 2011, 13:11 pm
hola buenas, yo he estudiado el modulo de administracion de sistemas informaticos, y de C.

Me esta interesando el tema asique me teneis para lo que pueda ayudar y si no puedo ayudar por lo menos ir aprendiendo. Asique si estais contactando por correo, mp.. o lo que sea avisadme please.


Título: Re: Intentando crear programa romper claves wifi (WEP) S.O Windows en C++
Publicado por: WiseHidden en 26 Abril 2011, 14:04 pm
Muy buenas Camaradas.

Ante todo dar la bienvenida a todos los que se estan interesando por dicho proyecto.

Rasielunderwar, lluk, El-Java, DanyHack, Xafi y Crash_RPM. Veo que ninguno somos expertos en el lenguaje C/C++ Pero veo que todos estamos aportando todo cuanto sabemos y mas, y esta es la mejor manera de aprender, unirse y hacer un programa tan interesante.

Todos estan aportando sus ideas, sus conocimientos y esfuerzo a hacer posible este proyecto.

Analizemos pues todo cuanto tenemos para ir englobando el codigo y asi ir haciendo mejores y aportes.

El-Java a creado un codigo que compara un texto que "Introducimos" y lo compara con un archivo de texto.

Citar
//Código by: El_Java
#include <iostream>
#include <fstream>
#include <string.h>
 
//using namespace std; para programas largos es mejor no ponerlo
 
 
int main(){
    std::ifstream txtIn;
    char texto[14], clave[14];
 
    std::cout << "Escribe la contrasenha a comparar: " << std::endl;
    std::cin.getline(clave, 14);
 
    txtIn.open("pass.txt");
 
    if (!txtIn.is_open()){
        std::cout << "Error abriendo archivo, comprueba que existe el archivo" << std::endl;
    }
 
    if (!txtIn.good()){
        std::cout << "Error, no es posible leer el archivo" << std::endl;
    }
 
    while((txtIn.eof()) == 0){ //mientras el archivo no haya llegado al final
        txtIn.getline(texto, 14, '\n');
        if ((strcmp(texto, clave)) == 0) break; //Si alguna contrasenha concuerda, parar el bucle while
        if ((strcmp(texto, "NINGUNA")) == 0) break;
    }
 
    if((strcmp(texto, "NINGUNA")) == 0){
        std::cout << "Ninguna contrasenha valida" << std::endl;
    }
 
    else{
        std::cout << "Encontrada la contrasenha:\n";
        std::cout << "texto: " << texto << std::endl;
        std::cout << "clave: " << clave << std::endl;
    }
 
    return 0;
}
 
 


Y para que funcione el texto tiene que tener estas caracteristicas:

    Llamarse pass.txt
    Por cada linea tener una contraseña
    Al final del texto terminarlo con la palabra NINGUNA

tal que quedaría asi:

pass.txt                                       pass.txt
1234567899874                         contraseña1
9876543210123                         contraseña2
7412589634157                         contraseña3
asdfghjkkasfg                               contrseña4
NINGUNA                                     final del texto

Es una buena base de partida pero existen varios interrogantes.
1º Partiendo de este punto se podria crear un Generador que cree ala inversa de un archivo de texto a una impresion ala pantalla. Por ejemplo.

La contraseña que buscamos es Perico123 y en nuestro archivo de texto (Que lo llamaremos Diccionario) tenemos las siguientes contraseñas

Perico000
Perico001
Perico.........  Perico999

Si la contraseña es perico123 en la "Comparativa 123 encontraremos la clave" Es decir un ataque por diccionario.

2º Otro problema y este creo es el que mas me esta dando quebraderos de cabeza es..... Nosotros estamos creando un programa para sacar un clave x pero esa clave x la estamos introduciendo nosotros, el problema esta en "Como hacemos para realizar la comparativa con una clave de un router cualquiera" Segun mi logica eso debe de tener un algoritmo segun el tipo de cifrado que lleve, la cuestion es realizar comparativas con diccionarios compatibles para cada tipo de cifrado.

Luego en el siguiente aporte hablas sobre la recursividad, la verdad que creo que adopta mejor las funciones que andamos buscando, aunque que buscar la forma en que haga la comparativa y nos de el true y el false.

Lluk tb ha hecho su aporte, pero como bien dice su padre las combinaciones son infinitas y aparte de "Petar el disco duro" el proceso de la cpu seria muy alto y trabajoso, aunque ese codigo se podria aprovechar ciertos comandos tb para crear algunos diccionarios aunque seria recomendable buscar otro metodo para generarlos.

El-java aportó de nuevo una idea muy buena, auqnue como dice raiserlaunderwar no es recomendable pues no te va ir dando positivos en cada LETRA que encuentre, aunque me a inspirado para otro futuro proyecto relacionado con ataques por fuerza bruta aunque a menos escala.

Y Crash-RPM agradecer su oferta de colaborar con nosotros pues siempre se es bienvenido.

Bueno englobando todo lo dicho aqui tenemos mas o menos una ideal general de lo que estamos buscando.
Veo importante de que todos hagamos aportes, pero seria mas eficaz seleccionar el programa por partes.

Partes esenciales del programa.

- Diseño de menu. (El esqueleto principal del programa) Donde el usuario podra seleccionar distintas opciones de menu, como generar un diccionario, realizar un ataque, e incluso una opcion de ayuda para entender el programa.

- Generador de Diccionario (Una pieza fundamental para la realizacion del programa)

- Diccionarios (Debes tener varios diccionarios para realizar el ataque) Podriamos hacerlo en un archivo de texto *.txt

- Y por ultimo englobar y "encajar" todos los codigos para que no de ningun error.

PD: Bueno disculparme por la hora de charla que aqui me e pegado, pero es importante ir canalizando y generalizando todos los aportes pues si no nunca se podra hacer nada.

PD: El tema de los puntos vitales del programa (Diseño,Generador de diccionario, ect....) Puede ser repartido por todos, para que cada uno se valla centrando en varios aspectos del programa.

Tal como yo lo veo, y que conste que esto es un decir, pues cada uno puede y hara porsupuesto lo que vea mas conveniente a sus conociemientos y esfuerzo, al fin y al cabo todos podemos ir aportando, colaborando, quitando y poniendo en todos y cada uno de los puntos principales del programa.

Yo lo estableceria del siguiente modo, segun e ido viendo de cada uno de vosotros.

WiseHidden y Danyhack: Diseño
Lluk y Xafi: Diccionarios
Rasielunderwar y El-Java: De los generadores de diccionario

y Crash_RPM: Ya ira aportando segun el vea donde puede ayudar

Como lo veis?? Lo dicho aunque yo sea el promotor del proyecto, no tengo ni mas derechos, ni mas votos que cualquiera de ustedes, pueden sugerir, contrariar y aprobar todo o parte de lo que e dicho, siempre y cuando sea con educacion jajajajaja

Bueno un enorme saludo a todos

Atentamente
Vuestro fiel camarada

WiseHidden



Título: Re: Intentando crear programa romper claves wifi (WEP) S.O Windows en C++
Publicado por: lluk en 26 Abril 2011, 14:21 pm
ook todo bien
aunque piensa que los diccionarios no se como los vamos ha hacer porque normalmente las claves wifi tienen 13 dígitos así que en los diccionarios tendrá que haber combinaciones de 13 dígitos alfanuméricos.

Alguna idea para empezar a eliminar combinaciones?

me he fijado y mi clave del wifi los 2 primeros números son aleatorios pero los demás son la mac del router, haber si esto sirve :S


Título: Re: Intentando crear programa romper claves wifi (WEP) S.O Windows en C++
Publicado por: El_Java en 26 Abril 2011, 15:05 pm
Despues de leer la Biblia... xD (aunque ha sido interesante)
Creo que tienes razón, en varios puntos:
1. Aquí todos pintamos lo mismo.
2. Debemos organizarnos entre todos lo mejor posible.
3. Hay varias formas de hacer lo mismo, como los dos códigos para crear contraseñas (backtracking y el codigo de lluk), y aunque me cuesta ceder, creo que deberiamos ponernos todos de acuerdo mediante votaciones o siguiendo algunos parametros para elegir el mejor.

Y por mi parte he de decir que debemos de salirnos de aqui xD Más que nada, porque esto es un foro para dudas y cosas así y creo que nos estamos excedediendo. Yo hace unos días que me he registrado en google code para subir proyectos, y si quereis creo yo el proyecto (decidme nombre) y os agrego a todos a él. Además, deberiamos agregarnos mediante un canal de mensajeria instantanea (msn, IRC, googletalk...) y así comunicarnos mejor. ¿Qué me decis?

En cuanto al proyecto, creo que podemos rebajar la busqueda de la contraseña si sabemos sacarle provecho al numero MAC de cada dispositivo, también decir que lo ideal sería que las primeras contraseñas que buscase fueran las predeterminadas (admin, 1234, admin1234, y por el estilo).

Decidme si estais de acuerdo y me pongo manos a la obra en lo de crear el proyecto ;)


Título: Re: Intentando crear programa romper claves wifi (WEP) S.O Windows en C++
Publicado por: WiseHidden en 26 Abril 2011, 15:57 pm
Yo estoy de acuerdo, lo mejor sera seguir el proyecto en Google Code pues como dice El-Java esto es un foro para resolver dudas y aportas conocimientos no para reunirnos a hacer un programa. Lo que si podemos hacer es dejar este post abierto por si tenemos alguna duda y algun miembro del foroo puede resolverla.

El nombre del proyecto en un principio lo llamé wifi_hi es un nombre bastante apropiado, hi de la abreviatura Hidden que significa oculto/os pero es un proyecto comun asi que si quereis aportar un nombre soy todo oidos, aunque el nombre creo que al fin y al cabo es lo ultimo que se debe pensar, pero para crear y guardar un proyecto es preferible tener un nombre asi que exponed sugerencias, y El-Java por mi parte puedes crear el proyecto de inmediato y agregarnos todos a el.

Un saludoo

PD: Lo de comunicarnos atraves de un irc o algun comunicador de mensajeria instantaneo me parece una idea notable

ATT
WH


Título: Re: Intentando crear programa romper claves wifi (WEP) S.O Windows en C++
Publicado por: El_Java en 26 Abril 2011, 16:27 pm
De acuerdo entonces, ya está hecho el proyecto http://code.google.com/p/wifi-hi/ (http://code.google.com/p/wifi-hi/).
En cuanto al proyecto, podemos agregarnos todos como Owners (podemos todos hacer cambios en el proyecto) o uno como Owner y los otros como Commiter (puede trabajar en el proyecto, pero no reconfigurarlo). Si vamos ha hacerlo democraticamente lo más logico me parece lo segundo, pero vosotros direis xD

Pd. Mandadme un mp a mi perfil con vuestra cuenta de gmail y os agrego al proyecto :)


Título: Re: Intentando crear programa romper claves wifi (WEP) S.O Windows en C++
Publicado por: WiseHidden en 26 Abril 2011, 16:42 pm
Lo mas adecuado es que haya un solo Owner y los demas seamos Commiter, El-Java (Apartir de ahora si no te importa te dire EJ que es mas corto) jaja ya que te has tomado la molestia de crear el proyecto en Google code, por mi parte tu puedes ser el owner, siempre y cuando todos esten de acuerdo, el hecho de que 6 o mas integrantes puedan modificar y alterar el codigo puede ser una catastrofe.

Pero es cosa de ver los pro y los contra y decidir si se dan los mismos privilegios a todas las cuentas o solo a una (Y esta debes estar siempre al dia) para no retrasar e intorpezer el proyecto.

PD: EJ serias tan amable, de encontrar un irc personal para nosotros?? asi hablamos mas directo y ameno que por aqui.

ATT
WH


Título: Re: Intentando crear programa romper claves wifi (WEP) S.O Windows en C++
Publicado por: El_Java en 26 Abril 2011, 17:16 pm
Ya está creado el proyecto en google code y el chat IRC

Lo he llamado #wifi-hi y está conectado a la red Freenode.

Si no sabeis conectaros os lo explico:
- Primero, tener instalado un programa para poder usar el canal IRC (recomienda la extensión de Firefox "Chatzilla" o el progrtama XChat para ubuntu).
- En la barra donde escribir poned "/server Freenode" asi os conectais a Freenode
- Luego escribid "/join #wifi-hi" y os conectareis a mi canal

Espero que no haya problemas, es la primera vez que registro un canal IRC :P


Título: Re: Intentando crear programa romper claves wifi (WEP) S.O Windows en C++
Publicado por: lluk en 26 Abril 2011, 18:03 pm
yo estoy de acuerdo, si no sirve mi código pues no sirve xd pude que algún día me sirva para algo a mi o a cualquier persona del foro

ahora hago lo del irc ;)


Título: Re: Intentando crear programa romper claves wifi (WEP) S.O Windows en C++
Publicado por: archprog en 28 Abril 2011, 20:31 pm
Me gusta la idea, me apunto!! yo por ahora he escrito este programa http://wificripter.blogspot.com/ (http://wificripter.blogspot.com/) si a alguien le interesa le puedo pasar el código fuente, esta en c++. Me gustaria mejorarlo, o escribir algo de cero.

Saludos!!


Título: Re: Intentando crear programa romper claves wifi (WEP) S.O Windows en C++
Publicado por: lluk en 29 Abril 2011, 16:08 pm
a mi me gustaría verlo o que al menos me explicases un poco el algoritmo


Título: Re: Intentando crear programa romper claves wifi (WEP) S.O Windows en C++
Publicado por: 79137913 en 29 Abril 2011, 20:17 pm
HOLA!!!

No lo se algo se puede ocurrir.. talvez mandandole un correo a una persona X de la casa de la victima a la que tu conoscas.. como ahora es muy comun el facebook podrias agregarlo a amigos y despues convenserlo que se meta en pagina X... mm muchas formas jeje pero la verdad esas ya estan muy quemadas  lol

Mirate este programa (no es muy rapido, pero funciona) Ojo, que un diccionario de 6 a 8 caracteres con letras minusculas solamente ocupa un GB aprox

http://foro.elhacker.net/programacion_visual_basic/source_brute_force_dictionary_creator_7913_lento-t325748.0.html;msg1607336#msg1607336

GRACIAS POR LEER!!!


Título: Re: Intentando crear programa romper claves wifi (WEP) S.O Windows en C++
Publicado por: archprog en 29 Abril 2011, 22:22 pm
Programas de este tipo deben estar en c/c++ o algun lenguaje de ese nivel, ya que se necesita velocidad


Título: Re: Intentando crear programa romper claves wifi (WEP) S.O Windows en C++
Publicado por: Danyel_Casvill en 1 Mayo 2011, 20:42 pm
Hola nuevamente.

No se si ya lo sabian pero me acorde de la funcion para leer los "caracteres especiales" de una mejor forma con cin.peek(); un ejemplo:

Código
  1. #include <iostream>
  2. int main () {
  3.  char c;
  4.  int n;
  5.  char str[256];
  6.  
  7.  cout << "Enter a number or a word: ";
  8.  c=cin.peek();
  9.  
  10.  if ( (c >= '0') && (c <= '9') )
  11.  {
  12.    cin >> n;
  13.    cout << "You have entered number " << n << endl;
  14.  }
  15.  else
  16.  {
  17.    cin >> str;
  18.    cout << " You have entered word " << str << endl;
  19.  }
  20.  cin.get(); cin.get();
  21.  return 0;
  22. }

aqui lo vi la primera vez:
http://www.cplusplus.com/reference/iostream/istream/peek/

PD: expliquenme como usar http://code.google.com/p/wifi-hi/ por que yo la verdad, jmm ni idea xD


Título: Re: Intentando crear programa romper claves wifi (WEP) S.O Windows en C++
Publicado por: archprog en 1 Mayo 2011, 20:58 pm
aver, como quereis empezar, crear diccionarios a un archivo, o generarlos y almacenarlos en algun tipo de dato del programa tipo string a vector? yo con mi programa wificripter creo diccionarios al archivo de esta forma:

Código:
if(Conbinaciones==8){
for(int i=0; i<cantidadCaracteres; i++) {
    for(int j=0; j<cantidadCaracteres; j++) {
        for(int k=0; k<cantidadCaracteres; k++) {
            for(int l=0; l<cantidadCaracteres; l++) {
                for(int m=0; m<cantidadCaracteres; m++) {
                    for(int n=0; n<cantidadCaracteres; n++) {
                        for(int o=0; o<cantidadCaracteres; o++) {
                            for(int p=0; p<cantidadCaracteres; p++) {
        fprintf(fichero,"%c%c%c%c%c%c%c%c\n",caracteresElegidos[i],caracteresElegidos[j],caracteresElegidos[k],caracteresElegidos[l],caracteresElegidos[m],caracteresElegidos[n],caracteresElegidos[o],caracteresElegidos[p]);



            }
                }
                    }
            }
}
}
}
}
}
}


Título: Re: Intentando crear programa romper claves wifi (WEP) S.O Windows en C++
Publicado por: archprog en 1 Mayo 2011, 21:02 pm
aver, como quereis empezar, crear diccionarios a un archivo, o generarlos y almacenarlos en algun tipo de dato del programa tipo string a vector? yo con mi programa wificripter creo diccionarios al archivo de esta forma:

Código:
if(Conbinaciones==8){
for(int i=0; i<cantidadCaracteres; i++) {
    for(int j=0; j<cantidadCaracteres; j++) {
        for(int k=0; k<cantidadCaracteres; k++) {
            for(int l=0; l<cantidadCaracteres; l++) {
                for(int m=0; m<cantidadCaracteres; m++) {
                    for(int n=0; n<cantidadCaracteres; n++) {
                        for(int o=0; o<cantidadCaracteres; o++) {
                            for(int p=0; p<cantidadCaracteres; p++) {
        fprintf(fichero,"%c%c%c%c%c%c%c%c\n",caracteresElegidos[i],caracteresElegidos[j],caracteresElegidos[k],caracteresElegidos[l],caracteresElegidos[m],caracteresElegidos[n],caracteresElegidos[o],caracteresElegidos[p]);

}
}
}
}
}
}
}
}
}

donde caracteresElegidos son cualquiera que eliga el usuario como por ejempllo:

Código:
numerosletrasLETRAS[ ]="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ*";

todo esto declarando las correspondientes variables:
Código:
FILE *fichero;
    fichero=fopen(nombre, "w");
.....
.......


Título: Re: Intentando crear programa romper claves wifi (WEP) S.O Windows en C++
Publicado por: El_Java en 1 Mayo 2011, 22:12 pm
danyhack, explicame bien que es lo que hace ese algoritmo porque ahora mismo no caigo.. :S

Lo de http://code.google.com/p/wifi-hi/ (http://code.google.com/p/wifi-hi/) te explico como va, eso es solo una ruta donde "almacenar" el programa (descripciones, descargas, subir código, hacer una wiki, subir screenshots del programa...).
Para modificar el source del programa se hace como siempre se ha hecho, y para subirlo (creo que solo puedo yo, porque quedamos en que me encargaria de eso) hay que hacer uso del subversion o svn.

Una miniguia de como usar SVN http://lihuen.linti.unlp.edu.ar/index.php/C%C3%B3mo_usar_SVN (http://lihuen.linti.unlp.edu.ar/index.php/C%C3%B3mo_usar_SVN)

Lo mejor sería que propusieramos hora y dia para quedar y hablamos por el canal IRC ;)


Título: Re: Intentando crear programa romper claves wifi (WEP) S.O Windows en C++
Publicado por: Danyel_Casvill en 1 Mayo 2011, 22:22 pm

Lo mejor sería que propusieramos hora y dia para quedar y hablamos por el canal IRC ;)

Ok si me parece buenisima idea poner hora, deberiamos avisarle a wisehidden que el es como el que organiza todo aunque obviamente con hora que todos podamos y, el codigo, basicamente lo que hace es ver si se introdujo una letra o un caracter cualquier pero bueno, luego te lo explico bien ;) (que me voy pa un toke yeahh!! :xD)

Saludos, bye ^^


Título: Re: Intentando crear programa romper claves wifi (WEP) S.O Windows en C++
Publicado por: <<<-Basura->>> en 1 Mayo 2011, 22:30 pm
Creo q el codigo de archprog es muy util


Título: Re: Intentando crear programa romper claves wifi (WEP) S.O Windows en C++
Publicado por: archprog en 1 Mayo 2011, 22:53 pm
El_java añade mi cuenta a la pagina del proyecto y a todos los que falten. La manera de gestionar la cuenta en principio me parece razonable que solo uno tenga el control total, conforme avance el proyecto si es posible, se podrían añadir más cuantas con control total, ¿Se podría?. No conozco exactamente como funcionan los proyectos en googlecode. Para empezar a programar algo con sentido deberiamos saber por donde empezar, asignandonos tareas a cada uno, ¿No? y por supuesto hasta donde llegar, en un principio. Me he conectado al IRC y esta vacio jaja. Pero bien, el canal funciona.


Título: Re: Intentando crear programa romper claves wifi (WEP) S.O Windows en C++
Publicado por: Danyel_Casvill en 5 Junio 2011, 17:15 pm
Aqui va el código
Eeemm perdon por abrir nuevamente, pero... para el uso de system(); no se necesita la librería stdlib?


Título: Re: Intentando crear programa romper claves wifi (WEP) S.O Windows en C++
Publicado por: El_Java en 5 Junio 2011, 19:36 pm
Si que es necesario, cada vez que se haga system ahi que incluir la libreria stdlib.h


Título: Re: Intentando crear programa romper claves wifi (WEP) S.O Windows en C++
Publicado por: Danyel_Casvill en 7 Junio 2011, 00:21 am
Si que es necesario, cada vez que se haga system ahi que incluir la libreria stdlib.h
Aaa sii, bueno lo decia por el primer "Código boceto" de WH.


Título: Re: Intentando crear programa romper claves wifi (WEP) S.O Windows en C++
Publicado por: WiseHidden en 12 Junio 2011, 17:45 pm
Hola a todos camaradas.

Viendo que todos estamos haciendo nuestros progresos y demas, propongo a que nos reunamos el jueves en el IRC para agilizar y establecer el cometido de cada uno, y asi presentarnos y conocernos un poco.

Que os parece el Jueves alas 22:00h (España)

He puesto esta fecha pero estoy abierto totalmente a otra, por mi parte no hay ningun problema
exponer que hora os vendria mejor, y si es posible llegar a un dia y una hora comun

un saludoooo a todos

 atentamente

WiseHidden


Título: Re: Intentando crear programa romper claves wifi (WEP) S.O Windows en C++
Publicado por: fantasma306 en 12 Junio 2011, 19:30 pm
Hola, me alegra ver que esto siguen en pie jajaja

weno como ya comente a WiseHidden este es mi pequeño codigo para generar diccionarios con palabras de tamaño variado.

Código
  1. /** by fantasma306 **/
  2. #include <fstream>
  3. #include <string>
  4. #include <math.h>
  5. using namespace std;
  6. void genDico(ostream& archivo,const char *cadena, double lengthCadena, double maxLetras);
  7. int main(){
  8. /*Esto se puede cambiar*/
  9. string chars="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
  10. int numLetrasPass=3;/*numero de letras que tienen las contraseñas generadas, solo modificar el numero*/
  11.  
  12. ofstream archivo("dico.txt");
  13. genDico(archivo, chars.c_str(), chars.size(), numLetrasPass);
  14. archivo.close();
  15.    return 0;
  16. }
  17. void genDico(ostream& archivo, const char *cadena, double lengthCadena, double maxLetras){
  18. /*18446744073709551615 es el numero maximo que se puede guardar en un "unsigned long long"*/
  19. if(18446744073709551615>pow(lengthCadena,maxLetras)-1){
  20. unsigned long long maxCont=pow(lengthCadena,maxLetras)-1;
  21. for(unsigned long long cont=0;cont<=maxCont; cont++){
  22. for(register int i=maxLetras-1; i>=1; i--) {
  23. unsigned long long pos=cont / pow(lengthCadena,i);
  24. if(pos>=lengthCadena)
  25. pos=pos % int(lengthCadena);
  26. archivo<<cadena[pos];
  27. }
  28. archivo<<cadena[cont % int(lengthCadena)]<<endl;
  29. }
  30. }
  31. }


Título: Re: Intentando crear programa romper claves wifi (WEP) S.O Windows en C++
Publicado por: Danyel_Casvill en 13 Junio 2011, 16:26 pm
Hola a todos camaradas.

Viendo que todos estamos haciendo nuestros progresos y demas, propongo a que nos reunamos el jueves en el IRC para agilizar y establecer el cometido de cada uno, y asi presentarnos y conocernos un poco.

Que os parece el Jueves alas 22:00h (España)

He puesto esta fecha pero estoy abierto totalmente a otra, por mi parte no hay ningun problema
exponer que hora os vendria mejor, y si es posible llegar a un dia y una hora comun

un saludoooo a todos

 atentamente

WiseHidden
Hola!!  Eeemm, el jueves podría ser, pero ¿Porqué tan tarde? no podría ser mas o menos a las 16:00 (Colombia) o algo asi?

Y eso que depronto la próccima semana no pueda pero igual haré lo posible, me estan avisando si algo.


Título: Re: Intentando crear programa romper claves wifi (WEP) S.O Windows en C++
Publicado por: fantasma306 en 13 Junio 2011, 16:32 pm
22:00 ( España ) = 16:00 ( Colombia )  :P


Título: Re: Intentando crear programa romper claves wifi (WEP) S.O Windows en C++
Publicado por: Danyel_Casvill en 13 Junio 2011, 17:07 pm
22:00 ( España ) = 16:00 ( Colombia )  :P
O.O jaja ok


Título: Re: Intentando crear programa romper claves wifi (WEP) S.O Windows en C++
Publicado por: WiseHidden en 13 Junio 2011, 18:21 pm
Me parecio adecuada esa hora pues en españa las 22.00 seria una hora prudente y que todos tenemos la facilidad de conectarnos y en paises como colombia, ecuador, argentina........ Seria mas o menos la hora entre el medio dia y la siesta que es otra hora que es aceptable y posible para conectarse, si no veis ningun inconveniente este jueves alas 22.00h (Hora de españa) nos conectaremos todos al irc (Yo me conectare sobre las 22.15) pues es lo que tardo del trabajo ala casa :D

Un cordial saludo

PD: Cualquier duda o consulta o cambio exponganlo por aqui para que todos esten al tanto.

Un saludoooo

Atentamente
WiseHidden


Título: Re: Intentando crear programa romper claves wifi (WEP) S.O Windows en C++
Publicado por: <<<-Basura->>> en 14 Junio 2011, 05:05 am
mejore el codigo un monton, ya que el primero que presente fue muy largo he ineficiente, este codigo genera contaseñas que tengan a,b,c, como ya tengo tiempillo libre seguire haciendo lo demas que es sacarlo a un fichero, mirenlon.

Código
  1. #include <stdio.h>
  2. #define Let_A 97
  3. #define Let_B 98
  4. #define Let_C 99
  5. void letras( int i , int j , int k );
  6.  
  7. int main(){    
  8.    for(int i = 1 ; i <= 3 ; i++ )
  9.            for(int j = 1 ; j <= 3 ; j++ )
  10.                    for(int k = 1 ; k <= 3 ; k++ )
  11.                            letras(i,j,k);
  12.                            //printf("%d%d%d \n",i,j,k);
  13.    printf("Pausa...");
  14.    getchar();
  15.    return 0;    
  16. }
  17. void letras( int i , int j , int k ){    
  18.     printf("%c%c%c \n", i==1 ? Let_A : i==2 ? Let_B : Let_C,
  19.                         j==1 ? Let_A : j==2 ? Let_B : Let_C,
  20.                         k==1 ? Let_A : k==2 ? Let_B : Let_C
  21.                         );          
  22. }

Esta corto y bastante entendible diría yo, espero que lo analicen y opinen


Título: Re: Intentando crear programa romper claves wifi (WEP) S.O Windows en C++
Publicado por: Danyel_Casvill en 14 Junio 2011, 05:19 am
Hola!!

Eemm estuve pensandolo, y, podríamos hacer lo siguiente; como se supone que el programa debe inyectar las posibles contraseñas, podríamos ir haciendo algo más censillo para ir practicando, o pensandolo a menor escala para luego ir subiendo.
Hacer 2 programas, uno que pida la contraseña (gato5 o cualquiera), y el otro programa debe inyectarle las posibles contraseñas hasta encontrar la correcta.

¿Estan de acuerdo?
¿Como lo harian?

Saludos

Pd: XxX--Underwar--xXx me gusto el código aunque creo se podrían hacer algunas modificaciones (En C++ es preferible no usar define), pero creo po ahí puede ir la cosa.


Título: Re: Intentando crear programa romper claves wifi (WEP) S.O Windows en C++
Publicado por: <<<-Basura->>> en 14 Junio 2011, 07:56 am
Yo la verdad no se como inyectar las contraseñas, el que sabe podría decirlo para aprender  :silbar:


Título: Re: Intentando crear programa romper claves wifi (WEP) S.O Windows en C++
Publicado por: fantasma306 en 14 Junio 2011, 11:23 am
mejore el codigo un monton, ya que el primero que presente fue muy largo he ineficiente, este codigo genera contaseñas que tengan a,b,c, como ya tengo tiempillo libre seguire haciendo lo demas que es sacarlo a un fichero, mirenlon.

Código
  1. #include <stdio.h>
  2. #define Let_A 97
  3. #define Let_B 98
  4. #define Let_C 99
  5. void letras( int i , int j , int k );
  6.  
  7. int main(){    
  8.    for(int i = 1 ; i <= 3 ; i++ )
  9.            for(int j = 1 ; j <= 3 ; j++ )
  10.                    for(int k = 1 ; k <= 3 ; k++ )
  11.                            letras(i,j,k);
  12.                            //printf("%d%d%d \n",i,j,k);
  13.    printf("Pausa...");
  14.    getchar();
  15.    return 0;    
  16. }
  17. void letras( int i , int j , int k ){    
  18.     printf("%c%c%c \n", i==1 ? Let_A : i==2 ? Let_B : Let_C,
  19.                         j==1 ? Let_A : j==2 ? Let_B : Let_C,
  20.                         k==1 ? Let_A : k==2 ? Let_B : Let_C
  21.                         );          
  22. }

Esta corto y bastante entendible diría yo, espero que lo analicen y opinen


pero ese codigo solo sirve para palabras de 3 letras, si se quiere mas letras hay que modificar mucho el codigo, añadir bucles etc..., el codigo que propuse mas arriba,
con tan solo modificar esta linea
Código
  1. int numLetrasPass=3;
es suficiente, incluso se puede pedir al usuario el numero de letras que quiere, para no estar compilando el codigo todo el tiempo,

si no entienden muy bien como funciona el codigo os lo puedo explicar.


Para la inyeccion:
Corríjanme si me equivoco!, pero no seria mas facil programar socket's para enviar paquetes con las contraseñas, y escuchar las paquetes recibidos, para saber si la contraseña es valida.??



Título: Re: Intentando crear programa romper claves wifi (WEP) S.O Windows en C++
Publicado por: WiseHidden en 14 Junio 2011, 11:31 am
Todos estamos igual Undewar, ninguno sabemos con certeza como "funciona" exactamente el sistema de injeccion de contraseñas, pero voy viendo el aporte que estamos haciendo todos y la verdad que ya esta cogiendo forma y color.

Yo deduzco (y solo es una deduccion pues podria comerte un enorme error) que el programa consta de varias parte.

- GENERADOR DE DICCIONARIO

* A mi Manera hay dos modos de hacerlo.

1º Generando automáticamente el diccionario
     Ventajas: No necesitaria *.txt para compararlo pues lo generaria automáticamente
     Desventajas: El proceso "chuparia y relentizaria" muchisimo la CPU ademas que el tiempo que conllevaria el solo generarlo

Código Basico de Ejemplo:
Citar
//By WiseHidden
// Ejemplo de Generador de Diccionario Para Proyecto WifiHi

#include <fstream.h>

int main()
{
    ofstream archivo("Diccionario.txt");

    for(char letra='A'; letra <='Z'; letra++)
    archivo << letra;
    archivo.close();

    return 0;
}

Como ven, crearia un diccionario en un archivo *.txt (Es un ejemplo básico)
O tambien podria reprensentarse con el código de XxX--Underwar--xXx

Citar
#include <stdio.h>
#define Let_A 97
#define Let_B 98
#define Let_C 99
void letras( int i , int j , int k );
 
int main(){    
    for(int i = 1 ; i <= 3 ; i++ )
            for(int j = 1 ; j <= 3 ; j++ )
                    for(int k = 1 ; k <= 3 ; k++ )
                            letras(i,j,k);
                            //printf("%d%d%d \n",i,j,k);
    printf("Pausa...");
    getchar();
    return 0;    
}
void letras( int i , int j , int k ){    
     printf("%c%c%c \n", i==1 ? Let_A : i==2 ? Let_B : Let_C,
                         j==1 ? Let_A : j==2 ? Let_B : Let_C,
                         k==1 ? Let_A : k==2 ? Let_B : Let_C
                         );          
}

o incluso exponer el código de Fantasma306 (Generador de diccionarios con palabras de tamaño variado) que para mi personalmente y a mi entender seria el más completo, retocando un (Pelín el código) <NO EXPONGO EL CODIGO> Por la longitud del post  :P

2º La segunda opción creo que es la más acertada pues sus ventajas son mayores que la primera.
Solo se necesitaria de diccionario en archivos de texto (.txt) para leerlos, los diccionarios ya vendrian realizados, y lo bueno que podrian utilizarse varios (En varios idiomas) o (Distintas encriptaciones) <<Tendriamos que estudiar como el usuario, "crea" un diccionario X y "se selecciona los nuestros" tiene que haber alguna funcion que trate de esto!!!



Ejemplo de Lectura de diccionario desde un archivo .txt

Citar
// By WH
// Leer un archivo de texto
#include <iostream>
#include <fstream>
#include <string>
using namespace std;

int main () {
  string linea;
  ifstream MiArchivo ("Diccionario.txt"); //en este caso los diccionarios que tengamos guardado, y en caso de y en algun módulo direccionarlo
  if (MiArchivo.is_open())
  {
    //Mientras que no sea fin de archivo
    while (! MiArchivo.eof() )
    {
      getline (MiArchivo,line);
      cout << linea << endl;
    }
    MiArchivo.close();
  }
  else cout << "No se pudo abrir el archivo.";
  return 0;
}
 
 

Este programa no necesita mucha explicacion, lee un archivo de texto (en este caso diccionario.txt)

Bien esta es la parte facil del Proyecto - Generar/Leer Diccionarios

El problema empieza en Comparar/Injectar/Certificar y Autentificar de que entre todas las probabilidades que tengan nuestros diccionarios una de ellas sea la "verdadera" y nos diga "CONTRASEÑA ENCONTRADA xxxxxxxxxx"

yo creo que se base en el siguiente principio

Citar
//by WiseHidden

#include <stdio.h>

int compara(float a, float b){
   if (a==b) return 0;   
   if (a>b)  return 1;
   if (a<b)  return 2;
}

int main ()
{
   float n1, n2;      /*Los dos números a comparar*/
   printf("nIntroduce el primer número: ");
   scanf("%f", &n1);
   printf("nIntroduce el segundo número: ");
   scanf("%f", &n2);
   switch (compara(n1, n2))
   {
      case 0:   printf("nLos números %f y %f son iguales", n1, n2); break;
      case 1: printf("n%f es mayor que %f", n1, n2); break;
      case 2: printf("n%f es menor que %f", n1, n2); break;
   }
   return 0;
}
pero en vez de establecer si dos numeros son <,= o > tendriamos que ver como comparar si x = x Es un principio matemático muy simple, solo que tenemos que realizarlo en código.

bueno no se porque siempre me enrrollo tanto en mis respuestas :P pero es para hacernos una idea generalizada del proyecto, de ahi a que se celebre una reunión preliminar el jueves, para agilizar y conocer la ideas de cada uno.


PD: Ala hora de mandar el mensaje me ha saltado un aviso de que habia una nueva respuesta en el post.

Citar
Corríjanme si me equivoco!, pero no seria mas facil programar socket's para enviar paquetes con las contraseñas, y escuchar las paquetes recibidos, para saber si la contraseña es valida.??

Y corrijanme si me esquivoco pero creo que esa es la respuesta que necesitabamos!!!

De hecho creo que todos los programas de este tipo lo hacen así!!!
Este es un tema importante a discutir y a conocer

Un cordial saludoooo

Atentamente
Vuestro Igual

WiseHidden


Título: Re: Intentando crear programa romper claves wifi (WEP) S.O Windows en C++
Publicado por: Danyel_Casvill en 14 Junio 2011, 16:59 pm

Para la inyeccion:
Corríjanme si me equivoco!, pero no seria mas facil programar socket's para enviar paquetes con las contraseñas, y escuchar las paquetes recibidos, para saber si la contraseña es valida.??


Ok, no se mucho de sockets pero hasta donde se, la librería para windows es
Código
  1. #include <winsock2.h>
y hay una funcion para enviar datos y otra para recivir, bueno voy a buscar un poco a ver que encuentro, saludos.

El problema empieza en Comparar/Injectar/Certificar y Autentificar de que entre todas las probabilidades que tengan nuestros diccionarios una de ellas sea la "verdadera" y nos diga "CONTRASEÑA ENCONTRADA xxxxxxxxxx"
Exacto..

Hare un nuevo post para preguntar sobre ello  :P


Título: Re: Intentando crear programa romper claves wifi (WEP) S.O Windows en C++
Publicado por: fantasma306 en 14 Junio 2011, 19:33 pm
Echen un vistazo a esto:
EDITO:
http://msdn.microsoft.com/en-us/library/ms706556.aspx

Dejo el siguiente link por si les interesa
Download Wireless Communication Library C++ Edition:
http://www.btframework.com/download_mfc.htm

lo unico, que es solo una demo  :silbar:



Título: Re: Intentando crear programa romper claves wifi (WEP) S.O Windows en C++
Publicado por: <<<-Basura->>> en 14 Junio 2011, 19:54 pm
Yo la verdad no se de sockets :-\ :-\ ,así alguien tendría que explicarme, nonog44@hotmail.com
voy a modificar el código que presente para mas palabras, porque lo que yo presente fue como hacerlo voy a ver si subo el trabajo completo para que todos lo descarguen, digo el generador de contraseñas verdad nada mas


Título: Re: Intentando crear programa romper claves wifi (WEP) S.O Windows en C++
Publicado por: <<<-Basura->>> en 14 Junio 2011, 20:04 pm
fantasma306 Ami tu código no me compila salen los siguientes errores:

integer constant is so large that is unsigned
this decimal constant is unsigned only in ISO C90
in function 'void genDico(std::ostream&, const char*, double, double)
'pow' was not declared in this scope

Esos son los errores que me salen a la hora de compilar


Título: Re: Intentando crear programa romper claves wifi (WEP) S.O Windows en C++
Publicado por: fantasma306 en 14 Junio 2011, 20:20 pm
fantasma306 Ami tu código no me compila salen los siguientes errores:

integer constant is so large that is unsigned
this decimal constant is unsigned only in ISO C90
in function 'void genDico(std::ostream&, const char*, double, double)
'pow' was not declared in this scope

Esos son los errores que me salen a la hora de compilar

Lo estas compilando como C o como C++?


Título: Re: Intentando crear programa romper claves wifi (WEP) S.O Windows en C++
Publicado por: Maurice_Lupin en 14 Junio 2011, 20:49 pm
Bueno recién veo el tema  :-\ si se crea el generador de diccionario y lo envías a un *.txt podrías probarlo con el backtrack 4, nada más para probarlo, luego tendrías que averiguar algún comando para configurar la red wifi, lo que sé es que el comando:

- Net Stat WZCSVC (inicia el servicio de configuración inalámbrica rápida en windows)

No sé pero averiguaré, si se puede conectarse a una red inalámbrica mediante comandos DOS, en linux seria más fácil.


Título: Re: Intentando crear programa romper claves wifi (WEP) S.O Windows en C++
Publicado por: WiseHidden en 14 Junio 2011, 21:02 pm
Citar
Bueno recién veo el tema  :-\ si se crea el generador de diccionario y lo envías a un *.txt podrías probarlo con el backtrack 4, nada más para probarlo, luego tendrías que averiguar algún comando para configurar la red wifi, lo que sé es que el comando:

- Net Stat WZCSVC (inicia el servicio de configuración inalámbrica rápida en windows)

No sé pero averiguaré, si se puede conectarse a una red inalámbrica mediante comandos DOS, en linux seria más fácil.

Linux seria más fácil si es cierto, pero entoces El tema no se llamaria Intentando crear programa romper claves wifi (WEP) S.O Windows en C++ sino Intentando crear programa romper claves wifi (WEP) S.O Linux en C++  :rolleyes:

Aunque agradecemos tu orientación y en nombre de todos te invito humildemente a que te unas al proyecto, porcierto muy original utilizar el nombre y apellido de Autor y personaje  ;)  Me encanta el Inigualable Arsene Lupin, escrito con un arte sin precedentes y no menos majestuoso que el genial tambien Arthur Conan Doyle,  Un brindis por Maurice Leblanc.

ATT

WH


Título: Re: Intentando crear programa romper claves wifi (WEP) S.O Windows en C++
Publicado por: El_Java en 14 Junio 2011, 21:16 pm
En linux tambien se puede usar facilmente con las librerias socket.h que trae de defecto las distribuciones.
El problema al compilar de fantasma306 creo que es porque no tiene la libreria math.h, por eso no le reconoce pow().


Título: Re: Intentando crear programa romper claves wifi (WEP) S.O Windows en C++
Publicado por: fantasma306 en 14 Junio 2011, 21:29 pm
Que raro la verdad, a mi me funciona sin la libreria math.h, pero es verdad que deberia de haberla incluido...

Modificare el codigo para que no haya más problemas, a ver si solo es eso...


Título: Re: Intentando crear programa romper claves wifi (WEP) S.O Windows en C++
Publicado por: Maurice_Lupin en 15 Junio 2011, 04:44 am
Aqui encontre un ejemplo utilizando la API WLan :
fuente: https://github.com/maurice2k/wlanapi
La pueden compilar con dev C++ yo utilicé el devcpp-4.9.9.2, ningún problema.

Aqui les dejo el proyecto que hice en devC++, sólo agregue las fuentes y el ejemplo a un nuevo proyecto  :xD

http://www.mediafire.com/?qivos83b8snyyeq (no sabia a donde subirlo)

me detecto algunas redes de mi tarjeta, si tengo tiempo revisare más info sobre esta API, espero haber contribuido en algo  ;)


Título: Re: Intentando crear programa romper claves wifi (WEP) S.O Windows en C++
Publicado por: El_Java en 15 Junio 2011, 11:28 am
Las librerias de qt4.7 son tambien capaces de hacer de todo, entre otras cosas como la interfaz gráfica, se pueden crear sockets y cosas así...
Habia por aqui un forero que creo un programa de manejo remoto solo con esta libreria.


Título: Re: Intentando crear programa romper claves wifi (WEP) S.O Windows en C++
Publicado por: <<<-Basura->>> en 16 Junio 2011, 19:02 pm
Bueno yo no soy de España, quisiera saber que horas serian las 22h con la hora del servidor...

otra cosa me metí en la pagina para revisar donde dice channels : tengo que poner #Wifi-hi "tienen que coincidir mayúsculas y también el signo numeral  #"  ?? era una duda


Título: Re: Intentando crear programa romper claves wifi (WEP) S.O Windows en C++
Publicado por: pacocable en 27 Septiembre 2011, 19:50 pm
Hola voy siguiendo este hilo y probando los fuentes, he conseguido unos fuentes que nos da los datos de los aps cercanos, y la idea es de alguna form (que no se como) desde el wlanpi.cpp conectar a un ap y al pedir la clave le pasaramos el fichero txt creado con el essid y bssid del ap que si por ejempleço es wlan_xx seria 65 mil y pico de preubas .
sia lguien saber conectar aun ap desde c++ podriamos ir probando
muchas gracias