Reutilizo este post para pegar aquí el anuncio inicial, dejando el primer post solo para actualizaciones e información de la aplicación.
Hola a todos!
Quería anunciarios que en breve publicaré una alfa de una aplicación que llevo desarrollando durante las últimas semanas. Una versión preliminar ya está en el horno y pronto unos cuantos "maestros" van a usarla unos días para ser pulida.
La cosa surgió, como casi todo en la vida, sin querer. Estaba modificando el maravilloso script de Goyfilms, GOYscript, para poder ejecutarlo en un router con openwrt. Tras darme unos cuantos cabezazos, y hacerle pegarse unos cuantos más al pobre GOY, que tuvo la santa paciencia de hacerme caso...

llegué a la conclusión de que GOYscript está diseñado para ser utilizado en un escenario concreto, que dista mucho de ser un sistema sin interfaz gráfica.
Como la aplicación de GOY ya está bien encaminada, y dudo que mi intromisión en su ruta de trabajo sea productiva, me he decidido a programar una aplicación desde cero.
Así que decidido desde el principio cuales son mis objetivos, requerimientos y limitaciones, es decir, la filosofía de lo que debe ser mi aplicación soñada. A saber:
0- Aplicación orientada a la auditoría wireless.
1- Aplicación desarrollada en Python:
Obviamente, porque es el lenguaje que mejor domino, pero tambien por su flexibilidad y rapidez en el desarrollo.
2- Modularidad y reutilización de código: cada una de sus clases, funciones y métodos, puede ser importados por otro script de python, para que pueda ser soporte de futuras características o mejoras. Intentaré en la medida de lo posible que las funciones tengan una entrada y una salida estandar, por lo que evidentemente hace que el código sea ...
3- Orientado a objetos. TODOS los datos y elementos serán clases/objetos. He definido interfaces, objetivos y vectores de ataque como objetos, que son enviados a las funciones, devolviendo otros objetos o el producto de estos. Detesto declarar millones de variables.
4- GPL v.3. Y punto.

, esto implica que todas las herramientas que desarrolle son libres, pero tambien todas las que use tambien lo serán. Por ejemplo, reaver no tendrá (en principio) soporte, ya que su desarrollo ha sido
capado privatizado. Hola Bully

5- Independiente del entorno. Aunque en principio el soporte "oficial" sólo será para Linux, mi idea es que todo sea portable a otros UNIX, siempre que las aplicaciones en las que se apoye el código sean nativas de esa plataforma. Voy a tener especial cariño con los embebidos

.
6- Ejecutable SIN entorno gráfico y SOLO en una terminal. No espereis de mí una aplicación de ventanitas de consola. Toda la salida de datos será procesada y reutilizada por el programa principal.
7- Abierto a colaboraciones. Aunque por ahora estoy solo en esto, TODOS teneis algo que aportar, tanto desarrolladores como usuarios. Cualquiera que demuestre dotes y compromiso, o sencillamente quiera aportar, será bienvenido e incorporado al equipo.
8- Abierto al futuro. El desarrollo de
este script esta aplicación, por su naturaleza, va a dejar la puerta abierta a futuros desarrollos dentro o fuera del proyecto. Espero ver algún día una interfaz web para su gestión, o una suite completa ejecutandose en openwrt... o vete tu a saber!.
En fin, por todo lo dicho y por algo más, doy por nacido a...
WPS-Qi
WPS Python Suite
Si python tiene un zen, WPS tiene un chi (Qi), y adoro los nombres recursivos, así que si no se me ocurre algo mejor, este será su nombre .
Es una herramienta de auditoría WPS y de redes wireles con seguridad WPA/WPA2 en el futuro inmediato.
De momento solo es funcional el ataque por fuerza bruta por WPS, pero en mi hoja de ruta está:
- ataque simultaneo a varios AP
- ataques por diccionario WPS
- WPA/WPA2 con oclhashcat (solo pc) pyrit y aircrack
- Ataques por fake AP (hostapd)
Ataque por WPS:
En el estadio actual, ataque por fuerza bruta con bully. Estoy estudiando todos los trucos para intentar adaptar al máximo el ataque al objetivo ANALIZANDO SU RESPUESTA a través del stdout de Bully. Por ejemplo, los primeros ataques tendrán un tiempo de espera corto que se adaptará en función de lo que tarde en estar de nuevo "receptivo" el router, e iré incluyendo cuantos trucos, pines por defecto, routers sin checksum, etc que vaya encontrando o me vayais chivando.
Creo que el potencial de mi herramienta está en el hecho de que no se trata de un script paso a paso, sino que, por diseño, va a reaccionar al objetivo, aunque externamente va a ser un sigue-sigue.
PD: Desde aquí quiero señalar especialmente el gran trabajo de GOYfilms con su script, que me ha inspirado y activado para la creación de WPS-Qi.