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ú

Temas - AlexAltea

#1
Muy buenas! Acabo de encontrar en un programa un buffer overflow algo gracioso:

Se leen todos los bytes de un archivo y se guardan en un buffer en la dirección 0x088399C8. Hasta ahí todo bien. Luego se comprueban cuáles de todos esos bytes están en el rango 'A'-'Z' y si es así, se meten en un segundo buffer de caracteres en el stack. Si rellenamos el archivo con muchos bytes 'A'-'Z', este segundo buffer peta y acabamos con varios registros modificados, incluido el EIP.

El problema es cómo desviar la ejecución a la dirección que me interesa si solo soy capaz de meter bytes de la 'A' a la 'Z' en el EIP, es decir, solo puedo lograr cosas como 0x41414141, 0x41424344, 0x534E4F50, ... En el EAX o ECX creo que aún podría hacer un apaño para que cogiese un valor arbitrario.
¿Alguna idea de por donde seguir? ¿Es esto una limitación imposible de saltar al diseñar un exploit?

Tan solo bastaría lograr de alguna manera un salto a 0x088399C8 para lograr la queridísima "ejecución de código arbitrario", por desgracia 0x08, 0x83, 0x99 y 0xC8 no son "letras mayúsculas".
:-\
#2
Al igual que hice con los routers de TP-Link, aquí tenéis el programa final para generar los diccionarios para estos routers (Linksys y D-Link). Ejecutad Pure-GenKeysFinal y seguid las instrucciones. Introducid la BSSID del router o la fecha de lanzamiento al mercado del router si la sabéis 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 sabéis ninguno de estos datos, no metáis argumentos y listo.  :P

Descarga: http://www.mediafire.com/download.php?i2055rwj1pt8zn7
Si quereis más velocidad aún, no protestéis y enviadme la BSSID y fecha de fabricación de los routers que he puesto abajo.  ;D






Post original:
En lo que recopilamos la lista de modelos, BSSID y fecha de fabricacion de los routers TP-Link, he estado desensamblando asistentes de otros routers solo por curiosidad. Y traigo muy buenas noticias: Algunos routers de Linksys y D-Link usan un sistema casi idéntico para generar las claves. Realmente podría copiar y pegar el 90% de lo que escribí acerca del fallo en los routers TP-Link, así que pondré sólo lo más relevante y si queréis más información podeis leer el hilo original. El Linksys EasyLink Advisor y el D-Link Quick Setup Wizard sufren el mismo fallo al estar basados en Network Magic, un software creado por Pure Networks (que pertenece a Cisco/Linksys). Bueno, no sé, me ha parecido un dato curioso, porque si vendieron ese software a D-Link, pudieron también haberlo vendido a otros fabricantes y podría haber otros routers afectados... Pero bueno, vamos a lo que nos importa:  ;)


La función que genera las seeds es idéntica a la de los routers TP-Link, la podeis encontrar aquí.
La función que genera las claves a partir de las seeds es muy parecida (comparadla con la de TP-Link, si quereis):
windows = "1I2Z0O5SUV"
macosx  = "B8DO0I1S5UVZ2"  #Solo para los Linksys instalados en Mac OS X
def genKey(seed):
   key = ""
   for i in range(10):
       while True:
           seed = ((seed)*0x343FD + 0x269EC3) % (2**32)
           edx = ((seed >> 0x10) & 0x7FFF) % 0x24
           if edx >= 0xa:
               edx += 0x37
           else:
               edx += 0x30
           if chr(edx) not in windows:
               key += chr(edx)
               break
   return key

Como veis, esta vez no se usa una lista de caracteres válidos, sino que se generan caracteres 0-9; A-Z y se descartan los aquellos contenidos en la lista de caracteres prohibidos (que podrían llevar a confusión como '0' y 'O') hasta lograr tener 10 caracteres. Como vimos en el hilo de TP-Link, podemos aprovechar esto para romper la clave en minutos con GPU o unas pocas horas con CPU. Fin de la historia.  :P


Routers afectados de Linksys:
CitarWAP610N (En Windows los caracteres prohibidos son: "1I2Z0O5SUVB8")
WRT110
WRT120N
WRT160N    (V1, V2, V3)
WRT160N-HP (V1*)
WRT160NL
WRT310N    (V1, V2)
WRT320N
WRT400N
WRT54G2
WRT610N    (V1*, V2)
Vienen a ser principalmente todos los routers con esta forma plana, rectangular y redondeada: FOTO
En todos estos routers me he encontrado con una curiosidad / problemilla: Como veis en el código de arriba, los caracteres prohibidos varían entre el asistente de instalación de Windows y el de Mac OS X, pero creo que el algoritmo no.  Además, otro dato interesante, el router WAP610N usa una lista de caracteres prohibidos algo distinta bajo Windows (nada que no tenga solución XD).


Routers afectados de D-Link:
CitarDGL-4100
DGL-4300
DIR-615 (not all revisions)
DIR-625
DIR-635
WBR-1310
WBR-1310 rev.B
WBR-2310
Al no existir un asistente para Mac OS X, no tenemos el problemilla de los Linksys. Algo curioso, es que el modelo EBR-2310, aún sin tener WiFi, tenía en su asistente de configuración llamadas a la función esa. A decir verdad, me surgieron algunos problemas al analizar al asistente de D-Link. Solo puedo confirmar que en su interior "existe" una función que genera nuestras queridas claves WPA2 inseguras. Pero no se nada más, así que mejor ir confirmarlo primero. Como dije, todos los modelos afectados son los que tienen el famoso D-Link Quick Setup Wizard de Pure Networks. Por ejemplo: CAPTURA1, CAPTURA2 (fijaos en el logo abajo a la izquierda que pone "Network Magic").


Aquí teneis los programas para trastear con el fallo este... Funcionan igual que los de TP-Link, para más info mirad el mensaje original.
Linksys-CheckKeys: Comprobar si una clave es vulnerable. http://www.mediafire.com/download.php?pmqt9aykwxhwkto
Linksys-GenSeeds: Generar seeds de un intervalo de tiempo. http://www.mediafire.com/download.php?kpe7844kqd9bk4j
Linksys-GenKeys: Generar un diccionario de keys a partir de las seeds. http://www.mediafire.com/download.php?2h9y0pkay9id1rt
*Se llaman Linksys-..., pero también valen para los D-Link.

Lo más importante ahora, creo que es asegurarse de que el ataque es posible en la práctica (a diferencia del otro post, yo no tengo ninguno de estos routers). El ataque contra un Linksys WRT160N pude verificarlo con este video (minuto 4:20). Pero como he dicho en los D-Link y en el resto de los Linksys esto es pura teoría. Para confirmar la vulnerabilidad, pasarme la contraseña por PM; o usad  directamente el Linksys-CheckKeys. Por lo demás, necesitamos lo de siempre:

  • Una listas de BSSID, asociados al modelo y la fecha de fabricación.
  • Feedback sobre los programas. :)

Sé que todo esto es tan tan parecido con lo de TP-Link que hasta podría haberlo posteado en ese mismo hilo (si los moderadores lo creeis oportuno, no dudéis en unir este mensaje al otro hilo). ;D

Saludos! :)
#3
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]
#4
¡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!
#5
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