Destapando SSIDs (en el lado salvaje)

En el anterior post descubríamos los SSIDs ocultos escuchando paciente y silenciosamente las peticiones de conexión enviadas desde las estaciones a los puntos de acceso. La ventaja de este mecanismo es que trabajamos escuchando, sin hacernos presentes en el entorno. Sin embargo, no en todos los casos, se tiene el tiempo o, simplemente escuchando, no conseguimos nada.

El objetivo de este post es presentar un método alternativo más rápido que consiste en inyectar paquetes de desconexión en la red para forzar la reconexión de los equipos al punto de acceso y, por lo tanto, forzar el revelado del SSID. La desventaja de este método es que puede hacer patente nuestra presencia a mecanismos de detección de intrusiones en la red inalámbrica.

Como puntos de partida, asumimos que conocemos la dirección MAC del punto de acceso y el canal empleado. Ya, en posts anteriores, vimos como obtenerlos (iwlist, iwconfig, etc.) por lo que no voy a volver a describirlo.

Para empezar, ponemos la interfaz wlan1 en modo monitor y la sintonizamos al canal del punto de acceso.

Screenshot from 2016-11-09 07-22-42

Para inyectar las tramas de desconexión, vamos a usar la herramienta aireplay-ng del conjunto de herramientas aircrack-ng. Arrancamos, en primer lugar Wireshark y lo ponemos a capturar paquetes. Desde una terminal, lanzamos el comando necesario para inyectar las tramas de desconexión:

Screenshot from 2016-11-09 07-36-41

Destripando el comando anterior:

  • La opción 0 indica que se trata de un ataque de desconexión forzada.
  • El número 5 es el número de tramas de desconexión lanzadas.
  • El parámetro –a establece la dirección MAC del punto de acceso a la que vamos a hacer spoofing.
  • El flag ignore-negative-one sirve para ignorar el error en caso de que no pueda determinarse el canal de la interfaz.
  • Por último se pasa la interfaz empleada para la inyección.

Poniendo el filtro adecuado en Wireshark, podemos ver las tramas de broadcast de desconexión enviadas:

Screenshot from 2016-11-09 07-48-44

Y, cambiando el filtro de nuevo para ver todas las tramas (que no sean tramas faro) emitidas o recibidas por nuestro punto de acceso, podemos ver como nuestra Raspberry se desconecta y vuelve a conectarse revelándonos el ESSID en la petición de conexión.

Screenshot from 2016-11-09 07-54-33

Simple y eficaz.

Anuncios

Destapando SSIDs

Las redes WiFi son inseguras por naturaleza, el medio de transmisión es abierto y accesible. A lo largo del tiempo se han ido implementando mecanismos de seguridad para proteger la información intercambiada sobre estas redes. Algunos de estos mecanismos no han sido efectivos.

Un ejemplo de una medida ineficaz, desde el punto de vista de la seguridad es ocultar el SSID de la red. Esta técnica consiste en ofuscar el SSID de forma que el punto de acceso no lo emita en claro (ejemplo claro de seguridad por oscuridad). Sin embargo, todas las estaciones que se conectan a la red deben conocerlo para poder conectarse. Ocultar el SSID es una medida orientada no a proteger sino a ocultar.

En la configuración por defecto de los puntos de acceso WiFi, éstos retransmiten el SSID en sus tramas de faro (beacon). Sin embargo, el punto de acceso se puede configurar para que no retransmita el SSID en claro. De esta forma, sólo los clientes que conozcan el SSID podrán conectarse a la red. Ocultar el SSID, como veremos, es un mecanismo de protección muy débil y no debe considerarse, bajo ningún concepto, como una medida de seguridad. Descubrir el SSID es relativamente fácil.

Con Wireshark podemos ver el SSID emitido en las tramas faro de los puntos de acceso (asumiendo que tenemos nuestra interfaz en modo captura). El SSID aparece en texto plano en el cuerpo de la trama:

Screenshot from 2016-11-05 07-28-37

La estructura de las tramas faro es como sigue:

Imagen5

Los dos primeros bytes del SSID son la longitud (¿?) (0x000a == 10) del SSID y, a continuación, aparece el propio SSID (HACKME_001).

Vamos a ocultar el SSID de nuestra red y vamos a ver cómo podemos obtener esta información. Para deshabilitar la emisión del SSID, entramos en la administración del punto de acceso y activamos la opción correspondiente. En cada equipo puede ser distinto:

Imagen3

Ponemos la interfaz en modo captura y lanzamos de nuevo Wireshark:

Screenshot from 2016-11-05 08-47-48

Imagen6

Vemos que, en lugar de los caracteres del SSID aparecen nulos (0x00) pero, aparentemente, la longitud del SSID (10) es la del SSID oculto.

Para descubrir el SSID oculto, lo único que tenemos que hacer es escuchar de forma pasiva y esperar a que se conecte un cliente legítimo a la red. La conexión del cliente generará dos tramas (probe request, probe response) de las que podemos sacar la información que nos falta.

Por ir paso a paso:

1. Obtenemos información de la WLAN a la que nos queremos conectar (comando iwlist).

Screenshot from 2016-11-05 09-04-54

Con el comando iwlist obtenemos la dirección MAC (nos va a servir para filtrar en Wireshark) y el canal.

2. Ponemos la interfaz en modo monitor:

Screenshot from 2016-11-05 09-07-49

3. Configuramos la interfaz para que escuche en el canal 9.

Screenshot from 2016-11-05 09-09-34

4. Lanzamos Wireshark y esperamos a que se conecte un cliente (Raspberry) quedándonos con las tramas Probe Request y Probe Response:

Screenshot from 2016-11-05 10-12-06

Éste es el filtro aplicado:

Imagen7

Ésta es la información de la trama Probe Request con el SSID:

Imagen8

Y ésta es la información de la trama Probe Response, asimismo con el SSID oculto:

Imagen9

Bueno, ya hemos visto cómo averiguar el SSID oculto.