Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - AlexAltea

#11
Cita de: jemez44 en 12 Marzo 2013, 16:30 PM
Pues, bien  mi pregunta es si es posible averiguar previamente algún dato como estos:
*Saber la longitud de la clave.
*Saber si son todo número, todo letras.
*Saber si incluye símbolo.
*Si diferencia entre mayúsculas y minúsculas

Respuesta larga:
Haz una búsqueda en Google y lee esto:
Parte 1: http://functionmixer.blogspot.com.es/2011/12/wpa-psk-calculando-el-pmk-y-la-funcion.html
Parte 2: http://functionmixer.blogspot.com.es/2012/01/wpa-psk-calculando-la-ptk-y-la-funcion.html
Parte 3: http://functionmixer.blogspot.com.es/2012/01/wpa-psk-calculando-el-mic-y-la-funcion.html

Respuesta corta:
No.
#12



Aquí están los dos programas que prometí. No soy muy original con los nombres, pero funcionan bien:

TPLink-GenSeeds: http://www.mediafire.com/download.php?44l9629qq1dx2l8
Este programa calcula el intervalo de seeds donde hay que buscar a partir de un intervalo de tiempo, que se puede indicar con dos fechas, o solo con una fecha y los días alrededor de esta. Como sería horrible hacer esto por terminal le he añadido una GUI rapida, para Windows y Linux (aunque se ve deforme en algunas distros). Para Windows traigo un .exe y para Linux basta con un:
python TPLink-GenSeeds-Linux.pyw
Si tenéis problemas, probablemente necesitéis ejecutar:
sudo apt-get install python-wxgtk2.8

TPLink-GenKeys: http://www.mediafire.com/download.php?28z2fvdgpf22s68
Seleccionáis que tipo de claves queréis generar (si, sé que a estas alturas a nadie le interesa WEP, pero no me costaba nada). Indicáis el rango de las seeds (calculado con el programa de antes), os saldrá información sobre la lista y si continuáis, tendréis dicha lista en "./output.txt".

Con estos dos programas y algún programa para crackear handshakes como aircrack-ng o pyrit (si teneis una GPU compatible), tenéis todo lo necesario para llevar el ataque a la práctica. Es engorroso lo sé, pero me voy a poner desde ya manos a la obra en un todo-en-uno con una bonita GUI que reduzca todo a un par de clicks.


:D
Si alguien quiere colaborar, en mi blog hay indicaciones de como ayudar con este tema:
http://functionmixer.blogspot.com/2013/03/vulnerabilidad-tp-link-obteniendo.html
#13
NOTICIÓN!!!  ;D Dicho brevemente: Se puede reducir 95,595% el tiempo necesario en el peor caso.
Dicho soltando una parrafada:
CitarTambién me mosquee mucho con respecto a cómo se generaban los primeros 4 dígitos en hexadecimal de la clave, lo mismo me volví paranoico, o lo mismo no es sano desensamblar a las 5 de la mañana.
Definitivamente, no es sano. Se me pasó una cosa muy importante por alto y no me la perdonaré jamás. Esa cosa que me mosqueaba, era que la seed es un número que crece linealmente en función del tiempo del ordenador, obtenido a través de un KERNEL32.GetSystemTimeAsFileTime. Es decir, la seed NO es aleatoria, sino que es un valor fijo que aumenta en 1 cada segundo. El código en Python para generar una seed ahora mismo es:

import datetime

def genSeed(t1):
   dt = t1 - datetime.datetime(1601, 1, 1, 0, 0, 0)
   t = dt.days*864000000000 + dt.seconds*10000000 + dt.microseconds*10

   tA = (t/2**32 + 0xFE624E21)
   tB = (t%2**32 + 0x2AC18000) % (1<<32)

   if tA >= (1<<32):
       tA += 1
       tA %= 1<<32

   r = (tA % 0x989680) * (2**32)
   r = ((r + tB) / 0x989680) % (2**31)
   return r

print genSeed(datetime.datetime.utcnow())


Creo que después de esto, me atrevería a decir que la generación de claves en los TP-Link ha sido un FAIL total. Estábamos contentos por haber reducido las claves que necesitábamos comprobar de 3610 a 231. Pues ahora, gracias a esto podemos reducir las combinaciones de 231 a los segundos transcurridos en un periodo de tiempo determinado.

Me explico, supongamos que sabemos que una persona instaló el router en 2012, independientemente del mes, día, etc... Gracias a este método sabemos que sólo hay que comprobar las seeds entre 0x4EFFA3AD y 0x50E22700. Es decir:
genSeed(datetime.datetime(2012, 1, 1, 0, 0, 0)) #0x4EFFA3AD
genSeed(datetime.datetime(2013, 1, 1, 0, 0, 0)) #0x50E22700


En un año hay aprox. 365*24*60*60 = 31536000 seg. (o dicho de otra manera 0x50E22700 - 0x4EFFA3AD). Es decir, solo hay que comprobar 31536000 claves, las generadas por las seeds de ese intervalo de tiempo. Eso son 26 minutos con aceleración por GPU o 5 horas solo con CPU. La cosa se vuelve más grave si de la noche a la mañana "aparece" un nuevo TP-LINK_XXXXXX a nuestro alrededor, podría tratarse de router recién instalado ese día con la clave aleatoria de turno, por lo que solo tendríamos que probar con 24*60*60 = 86400 combinaciones, lo cual es algo ridículo.

Mientras escribo esto se me ocurren varias optimizaciones posibles para este sistema:
1. Escoger un intervalo que nos asegurase un éxito sería cuestión de obtener el modelo del router TP-Link a través de la BSSID, compararlo con una base de datos que tuviera la release date de estos y hallar el rango de seeds entre la release y ahora mismo.
2. Otra optimización sería descartar seeds provenientes de entre las 2 y las 6 de la mañana. No soy quien para meterme con las costumbres de otros, pero hay que tenerlos cuadrados para montarte el chiringuito a esas horas.
3. Etc...  ;)

Los programas para calcular las seeds correspondientes a un intervalo de tiempo, y las claves asociadas a un intervalo de seeds próximamente...
PD: Juro que no estoy separando mis mensajes para hacer bumps, lo que pasa es que escribo segun descubro cosas. XD
#14
Novedades! ;D
Este fallo afecta a todos* los routers WiFi de TP-Link sacados desde 2010. Básicamente todos los que empiezan con TL-WA, TL-WR, TL-WDR, y por otra parte los WXXXX y VGXXXX.
*Con todos los que he probado hasta ahora, que vienen a ser el 90% del total. En los routers restantes tuve problemas en la descarga del EasySetupAssistant, pero me jugaría un baneo por bocazas a que tambien están afectados. XD

Estos routers vienen a ser los que aparecen en estas dos listas (quitando los adaptadores WiFi):
http://www.tp-link.com/en/support/download/?pcid=201
http://www.tp-link.com/en/products/?categoryid=203

Routers TP-Link vulnerables: TL-W8151N    (V1, V3)
TL-WA730RE   (V1, V2*)
TL-WA830RE   (V1, V2*)
TL-WDR3500
TL-WDR3600
TL-WDR4300
TL-WR720N
TL-WR740N    (V1, V2, V3, V4)
TL-WR741ND   (V1, V2, V3*,V4)
TL-WR841N    (V1*,V5, V7, V8)
TL-WR841ND   (V3, V5, V7, V8*)
TL-WR842ND
TL-WR940N    (V1, V2)
TL-WR941ND   (V2, V3, V4, V5)
TL-WR1043N
TL-WR1043ND
TD-VG3511    (V1*)
TD-VG3631
TD-W8901N
TD-W8950ND
TD-W8951NB   (V3*,V4, V5)
TD-W8951ND   (V1, V3, V4, V5)
TD-W8960N    (V1, V3, V4)
TD-W8961NB   (V1, V2, V3*)
TD-W8961ND
TD-W8968
TD-W8970

*Posiblemente vulnerable. No he podido comprobarlo aún.


PD: La semana que viene traeré la lista de claves para estos routers...  ;)
#15
Aquí tenéis el programa final para generar los diccionarios para estos routers. Ejecutad TPLink-GenKeysFinal y seguid las instrucciones. Introducid la BSSID del router o la fecha de lanzamiento al mercado del router si la sabeis como argumento para obtener un diccionario reducido específico para el modelo del router que estáis atacando, eso puede reducir el tiempo de crackeo a unos pocos minutos. Si no sabeis ninguno de estos datos, no metais argumentos y listo.  :P

Descarga: http://www.mediafire.com/download.php?vtu146u849ogueq

Si quereis más velocidad aún, no protestéis y ayudad a completar la tabla de abajo aportando la información de estos routers.
;D






Post original:
Recientemente TP-Link ha sacado unos routers al mercado, los TD-W8970, TD-W8968, y TD-W8961ND que aparecen bajo el nombre TP-LINK_XXXXXX. Su clave por defecto en WPA / WPA2 y WEP es es de 10 y 13 caracteres respectivamente (aparentemente de 0-9, y A-Z) y es generada aleatoriamente por el EasySetupAssistant.

