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 - hrodgar

#1
Introducción
A la hora de comprobar la vulnerabilidad del WPA, a día de hoy continúa siendo imposible de romper el cifrado. En cuanto a puntos débiles, el ataque contra la clave PSK es la práctica habitual, donde se centran los programas como Aircrack y coWPAtty.

Así pues, si el sistema goza de buena robustez en la actualidad, nos planteamos... hay algún otro punto débil que afecte el sistema? Pues si, estudiar el proceso de generación de los datos preconfigurados en los equipos subministrados por los fabricantes y/o ISPs.

Hay un dato relevante para este planteamiento: La mayoría de gente que dispone de una red inalámbrica mantiene los parámetros preconfigurados en los equipos, tanto WEP/WPA, ya sea por el desconocimiento de la materia, o simplemente por dejadez. Y si no, para comprobarlo basta con hacer un escaneo de redes en el que observarás que un alto porcentaje de las redes encontradas mantienen los parámetros de fábrica o establecidos por el ISP en su ESSID, lo que da a pensar que con la contraseña pasa lo mismo.

Con esto, pensaréis que los fabricantes y/o ISPs utilizan un proceso muy complejo para la generación de estos parámetros, con el fin de evitar que toda la fortaleza del protocolo de cifrado (al menos en el WPA) se vea mermada por culpa de este proceso. Pues no es del todo así.

De todos es conocido la fragilidad de los algoritmos de generación de estos datos en redes tipo como las Wlan-XX, Dlinkwireless, adsl-xxxx, ..., que han llevado a la generación de aplicaciones que utilizan la fuerza bruta y/o la aplicación inversa del algoritmo facilitando el descubrimiento de la clave.

En este caso, nos propusimos aplicar esta prueba en las redes WEP/WPA SpeedTouchXXXXXX de routers del fabricante Thomson.

El protagonista: Router Thomson.
Como veremos, en este caso la fragilidad en la implementación de los datos preconfigurados afecta al router, con lo que puede verse afectado no uno solo, sino otros ISPs e incluso de otros países.

Estas redes son generadas por routers Thomson modelos 580i i 585v6. A la vista del proceso de instalación y configuración de estos routers, se aprecia que en el propio software se encontraba el algoritmo para la generación de los datos preconfigurados. En este caso, el único dato introducido durante el proceso que haga única una red, es el número de serie del router. Esto ya da una pista importante.

Anteriormente, había leído algo sobre Kevin Devine, sobre un descubrimiento similar que había hecho en el caso de las redes Eircom, en las que había descifrado el algoritmo que utilizaba para la generación de la clave WEP con que vienen configuradas.

Por lo que me puse en contacto con el, le expuse el caso, y nos pusimos a investigar. Mediante ingeniería inversa, Kevin pudo establecer un primer apunte de cómo eran generados los parámetros basándose en el número de serie. A partir de ahí, era necesario disponer de un router para las "practicas", dado que si no el programa de instalación se paraba.

Así que me puse a buscar un "donante". Gracias a Pazienzia, dispusimos de uno. Luego nos dimos cuenta que hubiera ido bien enviarle también la tarjeta wifi usb que acompaña el router (ver texto completo de Kevin), pero no fue necesario dado que el asunto tenía expectación y contó también con la colaboración de otra gente. A partir de aquí, la cosa fue rodando y rodando...

El algoritmo al descubierto. Caso redes SpeedTouchXXXXXX.
Como he dicho, se pudo comprobar que la base del proceso es el número de serie. Así que, vamos a analizar por ejemplo CP0615JT109 (53). De las observaciones realizadas se llegó al siguiente planteamiento:

CP YY WW PP XXX (CC)

Donde, que significa cada cosa?...

YY es el año de fabricación.                    ( 2006 ) ?
WW es la semana del año.                      ( 15 ) una semana de Abril ?
PP es el código de producción/fabricación. ( JT ) ?
CC es el código de configuración.             ( 53 ) ? del estilo 00 - ZZ (0-9/A-Z)

Sobre el valor XXX, solo especular. Quizá representa el número de unidad?

Con esto, y tomando como ejemplo "CP0615JT109 (53)" el proceso es el siguiente:

Se eliminan los valores CC y PP del número de serie

   "CP0615109"

Convertimos los valores de XXX a hexadecimal.

   "CP0615313039"

Procesamos mediante el algoritmo SHA-1

   742da831d2b657fa53d347301ec610e1ebf8a3d0

Los últimos 3 bytes hexadecimales se convierten en una cadena ASCII de 6 bytes, los añadimos a la palabra "SpeedTouch", con lo que tenemos el ESSID por defecto.

   "SpeedTouchF8A3D0"

Los primeros 5 bytes hexadecimales se convierten en una cadena ASCII de 10 bytes,  con lo que tenemos la clave WEP/WPA por defecto.

  "742DA831D2"

Y esto es todo...

Recuperación.
El método desarrollado aquí utilizando la fuerza bruta es un poco simple...  pero suficiente por el momento. Se utilizan los datos del ESSID para averiguar el hash entero, mediante la aplicación del algoritmo sobre los posibles números de serie y por comparación.

Teóricamente, con los 3 octetos del ESSID en el caso de estas redes, no se requieren más de 2 intentos para tener acceso satisfactoriamente a la red.

En casos en que solo se utilizan 2 octetos en el ESSID se generan muchas más claves potenciales, así como tentativas a realizar (siendo una media de 80).

Aún así, esto mejora notablemente las posibilidades a un atacante de acceder al router, aún protegido con WPA - más si este puede capturar un handshake y utiliza el Aircrack, Cain&Abel o incluso el coWPAtty en modo offline para descifrarlo.

En todo caso, hay que recordar que esta herramienta la podemos utilizar para que podamos comprobar en nuestra red este punto débil, o con el permiso del propietario.

La herramienta: stkeys (actualizado: 19/04/08)

- Descarga del código fuente en español (compilable en linux/windows):
http://download.wifislax.com:8080/stkeys_ES_src.zip
m5d: 6472d51a88010754756154d93d7fb2be

- Linux (compilado+instalador+lanzador). Desde cónsola teclead:
Citar
wget http://www.wifiway.org/stkeys/install.sh.gz
gzip -d install.sh.gz
chmod +x install.sh
./install.sh

- Windows (compilado):
http://download.wifislax.com:8080/SpeedTouchKeys-v0.1.zip
MD5: 2b5ea7d4539ea5b02fc8ea569e5566f6


(ver "notas del programa" al final de este mensaje, sobre cambios de parámetros antes de compilar)

Para compilar el código en linux, usar gcc:

Citargcc -fomit-frame-pointer -O3 -funroll-all-loops stkeys.c sha1.c -ostkeys

Es posible que al compilar os lance unos errores  tipo "implicit declaration...", que no afectan al proceso. Destacar que en el código se ha utilizado la implementación del algoritmo OpenSSL SHA-1, que es por lo que realiza el proceso muy rápido.

Al ejecutar el programa, os saldrá:



Caso práctico
   
Ejemplo de uso en un router Thomson modelo ST585v6 con ESSID "SpeedTouchF8A3D0":



En este ejemplo, la clave correcta es la obtenida en la primera opción.

Créditos:
En primer lugar, a Kevin Devine, por el fantástico trabajo realizado para hallar el algoritmo y desarrollar esta aplicación. En el siguiente enlace, podréis hallar (en inglés) un "howto" del proceso técnico y otros datos. Incluye una animación en flash en la que se comprueba la velocidad del proceso:

http://weiss.u40.hosting.digiweb.ie/stech/

También agradecer a Pazienzia (miembro del foro Elhacker.net) por prestarnos su "olvidado" router para las pruebas, así como a Renzo y bonebag por el adaptador USB.

Y por último, a los foros y foreros de seguridadwireless y Elhacker.net, que sin la aportación de los datos necesarios no hubiera sido posible contrastar dicha información, así como a Hwagm por prestarme un hueco para alojar el programa; y por supuesto, a la esencia de Pianista ;-)

Notas sobre el proyecto:
Este proyecto continúa vivo. A los que tengáis ganas de investigar el tema mas a fondo, en el enlace indicado en los créditos encontraréis curiosidades como que se han hallado más algoritmos, parece que relacionados con el sistema de cifrado WEP y posiblemente antiguos.

