Solución al «monX is on channel -1, but the AP uses channel 1»
El otro día, cuando comencé con el primer tutorial para descifrar claves wifi con clientes conectados, donde se pretendía romper la clave de una wifi con cifrado WEP y en el que existiera algún cliente conectado, explicaba en uno de los pasos cómo poner nuestra tarjeta de red en modo monitor con el comando «sudo airmon-ng start wlan5«, en mi caso era wlan5 el dispositivo wifi conectado. El caso es que todo parecía ir perfectamente y parecía que íbamos a ser capaces de descifrar la clave, o al menos intentar saber si éramos capaces de hacerlo sobre nuestra propia red wifi, el caso es que mucha gente se habrá encontrado el problema, a la hora de lanzar el arp-replay con que la consola les devuelve el error del channel -1, terminando con esta linea:
mon0 is on channel -1, but the AP uses channel 1
Donde pone mon0 podría poner el monX que os corresponda, el caso es que este error nos impide poder inyectar en la red ya que la tarjeta es detectada en un canal distinto al que intentamos inyectar, en este caso, siempre está en el channel -1. Buscando por internet, los drivers compat-drivers están parcheados contra este fallo desde la versión 3.3 (van por la 3.9) pero creo que ha debido pasar algo con la versión que se incluye en la versión de Ubuntu 13.10 porque me ha vuelto a dar este mismo fallo, y buscando he localizado a mas gente que le ha pasado lo mismo, les funcionaba todo correctamente para romper claves wifi en la versión 12.10 y al actualizar a la 13.04, han dejado de funcionar y han dado el problema de nuevo del channel -1.
Después de mucho buscar, por internet, la verdad es que no encontré mucha información al respecto, hay que contar con que Ubuntu 13.10 lleva poco tiempo en la calle y si el fallo del channel -1 no es algo generalizado pueden tardar en localizarlo y arreglarlo, pero al final, por suerte encontré a alguien que tenía una solución, hablaba de que siempre que había tenido el problema lo había solucionado con un pequeño script de consola antes de hacer nada. Para solucionarlo es necesario:
- Abrimos un terminal. Aplicaciones > Accesorios > Terminal
- Con el editor que queramos (yo uso nano) creamos un fichero con el comando: nano channel
- Copiamos el siguiente contenido dentro de él (cambia wlan5 por el dispositivo de red tuyo):
#!/bin/bash
#change this to the interface you wish to change
# Script is used when channel 1 is stuck. Make sure wlan0 is down and mon0 is not running.
# Run this script first before you do anything.
IFACE=»wlan5″
ifconfig $IFACE down
iwconfig $IFACE mode managed
ifconfig $IFACE up
iwconfig $IFACE channel $@
ifconfig $IFACE down
iwconfig $IFACE mode monitor
ifconfig $IFACE up
iwconfig $IFACE
Tras esto, tan solo quedará guardarlo y darle permisos de ejecución, para darle permisos de ejecución será necesario poner:
chmod +x channel
Y ya podremos ejecutar el script, como es un cambio sobre un dispositivo de red será necesario hacerlo como root:
sudo ./channel
Si todo ha ido bien, podremos ver con iwconfig que nuestro dispositivo ha sido configurado como modo monitor y nos permitirá la inyección sin problemas, o al menos, así me funcionó a mi.
NOTA: Si te has encontrado el problema del channel -1 al seguir mis tutoriales y quieres seguir haciéndolos, debes tener en cuenta que cuando hablo en los tutoriales de mon0, hablo del dispositivo en modo monitor, que si has tenido que usar este script para solucionarlo, ya no es necesario lanzar el programa airmon-ng, y por lo tanto habrá que usar el propio dispositivo (que ya está en modo monitor), que en mi caso era wlan5.