Ver la Versión Completa : Portar wlandecrypter + airodump
cRaZyByTe
08/09/09, 12:29:20
Hola compañeros de foro, he encontrado el código fuente del programa Wlandecrypter, utilizado para extraer la password de archivos .cap procedentes de un capturador de paquetes WEP.
Está escrito en c/c++, y habría que portarlo a JAVA que al parecer es el lenguaje que entiende android. Esta parte es la más sencilla puesto que el propio programa es muy simple, genera un diccionario a partir de los BSSID de entrada.
La parte más complicada consiste en portar parte de la suite aircrack-ng, escrita tambien en C/C++ ya que aunque el aircrack sea relativamente facil de portar, ya que solo nos interesa un modulo cuyo funcionamiento es un algoritmo (crackear a partir de un diccionario, seria el único módulo del programa útil en nuestros terminales) el programa airodump (para capturar los cuatro paquetes que suelen recomendarse para la creaccion del diccionario) necesita que funcione correctamente el wifi en modo monitor lo cual es más complicado.
La ejecucion del programa podría estar automatizada:
Airodump, elegir redes. Comprobar si el BSSid es compatible, y si es así capturar paquetes con airodump y el bssid objetivo. Una vez tenemos los paquetes data necesarios (4, se obtienen en 10 segundo si hay alguien conectado..) Mientras se ejecuta el airodupm llamar a wlandecrypter y crear un diccionario temporal. Al finalizar ambos, llamar a aircrack. y que muestre por pantalla la contraseña....
Que os parece? Hasta el añoq ue viene que empiezo con POO, no podré empezar a portar nada, pero si alguno esta dispuesto ha realizarlo por amor al arte, que contribuya en este post. (me dolería ver como surge alguno como el creador el iwep, que utilizando codigo GNU ha realizado una aplicacion con codigo cerrado...)
Codigos fuente::
http://code.google.com/p/wlandecrypter/source/browse/trunk/wlandecrypter.c
http://download.aircrack-ng.org/aircrack-ng-1.0.tar.gz
adrianVP
09/09/09, 08:13:15
Crackeas weps con 4 paquetes??? Ya me explicaras como, pq yo necesito unos 150000 de media...
barceloq
21/09/09, 10:26:45
las redes wlan salen con 4 paquetes, claro esta si no se les ha cambado la contraseña manualmente, ya que la clave es una letra que es la primera de la marca del router seguido de un trozo de mac y al final cinco caracteres siendo los dos ultimos los numeros que tiene por nombre la red, ejemplo de clave de wlan_44 seria Z+1234567+333+44 donde la Z es de zyxel , 1234567 seria el trozo de mac, 333 son los 3 unicos numeros que habria que sacar con bruteforce y 44 es del nombre. Asi que las posibilidades se reducen bastante, por eso con 4 paquetes salen. Usa airoscript y lo veras
pmaicas
21/09/09, 14:09:23
Yo lo hacía con un solo paquete en menos de un segundo, la fuerza bruta se aplicaba a solo 65536 claves, si los de telefonica no han espabilado ...
Lo dificil sigue siendo conseguir un paquete por android ¿ no ? ¿ existe algún métrodo para poner el wifi en modo monitor y capturar un paquete ?
level_666
30/09/09, 05:24:49
Soy apenas un newbie en c++ y android, pero creo que el NDK podria ayudar, que piensan?
http://developer.android.com/sdk/ndk/1.5_r1/index.html
segun la pagina oficial dice que permite programar en c y c++
legolasbdn
25/10/09, 06:46:53
Te animo a que lo intentes xD, almenos para claves WEP de telefónica, con el ESSID y el BSSID, 4 o 5 ivs tienes 256^2 claves para probar, lo que nosé yo si con el procesador de la magic, y el wifi que tiene podrás hacer auditoría.
De todas formas suerte, aver si lo consigues y hacemos el mundo mas seguro obligando a la gente a usar WPA2 XD
he compilado el wlandecrypter para procesadores ARM, para ejecutarlo en un shell. Su tamaño se debe a que lo he linkado de forma estática para no tener problemas de librerías.
Lo adjunto para ver si alguien quiere currarse un script para conectar por fuerza bruta a un ap. :D
Añado el aircrack-ng y las wireless-tools para arm.
Hay que probarlo a ver si funciona correctamente. X-D
Solo falta el módulo para que la wifi se pueda poner en modo monitor..., creo.
Saludos
paperro
13/11/09, 19:21:20
cohone, como los haces funcionar? siempre me dan permision denied, y al hacerlel chmod no cambia permisos...
Grax
cRaZyByTe
13/11/09, 19:32:34
Se supone que habrá que tener el movil en modo root, me alegra ver que la iniciativa mia surge. Con un poco de suerte este segundo cuatrimestre tengo Laboratorio de Tecnología de Objetos, y supongo que aprenderé java en condi, y entonces... podré intentarlo :D
paperro
13/11/09, 19:54:30
bueno hace tiempo que investigue sobre ello, es mas , es lo primero que se me vino a la cabeza al tener un movil linux con wireless xD.
El caso esque eso no es java xD.
bueno, hay que hacer correr aircrack, pero eso es lo mas facil.
lo primero que hay que hacer es crear una rom con los drivers wl12xx, porque los que trae android (ti1251) al parecer no se pueden poner en modo monitor, despues de creada la rom, se puede probar a poner en modo monitor y usar la suit aircrack que no se que dependencias tendrá.
si algun cocinero se anima podemos trabajar en ello, tengo instrucciones y los patchs.
cohone, como los haces funcionar? siempre me dan permision denied, y al hacerlel chmod no cambia permisos...
Grax
yo los he copiado a /system/bin, que es una ruta con path.
Supongo que el problema que tienes es que quieres ejecutarlo desde la sd, pero android monta la sd sin permiso de ejecución.
para montar el /system con pemisos rw:
mount -o remount -o rw /system
copias lo ficheros en algun lugar de /system, ej. /system/aircrack , si no quieres mezclar.
y montas de nuevo /system como ro
mount -o remount -o ro /system
(yo esto no lo hago nunca, se queda rw hasta que reinicio)
Bueno... pejor, si es solo para probar, remonta la sd con permisos de ejecución:
mount -o remount -o exec /sdcard
y ejecutas desde el directorio sonde lo tengas ./aircrack-ng
Saludos
paperro
13/11/09, 20:50:34
Cierto, si esque estoy tonto. lo he probado pero airodump-ng me dice can't find wireless tools, exiting.
Donde hay que poner las wireless tools? lo he metido todo en /system/bin
psykotico
13/11/09, 21:12:03
con esto que es lo que se esta buscando,, hacer algun programita tipo IWEP como el de los iphone??? no se podria coger el programita iwep y ver como va,,se de gente que lo ha manejado haciendo simulacion,,,no me pregunteis como pues no tengo ni idea,,pero en fin aqui estoy para lo que necesiteis,,,saludos...
Cierto, si esque estoy tonto. lo he probado pero airodump-ng me dice can't find wireless tools, exiting.
Donde hay que poner las wireless tools? lo he metido todo en /system/bin
Pues... me pasa lo mismo, no se porqué sale, porque el iwconfig lo tengo en ruta de path.
mas tarde echo un vistazo a ver si he olvidado algún ejecutable de las wirelesstools.
Aunque creo que el mensaje podría estar equivocado, y se refiere a las wireless extensions.
con esto que es lo que se esta buscando,, hacer algun programita tipo IWEP como el de los iphone??? no se podria coger el programita iwep y ver como va,,se de gente que lo ha manejado haciendo simulacion,,,no me pregunteis como pues no tengo ni idea,,pero en fin aqui estoy para lo que necesiteis,,,saludos...
En mi caso es mas curiosidad...ya tengo linea adsl...
Decidí compilar esto para probar si funciona el compilador para arm, nada más...
No conozco el programa iwep...
En teoría ya con conseguir los drivers para poner la tarjeta en modo monitor y habilitar las wireless extensions en el kernel ya se podría sacar weps. En la práctica tal vez no sea tan sencillo.
paperro
13/11/09, 22:02:03
puede ser que de ese error porque el iwconfig no detecta wireless extensions en tiwlan1, cosa que supongo se arreglara al cambiar el driver.
El tema del IWEP para iphone es una "chapuza", no quiero decir que sea un mal programa, sino que sin tener recursos para poner la wireless en monitor no queda otra cosa que hacer eso. el programa ese lo que hace es crear el diccionario para la WLAN_XX correspondiente y probar a conectarse con cada una de las claves hasta que lo consigue, lo que tarda horas y destroza la bateria..
evildarkangel
17/01/10, 23:14:22
He estado haciendo un test transformando el Wlandecrypter a java, y para generar los 65535 passwords y guardarlos en un txt tarda mucho. Con 4095 me tarda unos 35 segundos... haced cálculos.
Si hago un simple bucle que rellene un txt con 65535 "Holas", me tarda escasos segundos. Así que supongo que tendría que optimizar el for que rellena el txt.
El for que he hecho es el siguiente:
for(int i=0; i<=65535; i++){
if(i<=15){
diccionario = diccionario + password.replace("XXXX","000"+Integer.toHexString(i)) + "\n";
}else if(i<=255){
diccionario = diccionario + password.replace("XXXX","00"+Integer.toHexString(i)) + "\n";
}else if(i<=4095){
diccionario = diccionario + password.replace("XXXX","0"+Integer.toHexString(i)) + "\n";
}else if(i<=65535){
diccionario = diccionario + password.replace("XXXX",Integer.toHexString(i)) + "\n";
}
}
Password es una string, que contiene el password inicial, por ejemplo Z0023F8XXXX33.
La verdad es que estoy en pañales en java... A ver si a alguien se le ocurre algo.
Añado este otro metodo, 30 segundos con 4095 passwords (5 segundos menos).
for(int i=0;i<16;i++)
for(int j=0;j<16;j++)
for(int k=0;k<16;k++){
for(int l=0;l<16;l++){
diccionario = diccionario + inicio + Integer.toHexString(i) + Integer.toHexString(j) + Integer.toHexString(k) + Integer.toHexString(l) + fin + "\n";
}
Saludos!
Pero esto que cuentas ya está hecho, no? Llamas al wlandecrypter desde java con los parametros adecuados y el te genera el diccionario automáticamente... o eso no se puede hacer?
El problema viene porque no podemos poner el driver del wifi en modo monitor para capturar un paquete y pasarle el diccionario por el aircrack
o
Si lo que queremos es hacer como el programa del iphone, el iwep, probar todas las claves del diccionario hay un posible problema, no estoy seguro, y creo que es el siguiente:
Explico como se hace primero, es sencillo:
Te asocias al router y le envias un arp a la dirección del router con todas las claves del diccionario, cuando el router responda "soy yo!", ya sabremos cual es la clave buena...
Uno de los problemas:
Las wireless extensions no vienen habilitadas en el kernel, y aún así no se si funcionarían, el caso es que con el iwconfig te asocias una vez y puedes cambiar la clave sin tener que asociarte de nuevo, lo cual lo hace relativamente rápido.
Como en vez iwconfig, en android utilizan wpa_supplicant, desconozco si es tan sencillo y rápido hacerlo con este programa, pero poder, casi seguro que se puede... no se...
Saludos
He estado haciendo un test transformando el Wlandecrypter a java, y para generar los 65535 passwords y guardarlos en un txt tarda mucho. Con 4095 me tarda unos 35 segundos... haced cálculos.
Si hago un simple bucle que rellene un txt con 65535 "Holas", me tarda escasos segundos. Así que supongo que tendría que optimizar el for que rellena el txt.
El for que he hecho es el siguiente:
for(int i=0; i<=65535; i++){
if(i<=15){
diccionario = diccionario + password.replace("XXXX","000"+Integer.toHexString(i)) + "\n";
}else if(i<=255){
diccionario = diccionario + password.replace("XXXX","00"+Integer.toHexString(i)) + "\n";
}else if(i<=4095){
diccionario = diccionario + password.replace("XXXX","0"+Integer.toHexString(i)) + "\n";
}else if(i<=65535){
diccionario = diccionario + password.replace("XXXX",Integer.toHexString(i)) + "\n";
}
}
Password es una string, que contiene el password inicial, por ejemplo Z0023F8XXXX33.
La verdad es que estoy en pañales en java... A ver si a alguien se le ocurre algo.
Añado este otro metodo, 30 segundos con 4095 passwords (5 segundos menos).
for(int i=0;i<16;i++)
for(int j=0;j<16;j++)
for(int k=0;k<16;k++){
for(int l=0;l<16;l++){
diccionario = diccionario + inicio + Integer.toHexString(i) + Integer.toHexString(j) + Integer.toHexString(k) + Integer.toHexString(l) + fin + "\n";
}
Saludos!
evildarkangel
18/01/10, 11:32:11
Pero esto que cuentas ya está hecho, no? Llamas al wlandecrypter desde java con los parametros adecuados y el te genera el diccionario automáticamente... o eso no se puede hacer?
No lo he probado. ¿Necesitas ser root? Porque intenté montar la SD desde la shell de ADB, y no hay manera... (tengo una tattoo).
Yo lo que he hecho, ha sido pasar parte del wlandecrypter a java, con un pequeño formulario, donde introduces el BSSID y el ESSID. Luego te genera el diccionario.txt en la SD. Sin usar el wlandecrypter ARM, ni usar la consola.
Saludos!
Yo tengo mi hero rooteada y estoy seguro que si que es necesario ser root para tener privilegios con el comando mount, ya que donde hay privilegios de escritura no los hay de ejecución (/sdcard) y al reves, donde hay de ejecución no hay de escritura... (para copiar los ejecutables)
Pero si te haces un instalador, no se si es necesario ser root... lo desconozco.
Yo es que llevo con la hero rooteada desde el primer dia y no se las limitaciones de no ser root.
Siempre viene bien tener el algoritmo del wlandecrypter portado a java, también existe otro programa que creo que se llama jaztell decrypter o algo así X-D, lo digo para que lo tengas en cuenta a la hora de programar (ya que te pones...)
y aquí por si te sirve de algo, tienes un script en python, aunque llama al wlandecrypter, pero lo he probado y va muy bien, aunque es un poco coñazo porque te pile mil parámetros...
http://foro.elhacker.net/wireless_en_linux/wlanreaver_02_ataque_ap_sin_clientes_ni_arps-t269374.0.html
Siento no poder ayudarte con el java, ya que no tengo ni idea...
Saludos
evildarkangel
18/01/10, 13:03:11
Si, lo suyo seria hacer todo el arsenal con Wlandecrypter, Jazzteldecrypter, Dlinkdecrypter, el de SpeedTouch y el de las ADSLXXXX, pero lo primero sería intentar acrotar el tiempo al generar el diccionario... A ver si alguien que entienda nos ayuda con el blucle.
Edito, el fallo esta en que hacia: diccionario = diccionario + [...]
El for correcto es:
for(int i=0;i<16;i++)
for(int j=0;j<16;j++)
for(int k=0;k<16;k++){
for(int l=0;l<16;l++){
out.write(inicio + Integer.toHexString(i) + Integer.toHexString(j) + Integer.toHexString(k) + Integer.toHexString(l) + final + "\n");
}
De esta manera, va añadiendo los passwords al Diccionaro.txt, sin preocuparse de lo que ya hay en el txt. Tiempo con 65535 passwords han sido unos 15 segundos.
En cuanto lo acabe, cuelgo todo el source y el APK.
evildarkangel
18/01/10, 14:35:20
Cuelgo el source más el .apk de lo que tengo hasta ahora.
http://img194.imageshack.us/img194/4255/wlandroidimage.png
WlanDroid 0.1b (Basado 100% en el source del wlandecrypter de Nilp0inteR). Pequeña apliacción para generar diccionarios con los posibles passwords para las redes de telefonica WLAN_XX. No es funcional del todo, segun lo que hagas peta, pero algo es algo :P
Saludos!
evildarkangel
18/01/10, 17:53:18
Añado el Dlinkdecrypter y el Jazzteldecrypter.
En el Dlinkdecrypter he añadido otra TextField, para que sea más fácil copiar el posible password generado.
Para los que no sepan para que sirven:
Dlinkdecrypter genera un diccionario con 256 passwords y indica cual de ellos es más probable que sea.
Jazzteldecrypter genera un diccionario con 65536 passwords.
Saludos!
Joshiro
25/01/10, 17:10:00
Añado el Dlinkdecrypter y el Jazzteldecrypter.
En el Dlinkdecrypter he añadido otra TextField, para que sea más fácil copiar el posible password generado.
Para los que no sepan para que sirven:
Dlinkdecrypter genera un diccionario con 256 passwords y indica cual de ellos es más probable que sea.
Jazzteldecrypter genera un diccionario con 65536 passwords.
Saludos!
Hola.
Que tal funciona el programa?
Hay algo a tener en cuenta a la hora de instalar(root, ...)?
Que posibles problemas pueden surgir?
Muchas gracias a todos!
migue85
26/01/10, 01:03:27
Te recomendaria que usaras un array:
String hexValues = "0123456789ABCDEF";
y accedieras con complejidad constante a los valores del array concatenandolos directamente con "+".
De esta forma puedes hacerlo con un unico bucle for y es posible que ganes bastante en velocidad. Pasas de complejidad O(n^4) a O(n). Ademas, creo que la funcion toHexString es bastante pesada.
migue85
26/01/10, 12:23:10
Me equivoque, he de mirar algoritmos de permutacion que tengan complejidad menor pero de todas formas, prueba a ver si este codigo te vas mas rapido.
He aprovechado un array y una variable limite para que todo ello quede cacheado. De esta forma no hay que llamar a la fncion to HexString, que es muy lenta y los datos ya los tenemos generdos por lo que adems, aprovechando los primeros accesos a memoria, la informacion queda cacheada y acceder al array se hace ademas con complejidad constante y va que tira millas.
Lo unico que podria mejorarse, he de mirarlo, es reducir los 4 bucles a algo mas rapido aun, supongo que existen algoritmos de combinaciones de n elementos tomados de m en m con menor complejidad que O(N^m) que es el orden de complejidad mas lento.
En mi pc,el cual es bastante lento,este codigo ha ido realmente rapido, supongo que en el movil no ira del todo mal, si puedes sustituyelo por el tuyo y me comentas que tal va porque a priori intuyo que ira un poquito mejor.
Ademas, te recomiendo que uses el out.write mirando si hay algun metodo write que haga el salto de linea implicito con lo que te ahorras una nueva concatenacion del '\n' retorno de carro y quieras que no, 65536 veces esa operacion supondra un ahorro de unos poquiños ms.
String s[] = {"0","1","2","3","4","5","6","7","8",
"9", "A", "B", "C", "D", "E", "F"};
int limit = 16;
for (int i=0; i<limit; i++)
for (int j=0; j<limit; j++)
for (int k=0; k<limit; k++)
for (int l=0; l<limit; l++)
System.out.println(s[i]+s[j]+s[k]+s[l]);ya me contaras
evildarkangel
26/01/10, 20:56:38
Me equivoque, he de mirar algoritmos de permutacion que tengan complejidad menor pero de todas formas, prueba a ver si este codigo te vas mas rapido.
He aprovechado un array y una variable limite para que todo ello quede cacheado. De esta forma no hay que llamar a la fncion to HexString, que es muy lenta y los datos ya los tenemos generdos por lo que adems, aprovechando los primeros accesos a memoria, la informacion queda cacheada y acceder al array se hace ademas con complejidad constante y va que tira millas.
Lo unico que podria mejorarse, he de mirarlo, es reducir los 4 bucles a algo mas rapido aun, supongo que existen algoritmos de combinaciones de n elementos tomados de m en m con menor complejidad que O(N^m) que es el orden de complejidad mas lento.
En mi pc,el cual es bastante lento,este codigo ha ido realmente rapido, supongo que en el movil no ira del todo mal, si puedes sustituyelo por el tuyo y me comentas que tal va porque a priori intuyo que ira un poquito mejor.
Ademas, te recomiendo que uses el out.write mirando si hay algun metodo write que haga el salto de linea implicito con lo que te ahorras una nueva concatenacion del '\n' retorno de carro y quieras que no, 65536 veces esa operacion supondra un ahorro de unos poquiños ms.
String s[] = {"0","1","2","3","4","5","6","7","8",
"9", "A", "B", "C", "D", "E", "F"};
int limit = 16;
for (int i=0; i<limit; i++)
for (int j=0; j<limit; j++)
for (int k=0; k<limit; k++)
for (int l=0; l<limit; l++)
System.out.println(s[i]+s[j]+s[k]+s[l]);ya me contaras
Llevas toda la razón, no se me había ocurrido. Al usar un array de strings es mucho más rápido, tarda la mitad aproximadamente (65536 passwords, 10 segundos).
Y lo del out.write no me ha quedado del todo claro... El system.out.println no es para escribir en en consola? O se puede usar para escribir en un txt?
Subo todos los .apk + sources actualizados.
Gracias por tus consejos ;)
EDITO: Corregido un pequeño error :P
Si conseguis el de los speedtouch os coronais...
Que lastima no saber programar che,,..
Me gustaria aportar algo a esto, aunque sea probando las betas que vayais sacando. Tengo la hero roteada y ni siquiera he podido instalarlo... no se que pasara. Estare atento! Un saludo y enhorabuena por el trabajo.
Me da error de escritura en la sd, al darle a generar diccionario.
Es necesario ser root?
evildarkangel
14/02/10, 16:18:45
Lo estás probando en el emulador o en un telefono real? En el emulador me salia ese error.
Tienes el telefono conectado por USB mientras lo haces? Si es así, desconectalo, ya que al tenerlo conectado, le PC usa la SD.
No necesitas ser root en un principio...
Saludos!
kerberos
16/02/10, 11:00:32
Este es un hilo donde se habla de como poner en modo monitor a Android:
http://www.androidfanatic.com/cms/community-forums.html?func=view&id=1578&catid=9
Espero les pueda ayudar un poco con este link.
Hasta que no se desarrollen unos drivers para poner la tarjeta en modo monitor no habrá avance, así que no se porque os liaste con el algoritmo de fuerza bruta xd
Aún así dejaré mis aportes ya que se algo del tema :-)
Tú algoritmo no está optimizado evildarkangel, pruebalo de la siguiente manera y me comentas:
String s[] = {"0","1","2","3","4","5","6","7","8","9",
"A", "B", "C", "D", "E", "F"};
int limit = 16, i, j, k, l;
for (i=0; i<limit; ++i)
for (j=0; j<limit; ++j)
for (k=0; k<limit; ++k)
for (l=0; l<limit; ++l)
System.out.println(s[i]+s[j]+s[k]+s[l]);Hace un año o así conseguir desarrollar un algoritmo de fuerza bruta (con un solo bucle claro), y me costo lo suyo desarrollarlo.
Lo tengo en Perl, luego al medio dia cuando llegue a casa lo pasa a Java y lo subo para que le hecheis un vistazo y hechamos unas carreras jaja, saludos!
evildarkangel
16/02/10, 19:53:20
Tú algoritmo no está optimizado evildarkangel, pruebalo de la siguiente manera y me comentas:
String s[] = {"0","1","2","3","4","5","6","7","8","9",
"A", "B", "C", "D", "E", "F"};
int limit = 16, i, j, k, l;
for (i=0; i<limit; ++i)
for (j=0; j<limit; ++j)
for (k=0; k<limit; ++k)
for (l=0; l<limit; ++l)
System.out.println(s[i]+s[j]+s[k]+s[l]);
Lo tengo tal cual me dijistes:
String hexa[] = {"0","1","2","3","4","5","6","7","8",
"9", "A", "B", "C", "D", "E", "F"};
for (int i=0; i<16; i++)
for (int j=0; j<16; j++)
for (int k=0; k<16; k++)
for (int l=0; l<16; l++)
out.write(password + hexa[i]+hexa[j]+hexa[k]+hexa[l] + fin + "\n");Saludos y gracias!
No me entendiste del todo.
Compara los dos códigos y verás unas pequeñas diferencias pero abrumadoras...
Este es un hilo donde se habla de como poner en modo monitor a Android:
http://www.androidfanatic.com/cms/community-forums.html?func=view&id=1578&catid=9
Espero les pueda ayudar un poco con este link.
Bah. no te hagas ilusiones, ya probé a compilar ese código hace tiempo y no hace nada....
Y ahora que lo he vuelto a leer... me he dado cuenta que no vale para nada.
El tipo pone la tarjeta en modo "promiscuo", que no tiene nada que ver con modo "monitor".
Una de las condiciones que pone para que funcione el sniffer.c y el injector.c es que estés conectado a internet (nos ha jodio!!!).
Esto, para lo que vale es para demostrar que puedes snifar una red a la que estas conectado, ej. tcpdump. Pero para nada que sirva para poner la tarjeta en modo monitor para snifar el "aire" sin estar asociado a un ap.
Saludos
Santoos
21/02/10, 01:53:31
Hola chicos, no se como va este tema, :P
El caso esque me gustaria saber si el programa este avanza o no, para poder conectarme a las WLAN_XX por la patilla :grin:
Tengo el WlanDroid pero claro, el BSSID lo tengo que introducir manualmente y luego te genera miles y miles de claves WEP!!!!
A ver si me iluminais!!!!
String s[] = {"0","1","2","3","4","5","6","7","8","9",
"A", "B", "C", "D", "E", "F"};
int limit = 16, i, j, k, l;
for (i=0; i<limit; ++i)
for (j=0; j<limit; ++j)
for (k=0; k<limit; ++k)
for (l=0; l<limit; ++l)
System.out.println(s[i]+s[j]+s[k]+s[l]);
Lo tengo tal cual me dijistes:
String hexa[] = {"0","1","2","3","4","5","6","7","8",
"9", "A", "B", "C", "D", "E", "F"};
for (int i=0; i<16; i++)
for (int j=0; j<16; j++)
for (int k=0; k<16; k++)
for (int l=0; l<16; l++)
out.write(password + hexa[i]+hexa[j]+hexa[k]+hexa[l] + fin + "\n");Saludos y gracias!
Hay una sutil diferencia tu declaras los contadores dentro del for, por lo que en cada iteración (teoricamente) se reservará espacio para dicha variable y al finalizar la iteración se liberará, y asi con todas las iteraciones de cada bucle, calcula el numero de iteraciones y veras.... Aunque no creo que notes diferencia de rendimiento si cambias el código (no lo se ni lo he probado) pero hoy dia los compiladores hacen una barbaridad de pasos intermedios de optimización, y seguramente esa sea una de las optimizaciones que llevan a cabo.
Además creo que el proceso más pesado en esos bucles es la escritura en el sistema de ficheros. Le he echado un vistazo, no creo que mejore mucho el tiempo pero por probar:
En tu codigo hay un par de bucles (ya se que has cambiado el tohexstring por el array) eso si que es una buena optimización:
for(int i=0;i<16;i++)
for(int j=0;j<16;j++)
for(int k=0;k<16;k++)
for(int l=0;l<16;l++){
out.write(password +
Integer.toHexString(i) + Integer.toHexString(j) +
Integer.toHexString(k) + Integer.toHexString(l) +
fin + "\n");
contador++;
}
if(password2.length()>0){
for(int w=0;w<16;w++)
for(int x=0;x<16;x++)
for(int y=0;y<16;y++)
for(int z=0;z<16;z++){
out.write(password2 +
Integer.toHexString(w) + Integer.toHexString(x) +
Integer.toHexString(y) + Integer.toHexString(z) +
fin + "\n");
contador++;
}
prueba con este otro código:
boolean pass2=password2.length()>0;
for(int i=0;i<16;i++)
for(int j=0;j<16;j++)
for(int k=0;k<16;k++)
for(int l=0;l<16;l++){
String s=hexa[i]+hexa[j]+hexa[k]+hexa[l];
out.write(password +s + fin "\n");
if(pass2) out.write(password2 +s + fin "\n");
}
Puede ser que mejore en algo el tiempo cuando hay mas de una contraseña posible, aunque ya te digo que creo que la mayor parte del tiempo el programa esperará al sistema de ficheros.
Otra pequeña ida de pelota, puede ser lo siguiente, todavia no he programado nada en android y no lo puedo probar ahora, y en el ordenador el tiempo sería despreciable:
StringBuffer s="1234";
for(int i=0;i<16;i++){
s.replace(0,1,hexa[i]);
for(int j=0;j<16;j++){
s.replace(1,2,hexa[j]);
for(int k=0;k<16;k++){
s.replace(2,3,hexa[k]);
for(int l=0;l<16;l++){
s.replace(3,4,hexa[l]);
out.write(password +s + fin "\n");
if(pass2) out.write(password2 +s + fin "\n");
}
}
}
}
Con este código se supone que no se crean tantas String intermedias, además de concatenar muchas menos veces las cadenas, no se si el metodo replace del StringBuffer puede joder el invento, enfin pruebalo y nos cuentas aunque sea por curisiodad :-).
Y ojala pronto tengamos modo monitor o inyeccion o como se llame, que siempre me lio con esos modos de Wifi. Y sin eso todo es en vano..... Por cierto por lo que he leido en otra parte del foro, lo que hace el iwep del iphone es poner cada una de las 65000 y pico contraseñas hasta que consigue conexión con una de ellas, eso seria razonable en tiempo para nuestro android. Alguien sabe algo de esto????
Saludos
vinyols
27/02/10, 22:24:36
realmente interesante y muy avanzado haber si podemos solucionar el telma drivers un saludo a todos
Y una recomendación a los que solo queráis tener internet por la carta sin aportar nada .
se abstengan de comentarios al respecto, preferimos el sencillo agradecimiento
es una cosa muy frustrante ver como la gente solo quiere abusar de un conocimiento ajeno. y son muy pesados o poco respetuosos
todo llegará y para todo el mundo.
Santoos
27/02/10, 22:33:47
realmente interesante y muy avanzado haber si podemos solucionar el telma drivers un saludo a todos
Y una recomendación a los que solo queráis tener internet por la carta sin aportar nada .
se abstengan de comentarios al respecto, preferimos el sencillo agradecimiento
es una cosa muy frustrante ver como la gente solo quiere abusar de un conocimiento ajeno. y son muy pesados o poco respetuosos
todo llegará y para todo el mundo.
Supongo que lo dices por mi X-D Yo poco puedo aportar, soy un estudiante de la ESO, así que... :silbando:
Desde luego que yo no abuso de conocimiento ajeno, simplemente sigo el tema, porque interesa ;-)
Un Saludo
Santoos
05/03/10, 00:20:04
Por cierto, el programa WiFi Scanner de Android saca el BSSID y el SSID. Lo sabiais o no?
vinyols
05/03/10, 04:11:47
Si WiFi scanner es la.delicia de todo adminstrador de redes WiFi
cyborg71
06/09/10, 12:39:24
Las aplicacione son validas para eclair........ Hay alguna avance.....
Gracias.....
erDinamo
17/09/10, 05:49:42
Antes que nada os quiero agradecer vuestro gran esfuezo.
Las aplicaciones se instalan muy bien. Lo unico que pasa es que no se como utilizarlas, si pudierais explicar un poco su funcionamiento os lo agradeceria mucho.
Ademas creo que hay unos fallitos.
Todas las pruebas las he realizado con un X10 pro y como creo que he leido por hay se estan trabajando en los driver asi que muchos de mis fallos pueden ser devidos a eso.
Siempre que pongo en el Dlink unas BSSID me genera la posible password sobre la segunda BSSID y creo que no es correcta, ademas cuando intento generar diccionario da error al grabar en la sd.
Con el Wlan siempre me da un mensaje de ESSID Invalido.
El de Jazztel no he podido probarlo todavia.
Espero vuestras nuevas versiones.
Dicho esto repetir mi mas sincero agradecimiento por vuestro trabajo.
PD: Estoy leyendo las guias para empezar a programar para android y espero realizar aportes en cuanto pueda.
scualix
21/09/10, 15:04:18
Hola gente, me parece super interesante este tema, yo llevo realizando ya desde hace tiempo auditorias wep en pc y siempre pense que seria la leche hacerlo desde un movil.
Tengo varias dudas, cuando haceis iwconfig la interfac inalambrica os la muestra como wlan0? yo tengo un orange boston y asi me la marca y como modelo me pone AR6000 (sera una atheros????)
Otra cosita, es imposible compilar el modulo que permite poner la tarjeta en modo monitor desde el terminal? Me refiero a coger el driver bueno en source y compilarlo desde el mismo terminal... perdonadme si estoy diciendo una burrada pero nose como funciona muy bien el sistema linux de android.
Y si eso no se pudiera hacer es muy dificil cocinar una rom con dicho modulo??
Bueno haber que me decis gente!!
pmaicas
21/09/10, 19:27:24
Si tuvieras el fuente no habría dificultad en compilarlo, pero en un pc con un compilador cruzado, no en el movil. Pero sospecho que los fuentes de los drivers no estan publicados
scualix
23/09/10, 15:10:23
pueeeees vayaa podeis decirme cual es el nombre del modulo que hay que buscar exactamente?? alomejor encuentro un modulo compatible libre o yo
que se que...
scualix
27/09/10, 09:39:16
hola? alguien sabria que contestarme?? graciass
astaroth13
27/09/10, 09:47:19
y no se podria usar algo de lo que ya ha salido para el nokia N900?
http://ba-k.com/showthread.php?t=1624838
Yo he trabajado desde el portatil con ella instalada en un usb y descifra claves wep en poco tiempo, mi duda es si se podría usar de alguna forma en el GALAXY S, tal como se usa el PENETRATE para las claves wpa y wpa2.
Muchas gracias de antemano
pmaicas
08/09/11, 07:55:54
¿ tal como se usa el PENETRATE para las claves wpa ?
Estas mezclando dos cosas distintas, una cosa es averiguar la clave porque alguien la publica (las wpa por defecto en algunos routers) y otra cosa muy distinta es obtener cualquier clave explotando una debilidad del método de cifrado usado, esto último solo se puede hacer con wep y poniendo el wifi en modo monitor. Como en android no se puede poner en modo monitor ... pues eso.
¿ tal como se usa el PENETRATE para las claves wpa ?
Estas mezclando dos cosas distintas, una cosa es averiguar la clave porque alguien la publica (las wpa por defecto en algunos routers) y otra cosa muy distinta es obtener cualquier clave explotando una debilidad del método de cifrado usado, esto último solo se puede hacer con wep y poniendo el wifi en modo monitor. Como en android no se puede poner en modo monitor ... pues eso.
Muchas gracias, eso es lo que quería saber. Si se podía o no. Es que a mi alrededor la gente no tiene ni idea.... y yo lo que voy leyendo y leyendo.
Un saludo!!!
vBulletin® v3.8.1, Copyright ©2000-2026, Jelsoft Enterprises Ltd.