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:

¡Espero que os resulte útil!

51-challenge-open

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.

52-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.

53-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
}

54-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

55-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

56-dhclient-r

Para asignar una IP con dhclient.

sudo dhclient wlan1 -v

57-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

58-ifconfig

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

59-conected

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

61-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

62-NetworkManager-start

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

63-connect

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

64-hidden-AP

65-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

66-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)

67-access

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

60-default

61-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.

68-config_network

sudo airodump-ng wlan0mon --band abg --essid wifi-guest

69-airodump-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

70-airodump-wifi-guest-guardando

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

71-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

72-wifi-guest-connected

Confirmamos que la MAC sale como station:

73-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.

74-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.

75-portal

Intentamos acceder con credenciales por defecto pero no funciona.

76-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

77-change-mac

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

sudo dhclient wlan1 -r

sudo dhclient wlan1 -v

78-new-IP-v2

Intentamos acceder y nos carga la interfaz.

79-portal-v2

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”.

80-wireshark 81-wireshark-flag 82-flag-portal

Hasta aquí los 2 retos del apartado OPN.

83-flags_OPN

¡Nos vemos en el próximo! 😊

Referencias