En WPA/WPA2 que es lo que interesa, un ataque de fuerza bruta acelerado por una GPU media a unos 20000 keys/s tardaría 3610 / 20000 = 5796,8011 años. Esto se puede lograr con cualquier tarjeta gráfica de gama media-alta en un ordenador normal, por lo que parece imposible de romper en un tiempo razonable. Pues resulta que desensamblando el asistente de configuración, he visto que el encargado de hacer esto es un generador de congruencia lineal que usa seeds de 32 bits. En otras palabras, el conjunto de claves posibles tanto para keys de 10 caracteres (WPA/WPA2) como de 13 caracteres (WEP) es de 232. El código en Python de este generador es:

chars = "2345678923456789ABCDEFGHJKLMNPQRSTUVWXYZ"
def gen(seed, length): #length=10 for WPA/WPA2, length=13 for WEP
   key = ""
   for i in range(length):
       seed = (seed)*0x343FD + 0x269EC3
       key += chars[((seed >> 0x10) & 0x7FFF) % 0x28]
   return key


Por si esto fuera poco, cada clave en el conjunto de claves está duplicada ya que las seeds i y (i+0x80000000) generan la misma clave para todos los enteros i de 32 bits. Esto hace que las combinaciones totales se reduzcan a 231. De esta manera, podemos encontrar la clave en un máximo de: 231 / 20000 = 1,24 días. Esto se vuelve aún más grave si tenemos en cuenta que 1,24 días es el tiempo requerido a esa velocidad en el peor de los casos. El tiempo medio se situaría en 0,62 días. Por no hablar del tiempo que lograría un peligroso gamer con su ordenador nuevo listo para mover el Crysis 3 en ultra. En ese caso estaríamos hablando de una media de 3 o 4 horas.

He creado un pequeño programa en C++ para comprobar si claves generadas para otros routers TP-Link eran vulnerables. Tan solo lo tenéis que abrirlo, introducir "1", y poner la clave para comprobar si es vulnerable. Desde luego, todas las claves generadas para los TD-W8970, TD-W8961ND, y TD-W8968 están afectadas al compartir el mismo EasySetupAssistant. Si tenéis otro router distinto de TP-Link, pero con una clave aleatoria, no estaría de más que la comprobaseis. Descarga (Windows + Linux + Sources): http://www.mediafire.com/download.php?oyrnt45sljlxa5a

También me mosquee mucho con respecto a cómo se generaban los primeros 4 dígitos en hexadecimal de la clave, lo mismo me volví paranoico, o lo mismo no es sano desensamblar a las 5 de la mañana. En todo caso si alguien por aquí quiere contribuir a sembrar el caos y la destrucción a la seguiridad en Internet, podría echarle un ojo al asistente (basta con poner un breakpoint en 00474BF0, o con mucho cuidado poner la EIP ahí). Cada bit que determinéis reduciría el tiempo de descifrado a la mitad. Sólo eso me parece motivación suficiente para continuar.

Otra cosa que estaría genial es que alguien generase el diccionario para estos routers (ocuparía 22,5 GB), o que modifique algun crackeador de handshakes por GPU open source para que se centre en las claves para estos routers. Por último, ya spameé hace tiempo anunciando que hacía algunos humildes tutoriales sobre cracking; pues como esto trae OllyDbg de por medio, pues hice un tutorial en YouTube acerca de cómo encontrar estos fallos usando este como ejemplo, quizás a alguien le resulte interesante. ¡Que lo disfrutéis!
:D
Post: http://functionmixer.blogspot.com.es/2013/03/vulnerabilidad-de-tp-link-al-generar.html

Tutorial:
[youtube=560,315]http://www.youtube.com/watch?v=-M0naAtUZM0[/youtube]
#16
Cita de: TrashAmbishion en  9 Marzo 2012, 14:23 PM
Bro me puedes subir los videos a otro lado, pq ahora no se porq no me deja bajarlos de youtube...

salu2
Puedes usar JDownloader. Siempre me ha funcionado perfectamente para bajar videos de Youtube.
Siento no poder subirlo a otro sitio, pero resulta que gracias a Vomistar me tiro subiendo unas horitas por video.

