Hola a todos. Este es mi primer post y mi primer tutorial, no voy a intentar convertir a nadie en experto en informática ni en redes Wi-Fi ni cosas parecidas. Voy a explicar de la mejor manera posible como conectarse a una red Wi-Fi que tenga habilitado el protocolo WPS utilizando WifiSlax 4.9 corriendo en una máquina virtual sobre el software de virtualización WMware. No voy a contar el rollo por el que me veo motivado a escribir esto pues creo que no tiene gran interés. He de decir también que esto está orientado a los más principiantes y que no están tan habituados a los términos técnicos, aunque éstos se utilicen.
Es por ello que intentaré no omitir ningún paso en ninguna acción y, si aún así, alguien percibe algún fallo o alguna sugerencia quiero que se sienta libre de hacérmelo saber por PM ya que parece ser que no puedo poner aquí mi email, nadie nace aprendido y errar es de sabios, recuérdenlo.
Definición (tomado de la Wiki)
El estándar WPS (Wi-Fi Protected Setup) ha sido concebido en el año 2007 de la mano de Wi-Fi Alliance para facilitar la creación de redes WLAN en entornos domésticos o en pequeñas empresas. Este mecanismo permite minimizar la intervención por parte del usuario a la hora de configurar una red WLAN segura con WPA2. Concretamente, WPS define los mecanismos a través de los cuales los diferentes dispositivos de la red obtienen las credenciales (SSID y PSK) necesarias para iniciar el proceso de autenticación.
Roles en la arquitectura
WPS define una arquitectura con tres elementos con roles diferentes:
• Register (matriculador): dispositivo con la autoridad de generar o revocar las credenciales en la red. Tanto un AP como cualquier otra estación o PC de la red pueden tener este rol. Puede haber más de un Register en una red.
• Enrollee (matriculado): dispositivo que solicita el acceso a la red WLAN.
• Authenticator (autenticador): AP funcionando de proxy entre el Register y el Enrollee.
Métodos
WPS contempla cuatro tipos de configuraciones diferentes para el intercambio de credenciales, PIN (Personal Identification Number), PBC (Push Button Configuration), NFC (Near Field Communications) y USB (Universal Serial Bus):
• PIN: tiene que existir un PIN asignado a cada elemento que vaya a asociarse a la red. Este PIN tiene que ser conocido tanto por el Register, como por el usuario (Enrollee). Es necesaria la existencia de una interfaz (e.g. pantalla y teclado) para que el usuario pueda introducir el mencionado PIN.
• PBC: la generación y el intercambio de credenciales son desencadenados a partir que el usuario presiona un botón (físico o virtual) en el AP (o en otro elemento Registrar) y otro en el dispositivo. Notar que en el corto lapso de tiempo entre que se presiona el botón en el AP y se presiona en el dispositivo, cualquier otra estación próxima puede ganar acceso a la red.
• NFC: intercambio de credenciales a través de comunicación NFC. La tecnología NFC, basada en RFID permite la comunicación sin hilos entre dispositivos próximos (0 - 20 cm). Entonces, el dispositivo Enrollee se tiene que situar al lado del Registrar para desencadenar la autenticación. De esta manera, cualquier usuario que tenga acceso físico al Registrar, puede obtener credenciales válidas.
• USB: con este método, las credenciales se transfieren mediante un dispositivo de memoria flash (e.g. pendrive) desde el Registrar alEnrollee.
Los métodos PBC, NFC y USB pueden usarse para configurar dispositivos sin pantalla ni teclado (e.g. impresoras, webcams, etc.), pero aunque el estándar contempla NFC y USB, todavía no se certifican estos mecanismos. Actualmente sólo el método PIN es obligatorio en todas las estaciones para obtener la certificación WPS; PBC es obligatorio sólo en APs.
Vulnerabilidades
Existe un fallo de seguridad descubierto en diciembre del 2011 por Stefan Viehböck, el cual afecta a routers inalámbricos que tienen habilitada la función WPS (también llamada QSS). Hay que resaltar que muchos de los dispositivos actuales se encuentra habilitada por defecto. El fallo permite a un atacante recuperar el PIN WPS y con el mismo la clave pre-compartida de la red WPA/WPA2 usando ataques de fuerza bruta en pocas horas. Los usuarios deben deshabilitar la función WPS como solución temporal, al menos hasta que los fabricantes implementen una solución realmente segura. En ciertos dispositivos, es posible que no se pueda realizar dicho procedimiento.
Explotando las vulnerabilidades
Preparando del entorno
Comenzaremos por crear un entorno de auditoría sobre una máquina virtual. Para ello podemos utilizar el software gratuito VirtualBox, propiedad de la archiconocida Oracle, o bien el software privativo VMware Workstation cuya licencia ronda los 75 euros en la página web oficial. Ambos pueden proporcionarnos la base para virtualizar un Sistema Operativo en nuestro computador. En nuestras pruebas utilizaremos WMware ya que deja virtualizar Sistemas Operativos de 64 bits y el VirtualBox no, aunque, como se ha comentado, puede ser utilizado cualquiera de ellos ya que su uso es prácticamente idéntico. Podrás obtener el WMware 10 buscando un poco con Google.
El siguiente paso será hacernos con una suite de auditoría de las muchas que están disponibles. La más famosa y probablemente la más completa sea BackTrack, renacida recientemente como Kalilinux. En estas distribuciones podremos encontrar las herramientas necesarias para explotar la vulnerabilidad comentada anteriormente. Como nos gusta ir a contracorriente vamos a utilizar la distribución WifiSlax 4.9 disponible en la web oficial http://www.downloadwireless.net/isos/wifislax-4-9-final.iso
Una vez instalado el WMware Workstation procedemos a crear la nueva máquina virtual sobre la que vamos a trabajar. Para ello vamos a File>New virtual machine...
seleccionamos el tipo de instalación típica
y seleccionamos la ruta en la que hemos guardado nuestra imagen de WifiSlax 4.9 según la siguiente pantalla.
Una vez tenemos esta pantalla lista pasamos a la siguiente haciendo clic en Next. Ahora procedemos a indicarle al WMware el tipo de Sistema Operativo que le vamos a instalar. WifiSlax se trata obviamente de una distribución Linux.
Avanzamos presionando Next a la pantalla que nos permite ponerle un nombre a nuestra nueva máquina virtual y seleccionaremos la ruta en la que se almacenará ésta.
Aceptamos en Next y nos aparecerá la última pantalla de configuración en la que podemos elegir el tamaño del disco que se utilizará para albergar la máquina virtual así como elegir entre almacenar los archivos en un único archivo o bien almacenarlos en varios.
Podemos dejarlo tal y como viene por defecto pues 8 Gb de disco son más que suficientes y el dividir la máquina virtual en distintos archivos no nos va a afectar en absoluto a la tarea que vamos a realizar. Una vez tengamos todo listo presionaremos Finalizar.
Si todo ha salido correctamente podremos observar como nuestra máquina virtual está disponible en el menú del WifiSlax para ser seleccionada y tendremos algo así.
Para arracacarla bastará con hacer clic en la máquina deseada y después clic en el símbolo verde típico de play del panel de herramientas.
Manos a la obra
Una vez arranquemos la máquina virtual del WifiSlax nos saldrá una pantalla como esta
Elegiremos "Arrancar con kernel NORMAL" y presionamos Enter.
En el siguiente paso elegiremos la opción "Wifislax Con Escritorio XFCE" (podemos elegir KDE, pero este es un poco más ligero), presionamos Enter y tras esperar unos segundos nos encontramos con el escritorio de nuestra nueva máquina virtual con este aspecto
Es en este momento cuando nos disponemos a conectar por primera vez nuestro adaptador wifi a un puerto USB de nuestra computadora. En nuestro caso utilizaremos un adaptador de la marca ALFA modelo AWUS036H que incorpora el chipset Realtek 8187L. Este adaptador se puede encontrar en las tiendas de informática a un precio aproximado de 30 euros en tiendas españolas aunque por internet probablemente se pueda encontrar más barato.
Una vez conectado nos saldrá una pantalla como la siguiente
Esto quiere decir que nuestro adaptador ha sido reconocido por el software WMware. Hacemos clic en OK y nos dirigimos a la siguiente pestaña
Con esto nuestro WifiSlax debería de haber reconocido nuestro adaptador wifi usb, por lo que ya podremos ponernos manos a la obra.
Para empezar vamos a hacer uso de la herramienta "GOYscript WPS" incluída en la suite de WifiSlax. Esta herramienta no es más que una acertada combinación de utilidades (poner la tarjeta en modo monitor, Reaver, extractor de keys a carpeta predefinida...) que simplifica la tarea significativamente, sobre todo a aquellas personas que están empezando.
Una vez ejecutemos la herramienta y tras unos segundos, ésta empezará a escanear todos los posibles objetivos al alcance (recordemos que una buena orientación de la antena del adaptador wifi es crucial a la hora de ganar más señales y proporciona que la calidad del enlace sea la mejor posible).
Un posible escenario sería el siguiente
Los posibles objetivos son aquellos puntos de acceso, conocidos como AP, que tienen activado el WPS. Si presionamos la "X" para cerrar la ventana, el terminal nos mostrará lo siguiente
Una vez que tengamos esta pantalla sólo tenemos que introducir el número de la lista que coincida con el AP al que queremos conectarnos y pulsar Enter. A partir de ahora ya se encargará la herramienta sola de probar con unos PINs conocidos, para luego pasar a un ataque de fuerza bruta si esto no tuviese resultado. Es posible acertar con uno de los PINs conocidos y reducir así de una manera drástica el tiempo empleado o bien es posible que se tenga que recurrir al uso de la fuerza bruta probando todas las combinaciones posibles.
Aquí nos podemos hacer una idea del tiempo restante para probar todos los PINs
Hay que decir que no siempre es necesario esperar al 100%, de hecho casi nunca se va a llegar a tal porcentaje.
El tiempo que se demore ahora para encontrar la clave puede ser entre prácticamente nada y unas cuantas horas. Paciencia.
Para los más curiosos...
Vamos a arrojar un poco de luz sobre esto del PIN. El PIN es una combinación de 8 cifras. La última de ellas es un "checksum", es decir, tan solo se utiliza para comprobar que están bien el resto de las cifras. Si tenemos esto en cuenta, habrá 10.000.000 de combinaciones posibles. Esto podría suponer un problema, pero no lo es ya que el PIN está dividido en dos segmentos de cuatro cifras y si fallamos el primero obtendremos un error y ya no será necesario averiguar la segunda parte. Si hacemos ahora las cuentas, son muchas menos las combinaciones posibles. Parte de la vulnerabilidad reside justo ahí, en la sencillez de extracción por fuerza bruta debido a un número irrisorio de combinaciones posibles. La otra vertiente de la vulnerabilidad está en que no se impone un tiempo de espera entre intentos, pudiendo estar realizando el ataque de una manera constante.
-Hakuna matata
PickPocket