El libre pensamiento para un internet libre

No estas registrado.  

#1 02-10-2015 21:20:32

kcdtv
Administrator

Registrado: 14-11-2014
Mensajes: 5,730

TPLink-GenKeysFinal.py de AlexAltea ¡TP-Link al descubierto!

                          TPLink-GenKeysFinal.py de AlexAltea :
                              Para llevar ataques por diccionarios redondos
         contra los routers TP-Link configurados con el "EasySetupAssistant."

alexaltea2.jpg

  • Nombre:                  TPLink-GenKeysFinal

  • Autor:                     AlexAltea

  • Fecha de creación:  marzo 2013

  • Lenguaje:                Python

  • Licencia:                 GPL v 3

  • Dependencias:         Python

  • Descripción:            Generador de diccionario de ataques para los routers TP-Link configurados con el "EasySetupAssistant"

  • Web:                       Desgraciadamente el blog de AlexAltea con el full dislcosure original ha desaparecido....
                                    Un hilo de referencia es [Vulnerability] WPA2 cracking dictionary for TP-Link Routers @ Forum backtrack

  • Descarga:               TPLink-AttackDictionary-v1c.x.zip (descarga original desde mediafire)

 
            TPLink-GenKeysFinal es el resultado del excelente trabajo de AlexAltea sobre los routers del famoso fabricante TP-Link.
  No voy a entrar aquí en los detalles sobre la investigación de AlexAltea : Lo haré en otro tema en nuestro foro "Estudio de algoritmos y busqueda de la nueva brecha"
  La vulnerabilidad encontrada por AlexAltea es explotable y se funda en el algoritmo creado por TP-Link para generar la llave WPA propuesta cuando se configura un router con el "EasySetupAssistant".
  Se usa una semilla predecible (el tiempo en segundos) lo que hace el bruteforce factible - aunque no tengamos idea de la fecha de puesta en servicio del punto de acceso - gracias al generador de AlexAltea.

             Una brecha de seguridad muy severa ya que la mayoría de los usuarios optan por una configuración asistida con el "EasySetupAssistant"
Y muchos de ellos no cambian la llave WPA... Además esta brecha afecta a un gran parte de los dispositvos:

lista "modelos afectados" de AlexAltea escribió:

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.

modo de empleo

  Se trata de un script en python así que necesitamos tener python instalado
Esta incluido "por defecto" en 99,99% de las distribuciones GNU-Linux wink
   Una versión vieja de python nos bastará : Es un script en consola que no necesita ninguna librería extra.

  Lo primero es descargar el paquete *.zip que nos ha hecho AlexAltea :

  Lo segundo es descomprimir el paquete.

unzip ruta_exacta_hacía_ /TPLink-AttackDictionary-v1c.x.zip

  Echamos un ojo : alexaltea3.jpg

-----------------------------------------------------------------------------------------------
edit
  Rectifico una cosa importante
  El script en python no es el único fichero que necesitamos.
  El script hace una llamada al ejecutable en C "TPLink-GenKeys2" que tenemos al lado del script
  Podéis ver aquí la llamada en el código python :

alexaltea6.jpg

   ¿Porque Alex Altea ha hecho las cosas así?
  Eficiencia.
  El programa en C se encarga solo de generar a toda velocidad las cadenas utilizando las semillas (tiempo en segundos)
  Y no hay nada mejor que el C para esto.

  Pequeño problema : los binarios vienen ya compilados y no funcionan, no podremos generar el diccionario y obtenemos este error:

alexaltea7.jpg

  Solución smile : Fiel a la linea del open source, AlexAltea ha dejado el código fuente para compartir su trabajo. smile
Podemos compilar otra vez los binarios y resolvemos la situación.
  Tecleamos en la terminal que tenemos abierto en la carpeta TPLink-AttackDictionary-v1c

g++ -Wall -o TPLink-GenKeys2 TPLink-GenKeys2.cpp

  ¡Ya esta!
  Podemos lanzar el script.

-----------------------------------------------------------------------------------------------



  Para ejecutar un script python nos basta con situarnos

cd TPLink-AttackDictionary-v1c.x

   Y invocar a python especificando enseguida el nombre del script a ejecutar

python TPLink-GenKeysFinal.py

  El script tiene 4 opciones

  1. --continue  Do not display the "Continue?" message.
                    No pedir confirmación

  2. --bssid XX:XX:XX   Use the release date of the router as starting date OR
                    Indicando el bssid se usa la fecha estimada de producción del dispsoitvo

  3. --start DD/MM/YYYY    use a custom starting date OR left it blank to use the default date (01/01/2010).
                    Podemos configurar un fecha precisa o dejarlo en blanco lo que nos hará empezar el brute force desde el 01 de enero 2010

  4. --end DD/MM/YYYY     Use a custom ending date OR left it blank to use the current date (02/10/2015).
                    Podemos configurar una fecha limit pàra parrar nuestro brute force. Si no lo usamos se hará el brute force hasta el tiempo actual del sistema

                     


  La eficiencia del ataque depende en nuestra facultad a determinar de la forma la mas precisa posssible nuestro intervalo de tiempo que tiene que abarcar la fecha de configuración del router)
