Capitulo 4: Redes Wi-Fi en Linux
Información de las Interfaces
Para obtener información sobre las interfaces Wi-Fi en un sistema Linux, es posible usar el comando iwconfig o ip. Sin embargo, el comando iw proporciona información más detallada y es el reemplazo moderno de iwconfig.
Para cambiar el modo de forma de nombrar las interfaces de red en Linux, puedes modificar la configuración del sistema. Si deseas utilizar el esquema clásico (wlan0, eth0, etc.), se puede deshabilitar el esquema moderno de nombres predecibles. Para hacking de redes Wi-Fi se recomienda utilizar siempre el formato clásico, ya que hay herramientas como wash que dan problemas con el formato nuevo.
Esto se puede arreglar de 2 formas diferentes, una temporal y otra permanente. La temporal sería únicamente modificar el nombre de la interfaz de la siguiente forma.
ip link set wlx00c0ca9208dc down && ip link set wlx00c0ca9208dc name wlan0 && ip link set wlan0 up
Aunque con este método tras reiniciar el nombre volvería al original.
Para dejar la modificación permanente se logra agregando un parámetro al arranque del Kernel. Edita el archivo de configuración del cargador de arranque (como GRUB) y añadirnet.ifnames=0 y biosdevname=0 a la línea de comandos del Kernel. Por ejemplo, en sistemas basados en GRUB, es posible conseguir esto editando el fichero /etc/default/grub y modificando la línea GRUB_CMDLINE_LINUX añadiendo estos parámetros:
GRUB_CMDLINE_LINUX="net.ifnames=0 biosdevname=0"
Después, se actualiza la configuración de GRUB ejecutando sudo update-grub y se reinicia el sistema. Al reiniciar, las interfaces de red deberían volver a usar los nombres clásicos.
Uso del comando iw
iw dev: Lista todas las interfaces inalámbricas en el sistema.
iw dev wlan0 info: Proporciona información detallada sobre una interfaz específica, en este caso wlan0.
Uso del comandoip
ip link show: Muestra todas las interfaces de red, incluidas las Wi-Fi.
Gestión de Interfaces Wi-Fi
Activar o Desactivar una Interfaz
Para desactivar una interfaz Wi-Fi: sudo ip link set dev wlan0 down.
Para activar una interfaz Wi-Fi: sudo ip link set dev wlan0 up.
Reemplaza wlan0 con el nombre de la interfaz Wi-Fi específica.
Escaneo de Redes Wi-Fi
El escaneo de redes Wi-Fi se puede hacer fácilmente mediante el comando iw.
Asegurarse de que la interfaz Wi-Fi está activa: sudo ip link set dev wlan0 up.
Escanear las redes Wi-Fi: sudo iw dev wlan0 scan.
Este comando listará todas las redes Wi-Fi disponibles con información detallada como SSID, fuerza de señal, tipo de cifrado, etc.
Para un enfoque más sencillo, se puede usar la herramienta nmcli que controla el NetworkManager:
Listar las redes Wi-Fi disponibles: nmcli dev wifi list.
Conectarse a una red Wi-Fi: nmcli dev wifi connect SSID_NAME password YOUR_PASSWORD.
Reemplaza SSID_NAME con el nombre de la red y YOUR_PASSWORD con la contraseña.
Aquí hay comandos adicionales de ejemplo para facilitar diferentes operaciones:
Muestra las configuraciones y el estado del dispositivo inalámbrico: iw dev o ip link show wlan0.
Activa una interfaz Wi-Fi: ip link set wlan0 up.
Verifica el estado del enlace: iw wlan0 link.
Inicia un escaneo directo de puntos de acceso: iw wlan0 scan.
Para una salida más limpia que sólo muestre SSIDs: iw wlan0 scan | grep "SSID:".
Para ver resultados detallados del escaneo que incluyen BSSID, SSID, y protocolos de seguridad: iw dev wlan0 scan | grep "^BSS\|SSID|WSP\|Authentication\|WPA".
Configurar manualmente la interfaz en un canal específico
Esta operación se realiza mediante el comando iwconfig. En este caso, vamos a configurar la interfaz wlan0mon para que opere en el canal 11. A continuación, se detalla el comando:
iwconfig wlan0mon channel 11
wlan0mon: Interfaz a la que se quiere cambiar el canal, puede estar en modo monitor o no.
11 Canal en el que se quiere configurar la interfaz.
Modo Monitor
El modo monitor permite a una interfaz Wi-Fi capturar todo el tráfico captado por la red inalámbrica, independientemente de si está destinado a dicha interfaz o no. Este modo es esencial para realizar análisis detallados de redes y pruebas de penetración, ya que permite observar todo el tráfico que se produce en un canal inalámbrico específico.
Modo Manual
1.Desactivar Network Manager: Para evitar que el gestor de redes interfiera con la configuración de la interfaz Wi-Fi al habilitar el modo monitor, primero se debe detener el servicio de Network Manager. Esto se puede hacer con el siguiente comando:
sudo systemctl stop NetworkManager
En algunas distribuciones de Linux este comando puede cambar:
Wifislax
service restart networkmanager
Suse, Fedora, Gentoo y CentOS
service NetworkManager restart
Pentoo
rc-service NetworkManager restart
2.Habilitar el Modo Monitor: Antes de habilitar el modo monitor, es necesario identificar el nombre de la interfaz inalámbrica. Esto se puede lograr usando comandos como iwconfig y ip. Una vez identificado, la secuencia de comandos para habilitar el modo monitor sería:
sudo ip link set wlan0 down # Desactiva la interfaz
sudo iwconfig wlan0 mode monitor # Cambia el modo de la interfaz a monitor
sudo ip link set wlan0 up # Vuelve a activar la interfaz
En este ejemplo, wlan0 es el nombre de la interfaz. Este nombre puede variar según el sistema.
3.Verificar Configuración: Para confirmar que la interfaz está en modo monitor, se utiliza el comando iwconfig. La salida del comando debe mostrar Mode:Monitor:
iwconfig
Para desactivar el modo monitor y volver al modo Managed hacemos el mismo paso modificando el comando de iwconfig
sudo ip link set wlan0 down # Desactiva la interfaz
sudo iwconfig wlan0 mode managed # Cambia el modo de la interfaz a monitor
sudo ip link set wlan0 up # Vuelve a activar la interfaz
Monitoreo de Wi-Fi con tcpdump
tcpdump es una herramienta de línea de comandos poderosa para capturar y analizar paquetes TCP/IP en una red. Para usar tcpdump de manera efectiva en análisis de Wi-Fi, es crucial que la interfaz esté en modo monitor. Esto permite capturar toda la información transmitida en el aire, sin importar el destino del tráfico.
Ejemplo de comando para capturar paquetes:
sudo tcpdump -i wlan0mon -w /ruta/al/archivo.cap
En este ejemplo, wlan0mon es la interfaz en modo monitor y /ruta/al/archivo.cap es donde se guardarán los paquetes capturados. Este archivo puede ser analizado posteriormente para obtener información como la intensidad de la señal y los datos transmitidos.
Cambiar la Dirección MAC
Modificar la dirección MAC de una interfaz puede ser útil para proporcionar anonimato o para evadir filtros de seguridad basados en MAC.
1.Desactivar la Interfaz:
sudo ifconfig wlan0 down
2. Cambiar la Dirección MAC: Usando ip, macchanger o ifconfig, se puede cambiar la dirección MAC. Algunos ejemplos son:
ip link set wlan0 down
ip link set dev wlan0 address 00:11:22:33:44:55
ip link set wlan0 up
Una MAC aleatoria con macchanger:
sudo macchanger -r wlan0 # Cambia la MAC a una aleatoria
Una especifica con:
sudo macchanger -m 00:11:22:33:44:55 wlan0
o
sudo ifconfig wlan0 hw ether 00:11:22:33:44:55 # Establece una MAC específica
Nota: ifconfig está absoleto y se debería actualizar por otras herramientas como ip
3. Reactivar la Interfaz:
sudo ifconfig wlan0 up
Detener los Servicios de Gestión de Red
La manera más fácil de detener los Servicios de Gestión de Red para que no interfieran con la interfaz mientras está en uso es detenerlo directamente.
Detener NetworkManager
En la mayoría de los sistemas Linux modernos, NetworkManager es el servicio predeterminado. Desactívalo utilizando los comandos apropiados para tu sistema de inicio:
Sistemas basados en Systemd (Ubuntu, Fedora, Debian, etc.)
sudo systemctl stop NetworkManager
Sistemas SysVinit (CentOS 6, versiones antiguas de Debian/Ubuntu)
sudo service NetworkManager stop
Sistemas OpenRC (Gentoo, Alpine Linux)
sudo rc-service NetworkManager stop
Ejemplo:

Detener el Servicio de Red
Algunos sistemas, especialmente los más antiguos, utilizan el servicio de red en lugar de NetworkManager.
Systemd:
sudo systemctl stop networking
SysVinit:
sudo service networking stop
Detener Wicd (si está instalado)
Wicd es otra herramienta de gestión de red que se utiliza ocasionalmente en distribuciones ligeras.
Systemd:
sudo systemctl stop wicd
SysVinit:
sudo service wicd stop
Excluir Temporalmente una Interfaz de la Gestión
Independientemente del servicio que gestione la red, es posible excluir temporalmente interfaces específicas para evitar perder acceso a internet mientras utilizamos otra interfaz.
Excluir Interfaces en NetworkManager
Usanmcli para dejar de gestionar la interfaz:
sudo nmcli dev set managed no
Ejemplo:
sudo nmcli dev set wlan0 managed no

Para reactivar la gestión:
sudo nmcli dev set managed yes
Excluir Interfaces en el Servicio de Red
Modifica /etc/network/interfaces para excluir temporalmente la interfaz:
Abre el archivo de configuración:
sudo nano /etc/network/interfaces
Comenta el bloque de la interfaz relevante añadiendo # al inicio de cada línea:
#auto wlan0
#iface wlan0 inet dhcp
Reinicia el servicio para aplicar los cambios:
sudo systemctl restart networking
Excluir Interfaces en Wicd
Wicd permite excluir interfaces a través de su archivo de configuración:
Edita /etc/wicd/manager-settings.conf:
sudo nano /etc/wicd/manager-settings.conf
Añade la interfaz a la lista de exclusión:
ignore_interfaces = wlan0
Reinicia Wicd:
sudo systemctl restart wicd
Verificación de la Exclusión
Para asegurarte de que la interfaz está excluida o no gestionada:
Verifica el estado de la interfaz con nmcli:
nmcli dev status
Las interfaces excluidas deberían aparecer como "no gestionadas".
Usa el comandoip para confirmar que no se ha asignado una IP por el gestor:
ip addr show
Revisa los registros del gestor de red en uso:
Para NetworkManager:
sudo journalctl -u NetworkManager
Para el servicio de red:
sudo journalctl -u networking
Usa dmesg para revisar los registros a nivel dekernel de la interfaz:
dmesg | grep
Conexión a Redes Wi-Fi
Para la gestión de redes Wi-Fi en Linux, dos herramientas populares son nmcli y wpa_supplicant. nmcli es un cliente de línea de comandos para NetworkManager y es adecuado para tareas rápidas. Por otro lado, wpa_supplicant proporciona un mayor control, especialmente útil para configuraciones complejas. Se van a ver ejemplos de uso de estos comandos en los retos del laboratorio WiFiChallenge Lab.
Nota: No es necesario saberlo de memoria, es principalmente para poder copiar y pegar cuando llegue el momento.
Nota: NOTA2: Para ver ejemplos más complejos y un poco toda la información definida se puede ver el fichero de ejemplo oficial: https://w1.fi/cgit/hostap/plain/wpa_supplicant/wpa_supplicant.conf
Redes Abiertas (OPN)
A continuación, vamos a ver como conectarse a redes abiertas desde la terminal.
Usando nmcli
nmcli device wifi connect SSID_NAME
Reemplaza SSID_NAME con el nombre de la red.
Usando wpa_supplicant
Crear un archivo de configuración llamado wifi-opn.conf:
network={
ssid="SSID_NAME"
key_mgmt=NONE
scan_ssid=1
}
Explicación:
ssid: Nombre de la red inalámbrica a la que deseas conectarte.
key_mgmt: Tipo de gestión de claves, en este caso NONE indica que no hay cifrado.
scan_ssid: Para encontrar redes con SSID oculto, scan_ssid=1 puede usarse en el bloque de red con nl80211. Esto fuerza al sistema a buscar y conectarse a redes que no son visibles en el escaneo normal de SSID.
Conectar usando wpa_supplicant:
sudo wpa_supplicant -i wlan0 -c wifi-opn.conf
Reemplaza wlan0 con el nombre de la interfaz de red a utilizar.
Redes OWE (cifrado Oportunista)
Usando wpa_supplicant
Crear un archivo de configuración llamado wifi-owe.conf:
network={
ssid="SSID_NAME"
key_mgmt=OWE
}
Explicación:
ssid: Nombre de la red a la que deseas conectarte.
key_mgmt: Gestión de claves, OWE para indicar cifrado Oportunista.
Conectar usando wpa_supplicant:
sudo wpa_supplicant -i wlan0 -c wifi-owe.conf
Redes WEP (Privacidad Equivalente por Cable)
Usando nmcli
Para conectar a una red WEP:
nmcli device wifi connect SSID_NAME password PASSWORD
Reemplaza PASSWORD con la clave WEP.
Usando wpa_supplicant
Crear un archivo de configuración llamado wifi-wep.conf:
network={
ssid="SSID_NAME"
key_mgmt=NONE
wep_key0=PASSWORD
wep_tx_keyidx=0
}
Explicación:
wep_key0: Clave WEP para la red. Siempre que la contraseña sea en hexadecimal, se debe poner sin comillas y sin dos puntos :, Por ejemplo, una contraseña 00:11:22:33:44 se pondría wep_key0=0011223344
wep_tx_keyidx: Índice de la clave WEP (normalmente 0).
Conectar usando wpa_supplicant:
sudo wpa_supplicant -i wlan0 -c wifi-wep.conf
Redes WPA/WPA2-PSK (Clave Precompartida)
Usando nmcli
Para conectar:
nmcli device wifi connect SSID_NAME password PASSWORD
Usando wpa_supplicant
Crear un archivo de configuración llamado wifi-psk.conf:
network={
ssid="SSID_NAME"
psk="PASSWORD"
}
Explicación:
psk: Clave pre compartida para WPA/WPA2.
Conectar usando wpa_supplicant:
sudo wpa_supplicant -i wlan0 -c wifi-psk.conf
Redes WPA3-SAE
Usando nmcli
Para conectar:
nmcli device wifi connect SSID_NAME password PASSWORD
Usando wpa_supplicant
Crear un archivo de configuración llamado wifi-sae.conf:
network={
ssid="SSID_NAME"
psk="PASSWORD"
key_mgmt=SAE
}
Explicación:
key_mgmt: Gestión de claves, SAE para WPA3.
Conectar usando wpa_supplicant:
sudo wpa_supplicant -i wlan0 -c wifi-sae.conf
Redes WPA/WPA2/WPA3-Enterprise (MGT)
Para WPA/WPA2/WPA3-Enterprise, se necesita una configuración específica debido a los diversos métodos de autenticación.
Usando nmcli
Para conectar:
nmcli device wifi connect SSID_NAME password PASSWORD identity USERNAME eap PEAP phase2-auth MSCHAPV2
Reemplaza USERNAME y PASSWORD con las credenciales necesarias.
Usando wpa_supplicant
Crear un archivo de configuración llamado wifi-mgt.conf:
network={
ssid="SSID_NAME"
key_mgmt=WPA-EAP
eap=PEAP
anonymous_identity="anonymous"
identity="USERNAME"
password="PASSWORD"
phase2="auth=MSCHAPV2"
}
Explicación:
key_mgmt: Gestión de claves WPA-EAP para Enterprise.
eap: Métodos de autenticación EAP.
anonymous_identity: Identidad anónima.
identity: Nombre de usuario para la autenticación.
password: Contraseña para la autenticación.
phase2: Tipo de autenticación de segunda fase, en este caso MS-CHAP v2.
Conectar usando wpa_supplicant:
sudo wpa_supplicant -i wlan0 -c wifi-mgt.conf
Notas
Reemplazar wlan0 con la interfaz necesaria en cada caso.
wpa_supplicant requiere privilegios de root para la mayoría de las operaciones.
Para wpa_supplicant, usar -B lo ejecuta en segundo plano. Omite -B para operación en primer plano y salida más detallada.
Asegúrate de que tu wpa_supplicant y NetworkManager estén actualizados para soportar protocolos más nuevos como WPA3-SAE y OWE.
Si el ESSID está oculto, debes añadir hidden yes en el comando nmcli.
En wpa_supplicant se puede ejecutar en segundo plano con -B. En este modo se pueden ver los logs con sudo journalctl -u wpa_supplicant o con sudo grep wpa_supplicant /var/log/syslog
Gestionando Redes Inalámbricas con WPA GUI en Ubuntu
WPA GUI ofrece una interfaz gráfica fácil de usar para gestionar conexiones Wi-Fi en Ubuntu, eliminando la necesidad de comandos en la terminal.
Instalación de WPA GUI
Instalar WPA GUI
sudo apt install wpa-gui

Iniciar WPA GUI
Comando: wpa_gui o buscar "WPA GUI" en el menú de aplicaciones.
Descripción General de la Interfaz de WPA GUI
Estado Actual
Descripción: Muestra el SSID conectado, la intensidad de la señal y la dirección IP.
Escanear
Descripción: Lista las redes disponibles con la intensidad de la señal y los tipos de cifrado.
Configuración de Red
Descripción: Añadir, editar o eliminar perfiles de red.
Mensajes
Descripción: Muestra los registros de wpa_supplicant para resolución de problemas.
Conectarse a una Red Inalámbrica




Escanear Redes
Navega a la pestaña Escanear y haz clic en Escanear. Selecciona la red deseada.
Configurar la Red
Haz doble clic en una red o ve a Configuración de Red, haz clic en Añadir, ingresa el SSID, elige la seguridad (por ejemplo, WPA2) e introduce la contraseña. Guarda la configuración.
Conectar
Regresa a Estado Actual y haz clic en Conectar para unirte a la red.
Obtener una IP
Una vez conectado, ejecuta dhclient como de costumbre.
Last updated