24 oct 2013

Hacking Wifi - Parte I – Introducción y Beacon Frames

Las redes Wi-Fi son muy peligrosas porque son redes que no puedes ver físicamente, es decir, no puedes poner protecciones físicas como sí puedes hacer con una red cableada. Además las redes Wi-Fi atraviesan las paredes con lo que deja de estar a tu alcance y es complicado localizar a un atacante si no puedes verle físicamente. Los ataques pasivos, como capturar el tráfico de la red es prácticamente indetectable y se pueden hacer desde muy lejos.
Para hacer las pruebas os recomiendo la tarjeta Alfa Networks AWUS036h. En Kali ya trae sus drivers instalados y es capaz de inyectar paquetes.
Vamos a ver que capturar paquetes wireless es un arte. El concepto es muy similar al de capturar en una red cableada, la diferencia es que aquí se pone la interfaz de red en modo monitor (igual que cuando capturamos en red cableada ponemos la interfaz en modo promiscuo) para poder aceptar todo el tráfico, y no solo los paquetes en los que seamos nosotros el destinatario.
Esto lo haremos con la herramienta Airmon-NG de la suite Aircrack-NG. Si utilizamos una interfaz de red externa como la que he recomendado, a lo mejor hay que levantarla a mano. Para ello primero listaremos todas las interfaces, caidas y levantadas:
# ifconfig -a
Y despues veremos las interfaces levantadas:
# ifconfig
Si aparece la primera vez, y no en la segunda, quiere decir que está caida y tendremos que levantarla de la siguiente forma:
# ifconfig wlan0 up
Ahora tenemos que crear una interfaz en modo monitor encima de nuestra inferfaz de red Wi-Fi que vayamos a utilizar, en nuestro caso wlan0.
# airmon-ng start wlan0
Podemos comprobar que se ha creado con
# iwconfig
Donde verás que en el campo “modo” pone “Monitor”.
Ahora abriremos Wireshark y capturaremos con la interfaz “mon0″ que es la que se nos ha creado en modo monitor. Podemos ver los paquetes del protocolo 802.11.

Capturar paquetes Wi-Fi (802.11) es más complicado de lo que parece. En las redes Wi-Fi se puede transmitir en 3 frecuencias distitnas:
- 2.4GHz (802.11b/g/n)- 3.6GHz (802.11y)- 4.9/5.0GHz (802.11a/h/j/n)
Cada una de estas frecuencias se divide en canales (cada canal es una frecuencia especifica dentro del rango correspondiente). Cada país tiene una lista de canales permitidos, quienes pueden usar estos canales y la máxima potencia con la que puedes transmitir. En esta foto podéis ver algunos de los canales que se usan en España. Hay países en los que es legal y otros en los que está prohibido utilizar determinados canales.

Las tarjetas de red vienen configuradas siguiendo esta normativa, pero hay tarjetas que se pueden cambiarse }:).
Recordar que una tarjeta de red solo puede capturar en una banda (2.4 , 3.6 ó 5) y un canal a la vez. En la práctica que vamos a hacer vamos a ir cambiando de un canal a otro de una forma automática.
Primero vamos a cambiar de canal nuestra tarjeta de red:
# iwconfig wlan0 channel 1
# iwconfig mon0 channel 1
Nos hemos cambiado al canal 1, y si vemos la configuración de la interfaz de red con “iwconfig” podemos ver como ha cambiado el valor de la frecuencia en la que estamos y ahora aparece 2.412 que como podemos ver en la tabla anterior corresponda al canal 1.
Ahora vamos a empezar utilizar la herramienta Airodump-NG para capturar el trafico e ir saltando por todos los canales. Por defecto la herramienta trabaja en los canales de la frecuencia 2.4Ghz aunque podemos configurarla para capturar en otras frecuencias y otros canales.
Ahora vamos a ver todos los puntos de acceso que hay emitiendo, estos están situados en la parte de arriba. También veremos todos los dispositivos cliente que hay por la red en la parte de abajo.
# airodump-ng mon0

Los paquetes que estamos analizando, del tipo 802.11, se dividen en 3 tipos de paquetes:
- Management- Control- Data

