Wi-Fi desde 0-Recon

Carol12Gory - Oasis
9 min readSep 12, 2023

--

3,2,1 … Empezamos!

Nueva entrada en el blog en la cual vamos a resolver el primer apartado del CTF WiFiChallengeLab creado por Raúl Calvo Laorden, que corresponde a “Recon”. El reconocimiento es el proceso de recopilación de información sobre un objetivo. Este se centra en cuatro aspectos críticos del reconocimiento inalámbrico: la identificación del canal de un punto de acceso (AP), las direcciones MAC de los clientes conectados a un AP, las solicitudes de sondeo de clientes y el ESSID oculto de un AP.

Se recomienda leer estos artículos antes de continuar con la lectura:

- Wi-Fi desde 0

- Wi-Fi desde 0 - Configuración del entorno

¡Espero que os resulte útil!

Challenge Recon

En cada challenge tenéis la descripción y pistas para resolverlo en caso de ser necesario.

# 01. ¿Cuál es el canal que está utilizando actualmente el Punto de Acceso wifi-global?

(01. What is the channel that the wifi-global Access Point is currently using?)

En primer lugar, tras iniciar la máquina, tenemos que modificar el idioma, cómo se explica en el post anterior.

A continuación, para evitar tener problemas con el “Network Manager”, procedemos a pausarlo y a matar todos los procesos que pueden crear problemas con los siguientes pasos.

Para ello, ejecutamos los siguientes comandos:

sudo service NetworkManager stop

Este comando detiene el servicio NetworkManager del sistema. NetworkManager es una utilidad en sistemas Linux que proporciona una interfaz gráfica para configurar las conexiones de red. Al detener este servicio, se desactiva temporalmente la gestión de la red por parte del sistema operativo.

sudo airmon-ng check kill

Este comando detiene los procesos que podrían interferir con la suite de herramientas aircrack-ng.

Parar servicios

Con el comando iwconfig vemos las antenas disponibles. Para este challenge vamos a emplear la antena wlan0.

iwconfig wlan0

Para poder interceptar tráfico tenemos que poner la tarjeta en modo monitor. El modo monitor, también llamado modo de escucha o modo promiscuo, permite que la tarjeta WiFi capture todos los paquetes que se transmiten en el “aire”. En este modo, podemos utilizar diferentes programas, como airodump-ng para capturar y analizar los paquetes.

La sintaxis para poner en modo monitor es la siguiente:

airmon-ng start <interface>

Iniciamos el modo monitor en la tarjeta wlan0:

sudo airmon-ng start wlan0
Airmon-ng start wlan0

Una vez iniciada la tarjeta, comprobamos que está correctamente en modo monitor con el siguiente comando iwconfig wlan0mon (se añade el sufijo ‘mon’ debido a que está en modo monitor). El comando iwconfig es similar a ifconfig, pero está dedicado a las interfaces inalámbricas, proporcionando información de cómo está configurada la tarjeta inalámbrica (nombre de red, canal, nivel de señal, velocidad, potencia, etc).

Iwconfig wlan0mon

Creamos una carpeta donde vamos a almacenar todas las capturas que vamos a ir generando con el siguiente comando mkdir capturas.

mkdir capturas

Una vez habilitado el modo monitor, procedemos a escanear la red y a capturar el tráfico. Para ello empleamos el siguiente comando:

sudo airodump-ng wlan0mon -w capturas/captura01 - manufacturer - wps - band abg
Airodump-ng

A continuación, vamos a explicar que es cada parámetro:

- airodump-ng: programa que pertenece a la suite de aircrack-ng que sirve para la captura de paquetes 802.11.

- wlan0mon: interfaz de escucha en modo monitor.

- -w nombre_fichero: Guarda la captura de tráfico generada. (Opcional)

- --manufacturer: Muestra el fabricante del AP. (Opcional)

- --wps: Indica si tiene habiliado el WPS. (Opcional)

- --band abg: Indica que bandas tiene que inpeccionar. La ‘b’ y ‘g’ pertenece a la frecuencia 2.4GHz y ‘a’ a 5GHz. (Opcional)

