El libre pensamiento para un internet libre
No estas registrado.
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:
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.
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
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 :
TPLink-AttackDictionary-v1c.x.zip @ Mediafire (Descarga original de AlexaAltea)
Lo segundo es descomprimir el paquete.
unzip ruta_exacta_hacía_ /TPLink-AttackDictionary-v1c.x.zip
Echamos un ojo :
-----------------------------------------------------------------------------------------------
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 :
¿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:
Solución : Fiel a la linea del open source, AlexAltea ha dejado el código fuente para compartir su trabajo.
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
--continue Do not display the "Continue?" message.
No pedir confirmación
--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
--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
--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 :
el brute force se inicia con la fecha 01/01/2010
Se acaba con la fecha de hoy
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 :
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 :
El diccionario se guarda al lado del script y se llama output.txt :
¡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
Ultima edición por kcdtv (05-10-2015 12:15:45)
Desconectado
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
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
Tema | Respuestas | Vistas | Ultimo mensaje |
---|---|---|---|
¡Vienen grandes cambios! por Takomou
|
2 | 171 | Hoy 15:25:52 por Patcher |
Pegado: |
521 | 340002 | 10-05-2023 18:24:28 por Betis-Jesus |
|
27 | 1242 | 09-05-2023 21:32:44 por kcdtv |
Hacktivismo por CHARGER22
|
1 | 205 | 08-05-2023 19:53:26 por kcdtv |
Pegado: |
447 | 66090 | 22-04-2023 15:31:13 por kcdtv |
Ultimo usuario registrado: klurosu
Usuarios registrados conectados: 0
Invitados conectados: 15
Número total de usuarios registrados: 2,446
Número total de temas: 1,637
Número total de mensajes: 15,586
Atom tema feed - Impulsado por FluxBB