Captura de paquetes WiFi en Linux

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

 

José Administrator
Apasionado por el software, la electrónica y la fotografía.
follow me

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *