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 upAunque 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 11wlan0mon: 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 NetworkManagerEn algunas distribuciones de Linux este comando puede cambar:
Wifislax
service restart networkmanagerSuse, Fedora, Gentoo y CentOS
service NetworkManager restartPentoo
rc-service NetworkManager restart2.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 interfazEn 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:
iwconfigPara 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 interfazMonitoreo 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.capEn 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 down2. 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 upUna MAC aleatoria con macchanger:
sudo macchanger -r wlan0 # Cambia la MAC a una aleatoriaUna especifica con:
sudo macchanger -m 00:11:22:33:44:55 wlan0o
sudo ifconfig wlan0 hw ether 00:11:22:33:44:55 # Establece una MAC específicaNota: ifconfig está absoleto y se debería actualizar por otras herramientas como ip
3. Reactivar la Interfaz:
sudo ifconfig wlan0 upDetener 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 NetworkManagerSistemas SysVinit (CentOS 6, versiones antiguas de Debian/Ubuntu)
sudo service NetworkManager stopSistemas OpenRC (Gentoo, Alpine Linux)
sudo rc-service NetworkManager stopEjemplo:

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 networkingSysVinit:
sudo service networking stopDetener Wicd (si está instalado)
Wicd es otra herramienta de gestión de red que se utiliza ocasionalmente en distribuciones ligeras.
Systemd:
sudo systemctl stop wicdSysVinit:
sudo service wicd stopExcluir 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 noEjemplo:
sudo nmcli dev set wlan0 managed no
Para reactivar la gestión:
sudo nmcli dev set managed yesExcluir 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/interfacesComenta el bloque de la interfaz relevante añadiendo # al inicio de cada línea:
#auto wlan0
#iface wlan0 inet dhcpReinicia el servicio para aplicar los cambios:
sudo systemctl restart networkingExcluir 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.confAñade la interfaz a la lista de exclusión:
ignore_interfaces = wlan0Reinicia Wicd:
sudo systemctl restart wicdVerificació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 statusLas 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 NetworkManagerPara el servicio de red:
sudo journalctl -u networkingUsa 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_NAMEReemplaza 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.confReemplaza 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.confRedes WEP (Privacidad Equivalente por Cable)
Usando nmcli
Para conectar a una red WEP:
nmcli device wifi connect SSID_NAME password PASSWORDReemplaza 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.confRedes WPA/WPA2-PSK (Clave Precompartida)
Usando nmcli
Para conectar:
nmcli device wifi connect SSID_NAME password PASSWORDUsando 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.confRedes WPA3-SAE
Usando nmcli
Para conectar:
nmcli device wifi connect SSID_NAME password PASSWORDUsando 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.confRedes 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 MSCHAPV2Reemplaza 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.confNotas
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