PoC – Cracking WPS mediante “Inteligencia colectiva”

Hace unas semanas hicimos público el servicio WPS BUNKER para proveer una forma más de cracking wps en redes wifi, haciendo uso de inteligencia colectiva.  Entendida la inteligencia colectiva como la colaboración de la mayor cantidad de usuarios posible que puedan aportar datos correctos de pines WPS.  El sistema se basa en generar una base de datos entre todos los usuarios que conozcan un PIN WPS y quieran tener un repositorio central donde almacenarlo y posteriormente consultarlo.  Es de sobra conocido que algunos fabricantes ponen el mismo pin a todos sus routers/aps wifi o van rotando entre una serie de pines no aleatorios.  Existe algún servicio similar, el cual nos sirvió de inspiración, pero se quedaba muy corto en cuanto a la posibilidad de trabajar con la base de datos de pines desde consola para poder crear un sistema como el que se puede ver en la imagen:

esquema_wps_b

El sistema está orientado a trabajar con una API con el fin de integrar el proceso de inserción de pines que se hace desde la web con el de cracking de redes desde consola (o algún GUI, ya que la petición de los pines de una determinada MAC se hace con una llamada HTTP-GET, pero aquí expondremos un ejemplo desde consola).  Como se puede apreciar en la imágen, el proceso consta de tres partes:

1.- Conociendo la dirección MAC del objetivo, con los tres primeros bytes de ésta hacemos una petición para ver si hay coincidencias en la base de datos y si existe algún PIN conocido para esa MAC.  Dada una dirección MAC (BSSID) tal que: 00:11:22:AA:BB:CC, únicamente serán necesarios los tres primeros pares de cifras hexadecimales: 00:11:22.  La llamada a la base de datos se hace, como se describe en la API, a la siguiente dirección:

2.- El servidor de WPS BUNKER devuelve todos los pines que almacena para ese BSSID en concreto.

3.- Ahora le toca el turno al programa cliente, que en nuestra PoC guardará los resultados obtenidos y los utilizará para atacar un AP wifi mediante la utilidad ‘reaver’.

Se ha desarrollado y probado con éxito un sencillo script en bash que tiene como depencias wget, para la descarga de pines, y reaver, para la inyección de pines.  El script se puede conseguir directamente clonando el repositorio desde github:

Uso:

 

Para aumentar el tiempo de espera si el dispositivo objetivo se bloquea, tendremos que aumentar el valor de la variable WAIT_LOCK.

En el siguiente vídeo podemos ver un ejemplo en acción.  En este caso el objetivo es un router HomeStation de Movistar con BSSID: DC:0B:1A y los datos de versión:

homestation

 

El mismo proceso ha sido probado satisfactoriamente en routers con diferentes BSSID’s de la operadora Movistar.

Si tienes datos de pines WPS asociados al BSSID de un determinado aparato y quieres participar con este proyecto,  puedes hacerlo incluyéndolos en WPS BUNKER desde esta dirección.

insert_pin_wps_bunker

Rellena y envía el formulario que aparecerá.  El sistema puede devolver errores en determinados casos como explicamos en el primer post sobre WPS BUNKER, debido al filtrado que se realiza para evitar el duplicado de pines y la recogida de datos en formato erróneo.

Puedes realizar feedback a través de los comentarios, en twitter: @hackaffeine o por correo electrónico: info@hackaffeine.com, tu opinión servirá para seguir mejorando esta herramienta.

_EOF

Tweet about this on TwitterShare on FacebookShare on Google+Email this to someone

También te podría gustar...

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *