> For the complete documentation index, see [llms.txt](https://b4zh.gitbook.io/b4zh/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://b4zh.gitbook.io/b4zh/redes-inalambricas/modo-monitor.md).

# Modo Monitor

El modo monitor permite a nuestra tarjeta de red capturar todos los paquetes de datos que circulan por el aire.

No todos las tarjetas de red soportan este modo. Por lo general la tarjeta de nuestro computador no soporta el modo monitor. Por lo tanto es necesario tener una tarjeta de red con cierta característica.

En mi caso estaré trabajando con una ALFA AWUS036ACM, que cuenta con el chipset MEDIATEK MT7612U y trabaja con las frecuencias de 2,4 Ghz y 5 Ghz.

<figure><img src="https://www.alfa.com.tw/cdn/shop/files/AWUS036ACM_06_1024x1024.jpg?v=1718348699" alt="ALFA AWUS036ACM" width="375"><figcaption></figcaption></figure>

***

## ¿Cómo saber si mi tarjeta de red soporta el modo monitor?

Primero identificamos el nombre de nuestra tarjeta de red.

&#x20;En la terminal ejecutamos el comando lsusb o lspci dependiendo del tipo de conexión de nuestro aparato.

```bash
$ lsusb

Bus 002 Device 002: ID 0e8d:7612 MediaTek Inc. MT7612U 802.11a/b/g/n/ac Wireless Adapter
```

También podemos usar la herramienta airmon-ng.

```bash
$ airmon-ng

PHY	Interface	Driver		Chipset

phy0	wlan0		mt76x2u		MediaTek Inc. MT7612U 802.11a/b/g/n/ac
```

Con esta información podemos hacer una busqueda en internet para conocer las características de nuestra tarjeta de red.

***

También podemos hacer uso del comando iw que nos muestra todas las tarjetas de red inálambricas conectadas a nuestro ordenador

```bash
$ iw dev

phy#0
	Interface wlan0
		ifindex 3
		wdev 0x1
		addr 16:4f:a7:80:cc:c5
		type managed
		txpower 20.00 dBm
		multicast TXQ:
			qsz-byt	qsz-pkt	flows	drops	marks	overlmt	hashcol	tx-bytes	tx-packets
			0	0	0	0	0	0	0	0		0
```

El dato que nos interesa es el llamado phy.

***

Ahora al comando iw le pasamos como argumento el phy de nuestra  tarjeta (phy0) seguido del parámetro info que nos mostrará por pantalla información detallada de la tarjeta seleccionada.

```bash
iw phy0 info
```

Sin embargo esto muestra demasiada información, asi que hacemos uso del comando grep para filtrar dicha data.

```bash
$ iw phy0 info | grep -A 10 "Supported interface modes"

	Supported interface modes:
		* IBSS
		* managed
		* AP
		* AP/VLAN
		* monitor
		* mesh point
		* P2P-client
		* P2P-GO
	Band 1:
		Capabilities: 0x1ff
```

En mi caso la información dice que mi tarjeta si soporta el modo monitor.&#x20;

***

## Activar modo monitor

Primero debemos conocer el nombre que nuestro sistema operativo le da a nuestra interfaz de red, en mi caso esta se llama wlan0.

```bash
$ iwconfig 

lo        no wireless extensions.

eth0      no wireless extensions.

wlan0     IEEE 802.11  ESSID:off/any  
          Mode:Managed  Access Point: Not-Associated   Tx-Power=20 dBm   
          Retry short limit:7   RTS thr:off   Fragment thr:off
          Encryption key:off
          Power Management:off
```

Muy bien, ahora te mostraré 2 formas de activar el modo monitor.

***

#### IWCONFIG

Con ifconfig desmontamos wlan0.

```bash
$ sudo ifconfig wlan0 down
```

Con iwconfig cambiamos al modo monitor.

```bash
$ sudo iwconfig wlan0 mode Monitor
```

Nuevamente montamos wlan0.

```bash
$ sudo ifconfig wlan0 up
```

Con iwconfig comprobamos el cambio

```bash
wlan0     IEEE 802.11  Mode:Monitor
```

***

Para desactivar el modo monitor  desmontamos la interfaz.

```bash
$ sudo ifconfig wlan0 down
```

Ahora cambiamos a modo Managed con iwconfig

```bash
$ sudo iwconfig wlan0 mode Managed
```

Por ultimo volvemos a montar la interfaz

```bash
$ sudo ifconfig wlan0 up
```

***

## AIRMON-NG

También podemos hacer uso de la suite de aircrack-ng, más específicamente de la herramiento airmon-ng.

```bash
$ sudo airmon-ng start wlan0

Found 2 processes that could cause trouble.
Kill them using 'airmon-ng check kill' before putting
the card in monitor mode, they will interfere by changing channels
and sometimes putting the interface back in managed mode

    PID Name
    655 NetworkManager
   1929 wpa_supplicant

PHY	Interface	Driver		Chipset

phy0	wlan0		mt76x2u		MediaTek Inc. MT7612U 802.11a/b/g/n/ac
		(mac80211 monitor mode vif enabled for [phy0]wlan0 on [phy0]wlan0mon)
		(mac80211 station mode vif disabled for [phy0]wlan0)

```

Ahora la herramienta nos recomendará matar ciertos procesos que pueden interferir con el modo monitor, estos procesos son el NetworkManager (gestiona la configuración y la conexión a la red), y el wpa\_supplicant (mantiene la conexión activa a la red). Matamos estos procesos con:

```bash
$ sudo airmon-ng check kill

Killing these processes:

    PID Name
   1929 wpa_supplicant

```

También podemos matar esos procesos desactivandolos con systemctl:

```bash
$ sudo systemctl stop NetworkManager
$ sudo systemctl stop wpa_supplicant
```

Ten en cuenta que al nombre de la interfaz de red será agregado el sufijo mon. Mi interfaz paso de llamarse wlan0 a wlan0mon.

Ten en cuenta que activar el modo monitor con airmon-ng cambia el nombre de la interfaz de red, a este se le agrega el sufijo mon. Mi interfaz paso de llamarse wlan0 a wlan0mon

Comprobamos el cambio con iwconfig.

```bash
wlan0mon  IEEE 802.11  Mode:Monitor  Frequency:2.457 GHz  Tx-Power=20 dBm   
          Retry short limit:7   RTS thr:off   Fragment thr:off
          Power Management:on
```

***

Para desactivar el modo monitor ejecutamos lo siguiente.

```bash
$ sudo airmon-ng stop wlan0mon
```

Y para reestablecer los servicios que matamos anteriormente, hacemos uso del comando systemctl:

```bash
$ sudo systemctl restart NetworkManager
$ sudo systemctl restar wpa_supplicant
```
