La WIFI del Hotel y el DNS

Publicado por Pedro C. el 12-03-2013

La mayoría de hoteles disponen de WiFi gratuita ya que es ahora uno de los principales servicios solicitados. Os recordamos que es un punto (in)seguro donde no debemos fiarnos en caso de conectar "a pelo" sin emplear nuestra propia VPN. Sin embargo, todavía hay muchos hoteles que disponen de un flamante Cutre-HotSpot WIFI de pago.

Iniciamos la conexión WiFi, nos dirigimos a cualquier página y zas!!! Portal cautivo para autenticarnos a veces a "precio de oro" como si cursaran el tráfico que generamos a precio de SMS premium. Vamos a ver en ésta entrada cómo podemos encapsular tráfico a través de peticiones DNS, que aunque algo lento a veces, nos servirá para auditar su seguridad sin necesidad de spoofear la MAC de un cliente legítimo, buscar proxies en la red interna, salir sólo por SSL, etc... Recordar que puede tener consecuencias legales...

En casa o en el curro...

Lo primero, será contar con un servidor DNS de tal forma que podamos tener acceso a sus consultas. Para ello, vamos a emplear FreeDNS ya que nos permite incluir registros de tipo A para IPv4, AAAA para IPv6, etc... y además es un servicio gratuito. Nos crearemos una entrada del tipo A ó AAAA a nuestra dirección IP de "casa" o del "curro" bajo cualquier dominio público que nos lo permita. En nuestro caso, le llamaremos s4ur0n.mooo.com apuntando a nuestra IP pública. Recordar que es necesario "abrir" los puertos en nuestro router. Daremos de alta un registro de tipo NS (NameServer) apuntando al registro que hemos creado antes, es decir, por ejemplo tuneldns.mooo.com apuntando a s4ur0n.mooo.com

A modo de ejemplo, podemos jugar con varios direccionamientos "por si falla" o "capan" alguno:

Entrada			Tipo	Valor
================================================
s4ur0n4.mooo.com	A	IPv4_Pública
s4ur0n6.mooo.com	AAAA	IPv6_Pública
tuneldns4.mooo.com	NS	s4ur0n4.mooo.com
tuneldns6.mooo.com	NS	s4ur0n6.mooo.com
				

Mientras esperamos que sea propagado a lo largo y ancho del mundo (unas 24-48 horas), vamos a preparar el servidor que nos permitirá crear uno de los extremos del túnel y ofrecernos "Internet sin restricciones" mediante herramientas como OzymanDNS, DNS2TCP o la que emplearemos hoy, Iodine que funciona bajo Linux, Mac OS X, FreeBSD, NetBSD, OpenBSD y Windows. Nombre curioso que proviene del Yodo que es un elemento químico con el número atómico 53 del DNS... jejeje!!!

Supongamos que nuestro equipo "casero" es un Debian. Tan sólo tendremos que poner:

#sysctl net.ipv4.ip_forward = 1
#apt-get update
#apt-get install iodine openvpn udev				
				

Los paquetes openvpn y udev los instalamos para tener soporte de TUN/TAP. Vamos a editar el fichero /etc/default/iodine y pondremos:

START_IODINED="true"
IODINED_ARGS="10.0.0.1 tuneldns4.mooo.com"
IODINED_PASSWORD="p4ssw0rds3gur0"
				

Notar que la dirección IP 10.0.0.1 será para el extremo del túnel del servidor. Podemos cambiarla y de hecho, entre los passwords (in)seguros y la 10.0.0.1 de los ejemplos, no es la primera vez que hemos encontrado un túnel gratuito ya montado...

Tan sólo, tendremos que reiniciar el servicio (al principio no habrá arrancado):

/etc/init.d/iodine restart				
				

Una vez todo ya montado, vamos a comprobar que el registro está propagado y es válido. Iremos a la página de comprobación de Iodine y pondremos tuneldns4.mooo.com para ver si todo ha sido correcto.

El cliente

Supongamos que se trata de un Windows. Instalaremos el adaptador TAP marcando tan sólo TAP Virtual Ethernet Adapter y como de costumbre, siguiente...

Bajaremos la versión de iodine para windows y lo descomprimiremos en cualquier directorio. Por ejemplo, en C:\Users\s4ur0n\iodine

c:\Users\s4ur0n\iodine>iodine -f -P p4ssw0rds3gur0 10.0.0.2 tuneldns4.mooo.com

Opening device Local Area Connection 24
Opened UDP socket
Opened UDP socket
Opened UDP socket
Sending DNS queries for tuneldns4.mooo.com to 1.2.3.4
Autodetecting DNS query type (use -T to override).
Using DNS type NULL queries
Version ok, both using protocol v 0x00000502. You are user #0
Enabling interface 'Local Area Connection 24'
Setting IP of interface 'Local Area Connection 24' to 10.0.0.2 (can take a few seconds)...

Server tunnel IP is 10.0.0.1
Testing raw UDP data to the server (skip with -r)
Server is at 1.2.3.4, trying raw login: OK
Sending raw traffic directly to 1.2.3.4
Connection setup complete, transmitting data.

c:\Users\s4ur0n\iodine>ping 10.0.0.1

Haciendo ping a 10.0.0.1 con 32 bytes de datos:
Respuesta desde 10.0.0.1: bytes=32 tiempo<437ms
Respuesta desde 10.0.0.1: bytes=32 tiempo<214ms
Respuesta desde 10.0.0.1: bytes=32 tiempo<211ms
Respuesta desde 10.0.0.1: bytes=32 tiempo<212ms
[...]				
				

Con lo cual, ya tenemos establecida la conexión "sin capar" y habremos logrado realizar un bypass del Cutre-HotSpot que nos han montado.

Vamos a montarnos un proxy local para poder navegar, descargar, etc... sin problemas. Para ello, vamos a emplear Kitty que es un fork de putty preparado con más opciones que el programa original.

Una vez descargado, lo ejecutaremos haciendo un doble clic y nos iremos a Connection, SSH, Tunnels y completaremos:

Source port: 3128
Dynamic (marcado)
Auto (marcado)				
				

Dejaremos el resto de opciones sin marcar, pulsaremos el botón Add y nos conectaremos a 10.0.0.1 como de costumbre.

Desde el navegador, tan sólo tendremos que configurar el proxy con la dirección 127.0.0.1, puerto 3128, SOCKS Proxy o SOCKS v5 y podremos "navegar" sin restricciones.

Si la inspección de paquetes hubiera estado activada, se hubiera detectado rápidamente que los paquetes enviados y recibidos al DNS "poco tienen que ver" con consultas legítimas a un servidor DNS, además de generar un tráfico de red inusual... pero en la recepción del hotel estarían más entretenid@s observando las cámaras que pendientes de monitorizar el tráfico de la red...

Recordaros que en los Cursos especializados de Seguridad Informática y Administración de Sistemas que ofrecemos en Academia MADESYP realizamos y establecemos las contramedidas con todo esto y mucho más...

Ser buenos y no hagáis maldades!