Con este comando se intercepta todo el tráfico que se esté generando.

Destacar los siguientes campos que se ven por pantalla:

- BSSID: Dirección MAC del punto de acceso (AP).

- PWR: Nivel de señal. Los valores que se muestran son negativos, cuanto más tienda a 0, más cerca se encontrará el AP. Si el PWR es -1, significa que el driver no soporta la detección del nivel de señal o que los paquetes proceden del AP hacia el cliente, pero las transmisiones del cliente se encuentran fuera del rango de cobertura de la tarjeta.

- Beacons: Un Beacon es un tipo de trama de administración (se utiliza para el mantenimiento de la comunicación, como la detección de un punto de acceso (AP), la autenticación de este y la asociación a dicho AP) en redes inalámbricas WLAN basadas en IEEE 802.11. Los Beacons contienen toda la información sobre la red inalámbrica y son transmitidos periódicamente para anunciar la presencia de la red.

- Data: Número de paquetes de datos capturados incluyendo paquetes de datos broadcast (dirigidos a todos los clientes).

- #/s: Número de paquetes de datos capturados por segundo calculando la media de los últimos 10 segundos.

- CH: Número de canal. Puede que en alguna ocasión se intercepten paquetes de otros canales debido interferencias o solapamientos en la señal.

- MB: Velocidad máxima soportada por el AP.

- ENC: Algoritmo de cifrado que se usa. OPN = no existe encriptación (abierta),“WEP?” = WEP u otra (no se han capturado suficientes paquetes de datos para saber si es WEP o WPA/WPA2), WEP (sin el interrogante) indica WEP estática o dinámica, y WPA o WPA2 en el caso de que se use TKIP o CCMP.

- CIPHER: Detector de cifrado. Puede ser CCMP, WRAP, TKIP, WEP, WEP40, o WEP104.

- AUTH: El protocolo de autenticación usado. Puede ser MGT, PSK (clave precompartida), o OPN (abierta).

- ESSID: Nombre del AP. Tambien llamado “SSID”, que puede estar en blanco o indicando la longitud de este si la ocultación del SSID está activada en el AP.

Parte inferior:

- BSSID: Dirección MAC del punto de acceso (AP).

- STATION: Dirección MAC de cada cliente asociado.

- PWR: Nivel de señal.

- Lost: El número de paquetes perdidos en los últimos 10 segundos.

- Packets: El número de paquetes de datos enviados por el cliente.

- Probes: Los ESSIDs a los cuales ha intentado conectarse el cliente porque, previamente, ya se ha conectado a ellos.

En el caso del challenge, nos concreta el canal que se está empleando en el AP wifi-global. Para ello, podríamos emplear este comando (es el mismo sólo que especificando el nombre del AP):

sudo airodump-ng wlan0mon -w ~/capturas/captura01-wifi-global - manufacturer - wps - band abg - essid wifi-global
Airodump-ng wifi-global

# 02. ¿Cuál es la MAC del cliente wifi-IT??

(02. What is the MAC of the wifi-IT client)

En este challenge nos pide que indiquemos cuál es la MAC asociada al cliente que está conectado al AP wifi-IT.

En primer lugar, ejecutamos un airodump-ng filtrándolo por el nombre del AP para filtrar la información que nos devuelve la herramienta:

sudo airodump-ng wlan0mon -w ~/capturas/captura02-wifi-IT - manufacturer - wps - band abg - essid wifi-IT
Airodump-ng wifi-it

Descubrimos que está emitiendo en el canal 11 y volvemos a ejecutar el comando añadiendo el parámetro del canal -c 11.

sudo airodump-ng wlan0mon -w ~/capturas/captura02-wifi-IT - manufacturer - wps - band abg - essid wifi-IT -c 11
Airodump-ng wifi-it channel

Con la tecla “Tabulador” podemos señalar el AP que nos interesa y con la letra “m” le asignamos un color a dicho AP seleccionado y a los clientes que se muestran en pantalla. Pulsamos en la barra espaciadora, para pausar el output que nos da por pantalla y, de esta forma, podemos identificar de una forma sencilla y rápida cuál es la MAC del cliente conectado al AP.

Enabled AP selection
Enabled AP selection color

# 03. ¿Cuál es la probe de 78:C1:A7:BF:72:46?

(03. What is the probe of 78:C1:A7:BF:72:46?)

Información adicional: (¿Cuál es la probe de 78:C1:A7:BF:72:46 que sigue el formato de las demás redes del rango (wifi-)?)

Como bien comentamos en un post anterior, una Probe Response es una trama de gestión enviada por un punto de acceso en respuesta a una Probe Request. Contiene información sobre la red Wi-Fi como pueden ser el ESSID, las velocidades de transmisión admitidas y el canal utilizado.

Para ello, vamos a ejecutar de nuevo el comando airmon-ng pero esta vez sin ningún parámetro adicional.

sudo airodump-ng wlan0mon -w ~/capturas/captura03-probe - manufacturer - wps - band abg
Display sta only

Pulsamos varias veces la tecla “a” para que solamente se nos muestren los clientes (display sta only). Cómo se muestra en la captura, aparece la station 78:C1:A7:BF:72:46 y en la columna Probe, se muestra otro AP al que se ha conectado con anterioridad.

# 04. ¿Cuál es el ESSID del AP oculto (mac F0:9F:C2:6A:88:26)?

(04. What is the ESSID of the hidden AP (mac F0:9F:C2:6A:88:26)?)

Cuando se configuran los APs, no siempre se deja el ESSID visible debido a que no interesa. No por ello, quiere decir que no podamos saber cuál es su nombre.

En primer lugar, ejecutamos un airmon-ng para localizar dicho AP filtrando por el BSSID.

sudo airodump-ng wlan0mon -w ~/capturas/captura04-hidden - manufacturer - wps - band abg - bssid F0:9F:C2:6A:88:26
Airodump-ng hidden

Una vez localizado el AP oculto, vemos que su longitud es de 9 caracteres.

Tal y cómo aparece en el README, disponemos del fichero rockyou para hacer múltiples ataques. En este caso, creamos un nuevo archivo llamado wifiAPs-rockyou.txt, donde cada línea es una línea del archivo rockyou-top100000.txt precedida por ”wifi-”.

sudo cat /root/rockyou-top100000.txt | awk '{print "wifi-" $1}' > wifiAPs-rockyou.txt

El siguiente comando cuenta el número de líneas en el archivo wifiAPs-rockyou.txt.

wc -l wifiAPs-rockyou.txt

El siguiente comando muestra los primeros diez valores del fichero wifiAPs-rockyou.txt.

cat wifiAPs-rockyou.txt | head -10
Create dictionary

Una vez extraídos, paramos la antena que estábamos empleando antes (se puede hacer con cualquiera de las otras redes).

Nota: No es necesario parar e iniciar la antena, con el comando iwconfig wlan0mon channel 6 le indicamos el canal donde queremos que emita.

sudo airmon-ng stop wlan0mon
Airmon-ng stop

Analizando la primera captura de este challenge, observamos que el canal en el que está emitiendo es el 11. Por ello, iniciamos la tarjeta en dicho canal, para que el ataque que vamos a realizar posteriormente se ejecute con éxito.

sudo airmon-ng start wlan0 11
Airmon-ng start channel

Una vez tenemos la antena preparada en el canal correspondiente y una lista del APs, podemos ejecutar un ataque de fuerza bruta para encontrar el nombre del AP oculto.

sudo mdk4 wlan0mon p -t F0:9F:C2:6A:88:26 -f ~/wifiAPs-rockyou.txt
Md4 attack

De esta forma, obtendríamos el nombre de AP, tal y cómo se muestra en la captura.

Hasta aquí los 4 primeros retos del apartado RECON.

Challenge Recon complete

¡Nos vemos en el próximo! 😊

# Referencias

- Aircrack-ng

- Wi-Fi

- Explicación comandos

--

--

Carol12Gory - Oasis

Offensive Security Engineer en Telefónica Tech. Co-autora del libro Social Hunters: Hacking con ingeniería social en el Red Team. carol12gory.com | @Carol12Gory