Muchas gracias a los demás por el apoyo  ;D
Respecto al debate "lectura" vs "videotutorial" (obviamente prefiero lo segundo), hay tantos detalles que comentar mientras desensamblas que acabarías con documentos de 20 páginas si se pretendiese explicar todo.
Por cierto, si molestan las interferencias del micro, que conste que voy a comprarme un nuevo micro. : )
¡Un saludo!
#17
¡Hola a todos!
Os dejo un link a una lista de videos que tengo en la que voy subiendo regularmente desde el mes pasado.
No os preocupéis por la continuidad de estos videos, no abandonaré este proyecto al poco tiempo, como ha pasado en tantas otras ocasiones.

Son relativamente sencillos, e intento explicar como "entender" el algoritmo que está detrás de una comprobación de un serial.
No se si le puede ser útil a alguien, de todas formas aqui están:

http://www.youtube.com/playlist?list=PL6A15554AA4579074&feature=plcp

Cada 5 videos, subiré un vídeo "especial", por llamarlo de alguna manera  :D , relacionado con esteganografía.
Tengo varios tutoriales más grabados además de los que veis en la lista, pero prefiero subirlos con regularidad, 1 por semana.


PD: Espero que esto no se considere spam ni nada similar.
Mi intención no es dar el coñazo para subir visitas.
De hecho estaría muy agradecido si alguien me pudiese sugerir algun crackme interesante para esta serie de videos.

¡Un saludo!
#18
Hacking Wireless / Re: Nuevas JAZZTEL_XX WPA/WPA2
12 Diciembre 2011, 20:12 PM
Parece ser que los firmwares de los routers Huawei tienen licencia GPL; puede sonar muy extraño que la compañía libere sin más el código fuente de estos routers, pero esto es algo que ya ha sucedido con los Huawei HG612 y HG553.

Yo no tengo este router, lo tuve mejor dicho. Aun así envié a Huawei un correo pidiéndo el código fuente educadamente y se me "escapó" lo de Jazztel. Así que ellos respondieron que tiene que ser Jazztel a quien tenemos que pedir el código fuente ya que ellos son el cliente directo. Ahí ya no puedo continuar porque ya no soy cliente. Pero pediría por favor a aquellos que sí lo seais a contactar a Huawei (contacto Huawei) y Jazztel para que entreguen el código fuente. Están obligados a hacerlo!
Creo que debemos intentarlo, ya que sería un gran avance; ya no solo por el patrón en sí sino por facilitar la tarea de modificar el router.

---

Por otra parte estoy intentando desensamblar el firmware del router, por si a alguien le interesa el .bin es un SquashFS + LZMA, se extrae facilmente. Y los ejecutables son de arquitectura MIPS, que con qemu-mips se pueden emular (con dificultades). Pero eso no es lo que interesa. Estuve hace unos días desensamblando con IDA Pro uno de los binarios y he encontrado una llamada para hacer un SHA1 de una cadena en un sitio que me ha llamado la atención.

Necesito por tanto varias combinaciones ESSID; MAC; Clave para hacer pruebas y por fuerza bruta ver si realmente se emplea SHA1 para hallar la clave. Antes de que me lo digais, se que SHA1 devuelve caracteres hexadecimales y la clave es de 0-9;A-Z pero la funcion continua despues de crear el hash. Supongo que será algún sistema Base16 -> Base36.
Agradecería mucho que alguien me pudiese enviar alguna combinación por MP si no es inconveniente
¡Muchas gracias!
#19
OK. Gracias por la respuesta!
Lo voy a comprobar, aunque parece que va a ser algo dificil. Si saco algo en claro (que lo dudo) lo posteo.
#20
Saludos!
Ultimamente me ha dado por la aficion de usar exploits entre dos maquinas virtuales, grabar el proceso y subirlo a YouTube. Bueno, me dejo de publicidad y voy al grano.

Instalé una version antigua de Dropbear (la 0.38) y vi que esta era vulnerable. El problema en concreto era este:

Dropbear SSH Server DSS Verification Vulnerability: http://www.securityfocus.com/bid/10803/info
Afecta desde la version 0.42 hacia abajo.

Comentan de que esta causado por: "freeing of uninitialised variables in the DSS verification code" / " liberación de las variables sin inicializar en el código de verificación de DSS"
Esto a mi me dice poco. Y tampoco voy en plan script kiddie, usando exploits sin saber lo que hacen.

Así que pregunto:
¿Alguien conoce algun dato mas relevante sobre esta vulnerabilidad, como explotarla, o algun otro detalle relevante sobre este problema?


PD: Se que ya tiene sus añitos el programa y el fallo, pero tengo interes en saber mas sobre esto despues de haberme pasado la tarde buscando y sin conseguir resultados