Esnifando tramas 802.11

Con el entorno ya montado, lo primero que voy a hacer va a ser capturar información de las tramas 802.11 que circulan en el espacio radioléctrico de mi casa. Por supuesto, me voy a limitar a mis propios puntos de acceso (redes WLAN domésticas y la WLAN de lab) ya que, de otra forma, estaría incurriendo en una ilegalidad flagrante. Espero que si alguien lee esto, sea consciente de la responsabilidad que adquiere al montar un entorno como éste.

Por otra parte, dado que voy a estar jugando con estos temas un tiempo he decidido substituir la interfaz USB Belkin Wireless G F5D7050 por una más moderna Alfa AWUS036H con antena de 5dBi:

31vwECQvXoL

Una vez conectada y realizada la configuración básica de red con la interfaz instalada como wlan1, tenemos lo siguiente:

Screenshot from 2016-11-01 13-08-34

Voy a probar las capacidades de escaneo de la nueva interfaz mediante el comando iwlist. Lo que veo es que capta muchas redes WiFi próximas:

Screenshot from 2016-11-01 13-13-24

Por último, antes de meternos en mayores profundidades, conviene recordar los detalles de las tramas 802.11 que vamos a capturar. El estándar 802.11 define tres tipos de tramas (más detalles aquí):

a) Tramas de gestión

Se encargan de la gestión de la comunicación entre los puntos de acceso y los clientes. Existen distintos tipos de tramas para controlar aspectos tales como la autenticación, las solicitudes de asociación y desasociación de puntos de acceso, tramas de faro (beacon) de los puntos de acceso, etc. En estas es en las que vamos a estar, en general, más interesados para la penetración en la red.

b) Tramas de control

Se encargan de asegurar el intercambio apropiado de datos entre los clientes y los puntos de acceso, permitiendo arbitrar el acceso al medio compartido.

c) Tramas de datos

Son las que transportan los datos intercambiados por los clientes.

La estructura de campos de las tramas 802.11 se presenta en la siguiente imagen:

802dot11_frame

Para empezar a capturar tramas, vamos a poner la interface (wlan1) en modo monitor. Para ello vamos a utilizar el script airmon-ng de la suite de herramientas aircrack-ng. En, primer lugar, vamos a comprobar si la interfaz que vamos a utilizar para captura es visible para airmon-ng ejecutando el script sin argumentos:

Screenshot from 2016-11-01 19-54-15

Vemos que aparece la interfaz wlan1, vamos a ponerla en modo monitor. Para ello, lanzamos el comando airmon-ng start wlan1:

Screenshot from 2016-11-01 19-56-57

El script crea una nueva interface en modo monitor (wlan1mon), esto se puede ver volviendo a ejecutar el script airmon-ng sin argumentos y, por supuesto, mediante el comando iwconfig.

Screenshot from 2016-11-01 19-59-48

Bien, ya tenemos la interface configurada en modo monitor, ahora, lo que tenemos que hacer es empezar a capturar los paquetes para analizarlos.

Para hacer la captura voy a utilizar el archiconocido programa Wireshark. Lanzamos desde la línea de comandos la ejecución del programa en segundo plano (wireshark &) y nos aparece la ventana principal del programa:

Screenshot from 2016-11-02 07-44-39

Seleccionamos la interface a través de la que se van a capturar los paquetes (wlan1mon) y pulsamos la aleta de tiburón azul de la parte superior izquierda para empezar la captura:

Screenshot from 2016-11-02 07-44-59

En pocos momentos, se puede capturar una gran cantidad de paquetes, sobre todo si hay distintas WLAN y éstas tienen una gran cantidad de tráfico. Vamos a emplear la funcionalidad de filtrado de Wireshark para ver sólo los paquetes de nuestro punto de acceso (BSSID = 00:11:50:86:64:ab):

Screenshot from 2016-11-02 08-09-29

Ahora vamos a ver sólo las tramas de gestión. Las tramas de gestión tienen el subcampo campo ‘type’ del campo Frame Control (fc) a 0:

Screenshot from 2016-11-02 08-13-25

Modificando el filtro podemos ir viendo los distintos tipos de tramas.

Ahora vamos a iniciar el ejercicio de capturar las tramas de la WLAN lab. Voy a asumir que, lo único que conozco es el SSID de la red (que es “HACKME_001”). Para capturar las tramas de esa WLAN necesito dos cosas:

  • El BSSID de la red (dirección MAC del punto de acceso).
  • El canal radio que emplea.

Lo primero que hago es poner la tarjeta en modo monitor:

Screenshot from 2016-11-04 15-37-50

A continuación lanzo el comando airodump-ng wlan1mon para ver las redes que detecta mi tarjeta y obtener la información precisa de la red cuyas tramas quiero capturar:

Screenshot from 2016-11-04 15-40-06

De la salida del comando puedo obtener el BSSID y el canal (9 en mi caso). Ahora sintonizo la monitorización a ese canal:

Screenshot from 2016-11-04 15-50-46

Lanzo una serie de pings desde la raspberry para generar tráfico en la red y lanzo Wireshark:

Screenshot from 2016-11-04 16-03-46

Ahora puedo ver las tramas que el punto de acceso devuelve a otros clientes de la red (en este caso la Raspberry) puedo obtener información interesante como las direcciones IP y direcciones MAC de los clientes y todo esto de forma silenciosa, sin hacer notar mi presencia. Esto era fácil porque el punto de acceso está completamente abierto y no emplea cifrado.

Empleando a fondo las capacidades de Wireshark, podríamos reconstruir conversaciones TCP y capturar información relevante intercambiada.

Anuncios

Autor: dotorqantico

Químico y escéptico, me gusta la ciencia, la lectura, el golf y el ciclismo.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s