Wi-Fi desde 0 - OPN

Carol12Gory - Oasis
8 min readSep 26, 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 “OPN”. Una red OPN es red sin contraseña o protegida por un portal cautivo (Implementación de software que impide que los clientes accedan a una red hasta que se haya establecido la verificación del usuario. Se configura para realizar una verificación que permitir el acceso tanto a invitados como a usuarios autenticados. Los usuarios autenticados deben ser validados contra una lista de base de datos de detalles de usuarios aprobados antes de que se conceda el acceso).

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

- Wi-Fi desde 0

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

- Wi-Fi desde 0 - Recon

¡Espero que os resulte útil!

Challenge OPN

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

05. ¿Cuál es la flag en el router AP oculto detrás de las credenciales por defecto?

(05. What is the flag in the hidden AP router behind default credentials?)

Como bien se describe en el challenge, esta red se trata de un portal cautivo.

La red objetivo de esta sección es:

- Red oculta: <longitud: 9> (que en el challenge anterior hemos descubierto su nombre)

En primer lugar, comprobamos el estado de la tarjeta con el comando iwconfig wlan0mon y, al comprobar que está en modo monitor, ejecutamos un airodump-ng para identificar las redes.

Iwconfig OPN
sudo airodump-ng wlan0mon --band abg

Pulsando la tecla “s” podemos ordenar el output de la pantalla, quedando ordenados los APs por tipo de cifrado sorting by encrytion.

Airodump encryption

A partir de aquí existen varias formas de conectarse al punto oculto y vamos a explicar 2 de ellas.

La primera será utilizando wpa_supplicant y la segunda NetworkManager.

PRIMERA FORMA

En la primera forma, vamos a crear un fichero de configuración en el cual vamos a introducir los parámetros para podernos conectar a la red.

WPA SUPPLICANT es un software utilizado para conectarse a redes inalámbricas. El archivo de configuración especifica las redes y políticas de seguridad aceptadas, incluyendo claves precompartidas.

A continuación, se muestra un ejemplo de fichero de configuración que se puede emplear:

pico wifi-free.conf
cat wifi-free.conf

network={
ssid="wifi-free"
key_mgmt=NONE
scan_ssid=1
}
Fichero conf wifi-free

- ssid=”wifi-free”: El nombre de la red inalámbrica a la que se va a conectar.

- key_mgmt=NONE: No se va a usar ningún método de gestión de claves, lo que significa que la red no está protegida por una contraseña.

- scan_ssid=1: Se va a realizar un escaneo específico para el SSID, lo que puede ser útil para redes ocultas.

Una vez configurado el fichero, procedemos a ejecutar wpa_supplicant. Vamos a emplear una antena que no esté en modo monitor, por ejemplo, wlan1.

sudo wpa_supplicant -D nl80211 -i wlan1 -c wifi-free.conf
wpa_supplicant wifi-free

- -D nl80211: Especifica el controlador de red inalámbrica a utilizar. En este caso, se utiliza nl80211, que es el controlador de red inalámbrica más común en sistemas Linux modernos.

- -i wlan1: Especifica la interfaz de red inalámbrica a utilizar. En este caso, se utiliza wlan1.

- -c wifi-free.conf: Especifica el archivo de configuración a utilizar. En este caso, se utiliza el archivo wifi-free.conf, creado en el paso anterior.

Una vez conectados con wpa_supplicant, procedemos a asignarnos con dhclient una IP dinámica asignada por el DHCP.

Para evitar conflictos, si nos conectamos varias veces y vemos que no funciona correctamente el DHCP, podemos liberar la dirección IP asignada a la interfaz y detener el cliente DHCP en ejecución.

sudo dhclient wlan1 -r
dhclient -r

Para asignar una IP con dhclient.

psudo dhclient wlan1 -v
dhclient -v

Si nos fijamos, hace la solicitud a la IP 192.168.16.1, es decir, al servidor DHCP que, en este caso, parece que es el router. Esto nos puede dar información para el siguiente paso.

Comprobamos que tenemos una IP

ifconfig wlan1
ifconfig

Probamos a acceder a la IP del router a través del navegador (por defecto, la IP del router suele ser la .1)

Connected

Probamos credenciales por defecto como pueden ser admin/admin y accedemos y visualizamos la flag que buscamos.

default credentials
flag01

SEGUNDA FORMA

La segunda forma es a través de NetworkManager, es decir, un software para simplicar el uso de las distintas redes de Linux.

Para ello, tenemos que arrancar dicho servicio ya que, anteriormente, lo hemos detenido.

sudo service NetworkManager start
NetworkManager start

Una vez iniciado, nos vamos a la esquina derecha superior y pulsamos sobre el símbolo de Wi-Fi.

Connect Wi-Fi

Seleccionamos la opción de conectarnos a una red oculta e introducimos el nombre del SSID wifi-free.

hidden AP
wifi-free

Una vez conectados, comprobamos desde la terminal que tenemos una IP asignada (En este caso no ha hecho falta asignarse una con dhclient debido a que lo hace automáticamente NetworkManager).

ifconfig wlan1
ifconfig wifi-free

Probamos a acceder a la IP del router a través del navegador (por defecto, la IP del router suele ser la .1)

Access

Probamos credenciales por defecto como pueden ser admin/admin y accedemos dentro, visualizando la flag que buscamos.

Default credentials
flag01

Como hemos comprobado, este método es más rápido y sencillo pero pierde la magia de interactuar con diferentes herramientas a través de terminal.

06. ¿Cuál es la flag en el AP router de la red wifi-guest?

(06. What is the flag on the AP router of the wifi-guest network?)

En primer lugar, vamos a analizar la red.

Config network
sudo airodump-ng wlan0mon --band abg --essid wifi-guest
Airodump-ng wifi-guest

Analizamos que se encuentra en el canal 6. Volvemos a lanzar el comando añadiendo el parámetros del canal y guardamos el fichero con los paquetes capturados.

sudo airodump-ng wlan0mon --band abg --essid wifi-guest -c 6 -w capturas/captura06
Airodump-ng wifi-guest -w

En otra terminal, repetimos la primera forma que hemos visto en el challenge anterior.

Creamos el fichero wifi-guest.conf para conectarnos a la red oculta.

pico wifi-guest.conf
wifi-guest
network={
ssid="wifi-guest"
key_mgmt=NONE
}

Ejecutamos el siguiente comando:

sudo wpa_supplicant -D nl80211 -i wlan1 -c wifi-guest.conf
wifi-guest connected

Confirmamos que la MAC sale como station:

mac wlan1

Abrimos otra terminal y ejecutamos los siguientes comandos para que nos asigne una IP por DHCP.

sudo dhclient wlan1 -r → Para liberar la IP (en el caso de que esté ocupada)
sudo dhclient wlan1 -v → Para asignar una IP.
new IP

Probamos a acceder a la IP del router a través del navegador (por defecto, la IP del router suele ser la .1) y nos carga la siguiente imagen.

Portal

Intentamos acceder con credenciales por defecto pero no funciona.

Portal_1

La opción que tenemos es realizar un bypass al panel de autenticación para poder acceder.

Para ello, podemos inspeccionar el tráfico, ver si hay algún cliente conectado al AP y poder suplantar su MAC.

En primer lugar, analizamos la información recopilada en el airodump-ng lanzado anteriormente y vemos que existe un cliente conectado al AP.

sudo ifconfig wlan1 down
sudo macchanger -m b0:72:bf:44:b0:49 wlan1
sudo ifconfig wlan1 up
change mac
wpa_supplicant -D nl80211 -i wlan1 -c wifi-guest.conf
sudo dhclient wlan1 -r
sudo dhclient wlan1 -v
new IP

Intentamos acceder y nos carga la interfaz.

new portal

Si abrimos la trama anteriormente guardada capturas/captura06 con wireshark y filtramos por “http”, podremos visualizar las claves de acceso en alguna de las tramas que hacen un “POST”.

wireshark
wireshark flag
flag portal

Hasta aquí los 2 retos del apartado OPN.

flags OPN

¡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