Visitando el sitio de tp-link o una pagina como wiki-devi tenemos ya una fecha de inicio segura.
  Suponemos que tenga que hacer un brute force contra un TL-WR1043ND v2.
   Visitando wikidevi veo que el routeur fue aprobado por la FCC el 31 de Diciembre 2013 (estos datos salen también en la documentación oficial TP-Link.
  En lugar de empezar el brute force desde 2010 lo haemos desde 2014 y ya hemos hecho dos tercios del camino con colo indicar una fecha de inicio en 01/01/2014

python TPLink-GenKeysFinal.py --start 01/01/2014

  Si no añadimos ninguno argumento se nos propone la creación de un diccionario con los parámetros por defecto :

  1. el brute force se inicia con la fecha 01/01/2010

  2. Se acaba con la fecha de hoy

alexaltea4.jpg

  Vemos con el tamaño del diccionario "máximo" que no llegamos a los 2GB de peso y que hablamos de un poco más de un día de crack con CPU.
Para los que poseen una tarjeta gráfica compatible hashcat o pyrit es algo trivial : un par de horas.

   
   Si indico una fecha de inicio como en mi ejemplo de crack de un TL-WR1043ND v2, el brute force sería mucho mas liviano que con los parámetros por defecto : alexaltea5.jpg
  Hemos quitado los 3 cuartos de los passes-
  ¿Que añadir a esto?...
    Los routeurs vulnerables suelen tener un essid por defecto de tipo TP-Link_XXXXXX
    Suelen tener el WPS y podremos encontrar en los PROBES WPS el modelo exacto.
   El generador es muy rápido : con mi computadora de recursos modestos ha tardado menos de 7 segundos en generar 300 MB de diccionario :

alexaltea8.jpg

   El diccionario se guarda al lado del script y se llama output.txt :

alexaltea10.jpg

¡Ojo! : Es importante renombrar el diccionario o cambiarlo de directorio para no borrar el trabajo hecho si volvemos a utilizar el generador (reescribirá "output.txt" con el nuevo diccionario)

Queda felicitar y dar las gracias a AlexAltea por su trabajo de primera del cuál les hablare mas en detalle en un próximo tema.
   Buenas noches amig@s smile

Ultima edición por kcdtv (05-10-2015 12:15:45)

Desconectado

#2 03-10-2015 20:41:03

dynyly
Usuario

Registrado: 19-04-2015
Mensajes: 315

Re: TPLink-GenKeysFinal.py de AlexAltea ¡TP-Link al descubierto!

gracias amigo lo que no sabia que hubiera tantos modelos afectados
ya sabia lo de la actualizacion pero no que habia tantisimos modelos tocados
una clalve de 8 creo que poco iba a durar un brute

Desconectado

#3 03-10-2015 23:06:28

kcdtv
Administrator

Registrado: 14-11-2014
Mensajes: 5,730

Re: TPLink-GenKeysFinal.py de AlexAltea ¡TP-Link al descubierto!

una clalve de 8 creo que poco iba a durar un brute

Todo va a depender del juego de caracteres empleado...
Aqui tenemos a letras mayúsculas y números : 36 posibilidades.
36⁸= 2,821109907×10¹²
Con una tarjeta vídeo de buena calidad que va a 100 000 laves por segundos representa... casi un años de brute force... ( 326 días y medio )


gracias amigo lo que no sabia que hubiera tantos modelos afectados

Mas o menos todos los modelos que salieron por 2012-2013 con esta versión del CD de instalación con su "easySetupAssitant"
saludos

edit
He editado el primer post para explicar como arreglar  un bug y he añadido una prueba de velocidad

Ultima edición por kcdtv (05-10-2015 12:28:39)

Desconectado

Temas similares

Tema Respuestas Vistas Ultimo mensaje
2 171 Hoy 15:25:52 por Patcher
Pegado:
521 340002 10-05-2023 18:24:28 por Betis-Jesus
Hospital clinic dump por wifiyeah  [ 1 2 ]
27 1242 09-05-2023 21:32:44 por kcdtv
Hacktivismo por CHARGER22
1 205 08-05-2023 19:53:26 por kcdtv
Pegado:
Pegado:: Script multiuso wifi para Kali y otras distros por v1s1t0r  [ 1 2 3 18 ]
447 66090 22-04-2023 15:31:13 por kcdtv

Pie de página

Información del usuario

Ultimo usuario registrado: klurosu
Usuarios registrados conectados: 0
Invitados conectados: 15

Estadisticas de los foros

Número total de usuarios registrados: 2,446
Número total de temas: 1,637
Número total de mensajes: 15,586

Máx. usuarios conectados: 373 el 30-09-2019 15:04:36