Es por esto que aunque lo aquí desarrollado sirve para redes WEP o WPA, es posible que para las WEP no sea 100% fiable.

De todas formas, para comprender un poco el alcance del proyecto, recomiendo visitar el siguiente link:

http://www.gnucitizen.org/blog/default-key-algorithm-in-thomson-and-bt-home-hub-routers/


Notas del programa: (actualizado 17/04/08)
No lleva control de versiones. Considérala la versión 0. Si hay futuras actualizaciones se indicará en ellas.

Esta versión en español es idéntica a la inglesa, salvo en un punto: por defecto está implementada para tener en cuenta el período 2005-2007 en cuanto a la fabricación del router (mientras que la inglesa solo abarca hasta el 2006).

Aunque es poco probable que sea aplicable el año 2007, me he permitido el lujo de ampliarlo; el tiempo de más empleado en un pc normal en procesar el código por añadirlo creo que compensa el asegurar la obtención de la clave (estamos hablando de tardar 5sg a tardar 8sg, y no implica obtener más falsos positivos).

Este parámetro es modificable. Basta antes de compilar de realizar el cambio en el fichero stkeys.c

17/04/08.- Confirmado que hay modelos del 2004. Por lo tanto, recompilad el código, modificando en el stkeys la línea donde se introduce el parametro de los años, y recompilad:
Citar
        // generate values only for 2005/2007..change if you want.

        for(year = 5;year <= 7;year++) {
por...
Citar
        // generate values only for 2004/2007..change if you want.

        for(year = 4;year <= 7;year++) {
#2
Bueno... vamos por partes

Antes que nada gracias a los que habeis colaborado con vuestros datos, aportes y otras cosas "esenciales" ;) (Pianista, NeoXhk, ChimoC, The_often, *dudux, jotahacker, menofthemoon...sorry si me dejo alguno... :-[).

Deciros que tenemos "avanzado" el tema de descifrar el algoritmo que se utiliza para generar el ESSID y la WEP/WPA key de estas redes "SpeedTouchHHHHHH" sobre router Tompson SpeedTouch, pero NO COMPLETADO.

A modo de resumen, se ha utilizado la técnica de la ingeniería inversa sobre el software de instalacion del router, de manera que se ha podido averiguar la mayor parte del proceso de generación de los datos preconfigurados.

Entre otras cosas, se ha averiguado que se utiliza combinaciones de distintos sistemas de cifrado (en concreto XOR y SHA1) utilizando de base el número de serie del router sobre una "palabra mágica", ... y como no estamos seguros.... hasta ahí puedo leer jejejeje.

Todo ello, gracias a Kevin Devine, que creo os sonará, ya que es el que sacó el algoritmo de una red irlandesa, de la que se publicó algo en este foro.

El problema que tenemos es el siguiente:

Aun disponiendo de estos datos, no podemos progresar en la confirmación al 100% de los pasos dado que durante el proceso de "ingenieria inversa", se necesita disponer del router para poder completar la operación. Me explico: el programa "busca" el router conectado al pc, y una vez detectado "lee" los datos que necesita y continua con la operación.

Como nadie de nosotros, ni Kevin, dispone de un router Tompson SpeedTouch de estos, pues estamos estancados.

Asi que ahí va mi petición:

Alguno puede prestarnos un router SpeedTouch modelo 585v6 o 580???


jejeje... ya se... que miedo... pero sin el ... nosotros no podemos continuar...

hay la posibilidad de hacerlo por control remoto (tipo vnc), pero requiere que el propietario deje trastear el router y su pc (y que sepa ingles, para que haga "manos" de Kevin jejeje)

Tambien, si alguno se puede permitir el lujo de financiar la compra de uno de estos por ebay (que sale, por 30-40  euros...), pues se agradecería un monton jejeje.

En fin,.... yo ya me "lanzo" y financio el envio/devolucion del router a irlanda jejeje...

A ver si los reyes magos nos dan una mano....

Se agracederá cualquier idea. Saludos y feliz año nuevo!!!
#3
Pues eso... mandadme un IM. Gracias.... ;)

Añadido: las H del SpeedTouch son dígitos hexadecimales.