Cada uno de estos tipos tiene a su vez subtipos como veis en la foto. En este y los sucesivos post nos centraremos solo en los paquetes relacionados con la seguridad y el hacking.
Cada punto de acceso tiene configurado un ESSID,  para poder ser reconocido por los dispositivos clientes que se quieran conectar a él. El punto de acceso emite Beacons Frames para anunciar su presencia y que todos los clientes sepan que hay un punto de acceso disponiblei.
Ahora vamos a ver estos Beacons Frames. Arrancaremos Wireshark y pondremos a capturar en la interfaz mon0. Podemos ver mucho tráfico. En la columna Info podemos ver como algunos de estos paquetes son Beacon Frames. Seleccionamos uno de ellos y nos vamos a la ventana de en medio del Wireshark, donde nos desgrana el paquete dividiendolo en capas y cada una de ellas en sus campos correspondientes. Seleccionamos la pestaña IEEE 802.11 Beacon Frame. Y podemos ver como el subtipo de paquete es 8, y si vamos a la tabla anterior podemos ver que el tipo 8 (1000 en binario) corresponde a un paquete de tipo Beacon.

Nos damos cuenta de que toda la información de este paquete va en texto plano, es decir, no va cifrada. Esto permitirá a un atacante crearse paquetes de este tipo, Beacons Frames. Con lo cual cualquiera podrá inyectar este tipo de paquetes y con esto conseguir que todos los dispositivos que haya por la zona crean que hay un nuevo punto de acceso.
Pues vamos a realizar la prueba. Esto lo haremos con la herramienta MDK3 de Kali. Utilizaremos la opción de “Beacon Flood Mode” (b) para inyectar paquetes del tipo Beacon Frames en todos los canales provocando confusión en los dispositivos cliente de la zona. Con la opción –n elegiremos el nombre de la red que en este caso será “Pwneado!”

Hemos simulado la existencia de una red llamada Pwneado! 
¿Que conclusiones podemos sacar de esta pequeña prueba de concepto?
- Que podemos hacer Spoofing de los paquetes.
- Que las cabeceras de los paquetes de Management y Control van en texto plano y no tienen ningún tipo de cifrado o protección.
Si quisiésemos hacer algo similar en una red cableada el atacante debería de estar dentro de esa red, pero la diferencia es que aquí el atacante no tiene que estar dentro de ninguna red.
Más adelante vamos a ver cómo sacar beneficio de esto, forzando a un cliente que se conecte a ti y no al punto de acceso legitimo.

Artículo cortesía de: Roberto Lopez - @leurian

 

6 comentarios:

  1. Excelente artículo y explicado al detalle, la seguridad wireless es un tema muy interesante y a menudo descuidado por los usuarios. Esperando próximas partes ;-)

    ResponderEliminar
  2. Hola Roberto.Dices que las cabeceras de los paquetes de Management y Control van en claro.¿Acaso no van en claro en los datos?Creía que lo que no iba en claro eran los datos en sí, pero parte de las cabeceras (MAC origen, MAC destino, etc), sí iban en claro.He estado buscando información pero no consigo encontrarla, sobre qué parte específica de qué paquetes es la que va encriptada, y cuál va en claro, pues habrá partes que deberán estar en claro para que los dispositivos sepan a quien va dirigida, etc.¿Alguna idea?Y gracias por el genial artículo!

    ResponderEliminar
  3. En el siguiente post de la serie hablaré por encima de las cabeceras a ver si lo dejo un poco más claro.Si abres abres wireshark y capturas con la intefaz en modo monitor podrás ver que los paquetes tienen 3 capas y luego está el contenido.La primera capa del paquete llamada Frame nos dará información sobre cuando se ha capturado ese paquete. La segunda llamada Radiotap, nos da la potencia de la señal y la frecuencia en la que estaba el paquete entre otras cosas. Pero estas dos cabeceras no son propias del protocolo WLAN.La siguiente cabecera IEEE 802.11 nos dará información de las direcciones MAC y el tipo de paquete. Y la siguiente pestaña ya será el contenido del paquete, IEEE 802.11 wireless.Las 3 primeras capas siempre tienen que ir en plano, sin cifrar para que sean posibles las comunicaciones. El contenido del paquete (IEEE 802.11 wireless) irá cifrado cuando se trate de un paquete de datos (DATA), siempre y cuando la red no sea abierta. Si es de management no irá cifrado, puesto son tramas para gestionar las conexiones. Esto causará problemas de seguridad que veremos más adelante, como por ejemplo, que podremos desautenticar a un cliente de su punto de acceso, suplandando un paquete de Desautenticación que es del tipo Management.Espero haberte ayudado Pedrito!

    ResponderEliminar
  4. Enhorabuena por este fantástico artículo.Lo encuentro muy didáctico, desmenuzándolotodo al detalle (en vez de limitarse a publicarinstruciones tipo "script kiddie").Os animo y me gustaría mucho que continuase la serie.

    ResponderEliminar
  5. Pues muhcas gracias!! Es verdad que es mucho más entretenido aprender esto, en vez de aprender a utilizar herramientas. Porque luego no te funcionan y no tienes ni idea de porque!

    ResponderEliminar