Intentando crear programa romper claves wifi (WEP) S.O Windows en C++

Iniciado por WiseHidden, 18 Marzo 2011, 11:13 AM

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

WiseHidden

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
Si tu tienes una manzana y yo otra y decidimos intercambiarlas, seguiremos teniendo una manzana cada uno, pero si tu tienes una idea y yo otra y la intercambiamos, ambos tendremos dos ideas. (Origen Anónimo)

WiseHidden

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");
}
Si tu tienes una manzana y yo otra y decidimos intercambiarlas, seguiremos teniendo una manzana cada uno, pero si tu tienes una idea y yo otra y la intercambiamos, ambos tendremos dos ideas. (Origen Anónimo)

anonimo12121

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
Página para ganar Bitcoins y Dinero: http://earnbit.hol.es/
Video de YouTube con Hack para el LoL: http://adf.ly/5033746/youtube-lolemuhack
Si quieres ganar dinero con adfly entra y registrate aquí -> http://adf.ly/?id=5033746

WiseHidden

Citarprueba 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
Si tu tienes una manzana y yo otra y decidimos intercambiarlas, seguiremos teniendo una manzana cada uno, pero si tu tienes una idea y yo otra y la intercambiamos, ambos tendremos dos ideas. (Origen Anónimo)

anonimo12121

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
Página para ganar Bitcoins y Dinero: http://earnbit.hol.es/
Video de YouTube con Hack para el LoL: http://adf.ly/5033746/youtube-lolemuhack
Si quieres ganar dinero con adfly entra y registrate aquí -> http://adf.ly/?id=5033746

WiseHidden

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????
Si tu tienes una manzana y yo otra y decidimos intercambiarlas, seguiremos teniendo una manzana cada uno, pero si tu tienes una idea y yo otra y la intercambiamos, ambos tendremos dos ideas. (Origen Anónimo)

Z3R0 BOOM

Me parece un proyecto muy interesante yo siempre quize hacer algo igual.
Me apunto!!!!


WiseHidden

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
Si tu tienes una manzana y yo otra y decidimos intercambiarlas, seguiremos teniendo una manzana cada uno, pero si tu tienes una idea y yo otra y la intercambiamos, ambos tendremos dos ideas. (Origen Anónimo)

<<<-Basura->>>

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 ;)
<<<--Basura-->>>

<<<-Basura->>>

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 .....
<<<--Basura-->>>