soy Wazowski::iWazDev, conocido por algunos y odiado por otros por ser el creador de iwep Pro para iPhone.
/* Actualizacion a fecha 30/12/2010 */
Visto que tampoco a levantado mucho polvo, ni nada de nada, cuelgo un programita para demostrar que se puede calcular el password de las wlan4xx de forma rápida y sencilla de la misma forma que lo hacen las apliaciones de seguridadwireless.
este es el enlace:
http://iwazowski.com/downloads/wlan4xx.rar
Espero vuestros comentarios.
Feliz año nuevo.
/* Primer post a fecha 29/12/2010 */
Llevaba tiempo barruntando la idea de ir devolviendo todo el soporte y conocimiento que me ha rindado este magnifico foro y sus usuarios.
Parto de la base que la creación de este tema no tiene la intencion de crear enemistades con nadie. Los creditos de todos los programas son de sus creadores, simplemete, si no se nombran es por pereza del autor de este post.
Entrando en materia. Como actualmente hay un tema caldente con muy poca información, me gustaría arrojar un poco de luz sobre lo que se han llamado redes wlan4xx de yacom, con proteccion WEP.
Cabe destacar que puedo cometer y cometeré errores de libro, pero la intencion es tratar de "descubrir" como funciona los routers y las apps que utlizan su vulnerabilidad.
Esto es lo que he descifrado yo:
Partimos de la base de un router denominado:
WLAN9CD098
XX:XX:XX:X9:CD:BE
Las X son numeros que, a continuacion beremos si afectan o no, al calculo de las contraseñas.
Utilizando la aplicación de calculo de contraseñas obtenemos los siguientes resultados:
317360175943E
327353175A40D
337342175B41C
347335175C46B
357324175D47A
367317175E449
377306175F458
3873F917504A7
3973E817514B6
3A73DB1752485
Hasta aquí bien, veamos que datos está utilizando la app para calcular las claves. Si utilizamos los siguientes datos con la aplicación de calculo observamos que:
WLAN9CD000
00:00:00:09:CD:00
90 40 00 90 00 99 4
91 40 11 90 01 98 5
92 40 22 90 02 9B 6
93 40 33 90 03 9A 7
94 40 44 90 04 9D 0
95 40 55 90 05 9C 1
96 40 66 90 06 9F 2
97 40 77 90 07 9E 3
98 40 88 90 08 91 C
99 40 99 90 09 90 D
WLAN9CD000
00:26:4D:49:CD:00
90 40 00 90 00 99 4
91 40 11 90 01 98 5
92 40 22 90 02 9B 6
93 40 33 90 03 9A 7
94 40 44 90 04 9D 0
95 40 55 90 05 9C 1
96 40 66 90 06 9F 2
97 40 77 90 07 9E 3
98 40 88 90 08 91 C
99 40 99 90 09 90 D
Este primer paso nos ayuda a decidir que los primeros bytes del BSSID y del ESSID no se estan utilizando para el calculo del hash.
Segundo paso, veamos si se estan utilizando el resto de bytes para el calculo. Probamos con 2 nuevos datos de entrada en la app, y obtenemos:
WLAN000000
00:26:4D:40:00:00
0000000000000
0100110001011
0200220002022
0300330003033
0400440004044
0500550005055
0600660006066
0700770007077
0800880008088
0900990009099
WLANA00000
00:26:4D:4A:00:00
0000000000000
0100110001011
0200220002022
0300330003033
0400440004044
0500550005055
0600660006066
0700770007077
0800880008088
0900990009099
En este paso hemos descubierto una dos cosas, una es que el byte 5 del ESSID y el byte 8 del BSSID deben ser iguales pero no afectan al calculo de la clave, además, podemos ver cual es el patron de inicio para el calculo de las claves.
Siguiente paso, añadimos el byte 6 del essid y el 9 del bssid. Y obtenemos:
WLANA10000
00:26:4D:4A:10:00
1010001000111
1110111001100
1210221002133
1310331003122
1410441004155
1510551005144
1610661006177
1710771007166
1810881008199
1910991009188
Comprobamos que la comprobacion del byte 5 del essid sigue valiendo:
WLAN510000
00:26:4D:45:10:00
1010001000111
1110111001100
1210221002133
1310331003122
1410441004155
1510551005144
1610661006177
1710771007166
1810881008199
1910991009188
Ok, todo igual con el byte 5, pero el byte 6 del essid y el byte 9 del bssid si que afectan al calculo.
Siguiente paso, al ser un algoritmo relativamente corto, podemos ver que el comportamiento del calculo de la contraseña parece sencillo. Con este paso, trataremos de avanzar y sacar un patrón de calculo para los primeros bytes de la clave.
Probamos 4 entradas, con estos resultados:
Código:
WLAN520000 WLAN521000 WLAN522000 WLAN523000
00:26:4D:45:20:00 00:26:4D:45:21:00 00:26:4D:45:22:00 00:26:4D:45:23:00
2020002000222 3020003000332 4060004000446 5060005000556
2120112001233 3120113001323 4160114001457 5160115001547
2220222002200 3220223002310 4260224002464 5260225002574
2320332003211 3320333003301 4360334003475 5360335003565
2420442004266 3420443004376 4460444004402 5460445004512
2520552005277 3520553005367 4560554005413 5560555005503
2620662006244 3620663006354 4660664006420 5660665006530
2720772007255 3720773007345 4760774007431 5760775007521
28208820082AA 38208830083BA 48608840084CE 58608850085DE
29209920092BB 39209930093AB 49609940094DF 59609950095CF
Código:
WLAN530000 WLAN531000 WLAN532000 WLAN533000
00:26:4D:45:30:00 00:26:4D:45:31:00 00:26:4D:45:32:00 00:26:4D:45:33:00
3030003000333 4050004000445 5070005000557 6050006000665
3130113001322 4150114001454 5170115001546 6150116001674
3230223002311 4250224002467 5270225002575 6250226002647
3330333003300 4350334003476 5370335003564 6350336003656
3430443004377 4450444004401 5470445004513 6450446004621
3530553005366 4550554005410 5570555005502 6550556005630
3630663006355 4650664006423 5670665006531 6650666006603
3730773007344 4750774007432 5770775007520 6750776007612
38308830083BB 48508840084CD 58708850085DF 68508860086ED
39309930093AA 49509940094DC 59709950095CE 69509960096FC
De estos resultados, de momento lo que podemos ver es que los bytes [1 2] del pass se obtienen de la suma de los bytes [9 10] del Essid o del Bssid, todavía queda por ver si el resto de bytes afecta (ya avanzo yo, que si afectan)
Pero vamos bién, vamos a usar esta nomenclatura, a los bytes del ESSID los llamamos [E1 - E6], a los del BSSID los llamamos [B1 - B12] y a los del pass los llamaremos [P1 - 13]
P1 = dec(B9) + dec(B10);
P2 = 0; y va incrementando de uno en uno.
P3 = ??; erratico de momento.
P4 = 0; de momento.
P5 = P2; en incremento, no en valor
P6 = P2; en incremento, no en valor
P7 = P1; en formato, no en valor
P8 = ??; depende de algun valor que no se ha tocado aún.
P9 = ??; depende de algun valor que no se ha tocado aún.
P10 = P2; en incremento, no en valor
P11 = P1; en formato, no en valor
P12 = ??;
P13 = ??;
De momento ya está bién, que ya no me entero ni yo.
agradeceria mucho vuestras aprtaciones.
Mañana tato de seguir un rato más.
Un saludo.