Wi-Fi desde 0 - OPN
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 - Configuración del entorno
¡Espero que os resulte útil!
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.
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.
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
}
- 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
- -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
Para asignar una IP con dhclient.
psudo dhclient wlan1 -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
Probamos a acceder a la IP del router a través del navegador (por defecto, la IP del router suele ser la .1)
Probamos credenciales por defecto como pueden ser admin/admin y accedemos y visualizamos la flag que buscamos.
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
Una vez iniciado, nos vamos a la esquina derecha superior y pulsamos sobre el símbolo de Wi-Fi.
Seleccionamos la opción de conectarnos a una red oculta e introducimos el nombre del SSID 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
Probamos a acceder a la IP del router a través del navegador (por defecto, la IP del router suele ser la .1)
Probamos credenciales por defecto como pueden ser admin/admin y accedemos dentro, visualizando la flag que buscamos.
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.
sudo airodump-ng wlan0mon --band abg --essid 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
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
network={
ssid="wifi-guest"
key_mgmt=NONE
}
Ejecutamos el siguiente comando:
sudo wpa_supplicant -D nl80211 -i wlan1 -c wifi-guest.conf
Confirmamos que la MAC sale como station:
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.
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.
Intentamos acceder con credenciales por defecto pero no funciona.
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
wpa_supplicant -D nl80211 -i wlan1 -c wifi-guest.conf
sudo dhclient wlan1 -r
sudo dhclient wlan1 -v
Intentamos acceder y nos carga la interfaz.
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”.
Hasta aquí los 2 retos del apartado OPN.
¡Nos vemos en el próximo! 😊
Referencias
- Wi-Fi