Como explican el wiki de Wireshark, en el modo normal de funcionamiento, la captura de tráfico a través de interfaces WiFi se encuentra filtrada por el hardware que implementa el protocolo IEEE 802.11, quedando restringida al SSID en el que nos encontremos asociados y, dentro de ese SSID, a los paquetes dirigidos hacia la dirección MAC de nuestro interfaz, más los paquetes dirigidos a los grupos multicast a los que nuestro equipo se haya asociado y a los paquetes de tipo broadcast.
En el caso que necesitemos analizar el tráfico completo(packet sniffing) de un canal WiFi deberemos reconfigurar el interfaz en modo monitor como se muestra a continuación.
Detección de dispositivos WiFi
Los dispositivos WiFi disponibles se obtienen con iw dev
:
# iw dev phy#0 Unnamed/non-netdev interface wdev 0x2 addr 28:b2:bd:4c:ab:27 type P2P-device Interface wlan0 ifindex 2 wdev 0x1 addr 28:b2:bd:4c:ab:26 type managed channel 136 (5680 MHz), width: 40 MHz, center1: 5670 MHz
Como puede observarse en este ejemplo, se cuenta con un dispositivo phy0
, que de momento cuenta con un interfaz wlan0
del tipo managed (modo normal de funcionamiento). Para ver las características de este dispositivo (como canales accesibles de mecanismos de cifrado soportados) el comando es:
# iw phy phy0 info
Creación del interfaz de monitorización
Sobre el dispositivo phy0
detectado en el paso anterior, se genera un interfaz de monitorización mon0
:
# iw phy phy0 interface add mon0 type monitor
Si se compara con el caso anterior, se observa que ahora aparece un nuevo interfaz del tipo monitor.
# iw dev phy#0 Interface mon0 ifindex 5 wdev 0x3 addr 28:b2:bd:4c:ab:26 type monitor Unnamed/non-netdev interface wdev 0x2 addr 28:b2:bd:4c:ab:27 type P2P-device Interface wlan0 ifindex 2 wdev 0x1 addr 28:b2:bd:4c:ab:26 type managed channel 136 (5680 MHz), width: 40 MHz, center1: 5670 MHz
Antes de poder activar el nuevo interfaz, hay que detener el interfaz normal en servicio con:
# iw dev wlan0 del
Y ahora sí, se activa el interfaz de monitorización con:
# ifconfig mon0 up
A partir de este momento ya se pueden capturar datos sobre el nuevo interfaz de monitorización (con herramientas como tcpdump
o wireshark
).
Establecimiento del canal a capturar
Para establecer el canal sobre el que se realiza la monitorización se puede especificar tanto el número de canal como su frecuencia central, dependiendo de si se utilizan las claves channel
o freq
.
Adicionalmente, puede especificarse el ancho de banda de 20MHz con HT20
o de 40MHZ con HT40-
(para asociar el canal secundario inferior) o HT40+
(para asociar el canal secundario superior).
Por ejemplo, para analizar datos del canal 136 de la banda de 5GHz en 40MHZ de ancho puede utilizarse cualquiera de las dos variedades del comando:
# iw phy phy0 set channel 136 HT40-
# iw dev mon0 set freq 5680 HT40-
Restablecimiento del interfaz WiFi
Una vez finalizada la captura y para restituir el funcionamiento normal del interfaz se deberá eliminar el interfaz de monitorización y volver a agregar el interfaz de gestión con ejecutar la siguiente secuencia de comandos sobre el dispositivo:
# iw dev mon0 del # iw phy phy0 interface add wlan0 type managed