· Pablo Plaza Martínez · tutoriales · 4 min read
Saltándose páginas de login de redes WiFi
Dos técnicas reales para bypassar portales cautivos en redes WiFi: clonación de MAC (autenticación débil) y tunelización DNS con iodine (para portales más protegidos). Actualizado con herramientas modernas, mejores prácticas y recomendaciones de seguridad.

Saltandose páginas de login de redes WIFIEn muchos hoteles, institutos y empresas se establece un portal cautivo para controlar el acceso a la red WIFI. En este post veremos dos casos reales en los que se pudo saltar este login, uno con una protección muy baja y otro que requería algo mas de trabajo pero que una vez preparado todo nos permite saltarnos la restricción en muchos de los portales con esa misma configuración.
Durante un viaje a Madrid para asistir a la h-con 2019 nos hospedamos en un hotel. En este hotel existía un portal cautivo que controla el acceso a internet solo para clientes. En una noche aburrido se me ocurrió darle una vuelta a ver si conseguía saltarme este login y de paso escribir algo. En este caso los administradores de esta red WIFI no se tomaron muy enserio la restricción e implementaron una autenticación por MAC.

Como muestro en la captura una vez me he conectado a la red WIFI salta una página de login. Intentando hacer ping a ironhackers.es vemos que no tenemos acceso a internet. Este ataque es muy simple ya que simplemente consiste en clonar la MAC de un dispositivo que ya este autorizado y podremos navegar. Lo primero que debemos de hacer es obtener la MAC de los dispositivos de la red.

nmap -sP 192.168.1.1-255 Una vez tenemos la MAC de una víctima procederemos a cambiar la MAC de nuestra tarjeta de red por la suya. Para esto utilizaramos macchanger.

#Apagamos la interfaz wlan0
ifconfig wlan0 down
#Mostramos la MAC de la interfaz wlan0
macchanger -s wlan0
#Cambiamos la MAC por la escrita
macchanger -m F0:43:47:91:B0:FD wlan0
#Volvemos a levantar la interfaz wlan0
ifconfig wlan0 up Ya tenemos acceso a internet con este simple ataque.
Empezamos con el segundo caso en el cual los administradores habían establecido alguna medida mas seria. En este caso es un portal con autenticación mediante un servidor radius con unas credenciales por cada usuario, asi que ya de primeras descartamos la autenticación por MAC.
Ahora lo que probamos es a intentar hacer una resolución DNS

nslookup ironhackers.es Como la resolución funciona podemos probar a realizar un tunel DNS que encapsule el tráfico TCP. Para esta técnica necesitaremos un servidor accesible con SSH,un dominio bajo nuestro control y crear una serie de registros DNS. Yo en mi caso tengo el dominio ironhackerspanel.xyz El primer paso será la creación de un subdominio que apunte al servidor accesible que será a través del cual navegaremos simulando un servidor DNS.

En este caso crearemos server.ironhackerspanel.xyz Después tendremos que crear otro subdominio con un registro NS que resolverá el DNS hacía el subdominio anterior.

tunnel.ironhackerspanel.xyz será el subdominio con el registro NS. La tabla de registros DNS quedará de la siguiente manera:

Con esta parte configurada pasamos al siguiente paso. Para la creación de un tunel DNS utilizaremos la herramienta iodine. En el GitHub encontramos el proyecto que tendremos que clonar y compilar tanto en el servidor como en el cliente para poder ejecutar los binarios, es posible que haya que instalar alguna dependencia. Con la siguiente secuencia de comandos se hace el proceso completo.

#Bajamos el proyecto de GitHub
git clone https://github.com/yarrick/iodine.git
#Dependencias, si ya estan instaladas no hacer
apt-get install make
apt-get install gcc
apt-get install zlib1g-dev
cd iodine
#Compilamos make Una vez descargado y compilado procederemos a dejar ejecutando el binario del servidor para así poder conectarnos a el sin entrar en el portal cautivo.

#-f indica que no corra en segundo plano, solo era por mejor comprension
#-P 12345 estblece como contraseña 1234
# 10.10.10.1 indica la red virtual a crear, debe estar libre
./iodined -f -c -P 12345 10.10.10.1 tunnel.ironhackerspanel.xyz Esto lo podemos iniciar como un servicio para así solo tener que levantar la máquina servidor y que siempre este corriendo. Ahora pasamos a la prueba en la que hemos conectado a la red WIFI y nos salta el portal cautivo. Procederemos a conectarnos con el binario del cliente lo que hará que tengamos conexión tunelizada con la red virtual creada en el servidor 10.10.10.1/24. Esto nos permitirá realizar un tunel SSH y crear un proxy dinámico.
#Conectamos al servidor DNS fake con la password 12345
./iodine -f -P 12345 tunnel.ironhackerspanel.xyz
#Una vez realizada la conexion realizamos el tunel SSH hacia la ip del servidor en la red virtual
ssh -i ghostpp7.pem -D 1080 ubuntu@10.10.10.1 Una vez seguido estos pasos tendremos un proxy socks en localhost 1080 y a través de proxychains configurado como en el video o añadiendo el proxy al navegador podremos navegar, eso si la velocidad será reducida debido al tunel.
Herramientas: iodine, amazon AWS

