You are on page 1of 6

Evadir un portal cautivo mediante un tnel DNS

PUBLICADO POR VICENTE MOTOS ON JUEVES, 19 DE SEPTIEMBRE DE 2013 ETIQUETAS: HERRAMIENTAS , REDES , TUTORIALES

En una cafetera, en el aeropuerto, en un hotel... hoy en da en cualquier sitio
existen puntos de acceso wi-fi abiertos que te ofrecen la posibilidad de navegar por
Internet, aunque la mayora durante un tiempo limitado y por un precio fijado. Son
los llamadoshotspot pblicos que te redireccionan a la web de un portal cautivo
para solicitar previamente unas credenciales por las que has tenido que pagar.
Evadirlos sin embargo es muy fcil...

Lo primero comentaros lo que seguro ya sabis: estas redes inalmbricas carecen
de cualquier tipo de cifrado por lo que es posible esnifar el trfico y robar la
sesin de otro usuario conectado (o las credenciales de Facebook, Dropbox,
Whatsapp, etc.). Es decir, no sera dificil envenenar ARP y/o hacer MiTM para
obtener lo que buscamos puesto que la inmensa mayora de los usuarios NO
utilizan un servicio VPN para protegerse en este tipo de redes pblicas. Pero
no vamos a no ser demasiado malos y simplemente vamos a navegar sin robar
nada a ningn otro cliente...

Para ello vamos a aprovecharnos de que normalmente estos puntos de acceso
permiten utilizar el protocolo DNS sin necesidad de estar autenticado.
Veamos. Por ejemplo, si nos conectamos a un SSID "wifi_hotel" e intentamos
navegar se nos redireccionar a un portal cautivo Cisco:

https://1.1.1.1/login.html?redirect=web


Pero sin embargo comprobamos que si podemos resolver cualquier nombre de
Internet:
Adaptador de LAN inalmbrica Conexin de red inalmbrica:

Sufijo DNS especfico para la conexin. . :
Direccin IPv4. . . . . . . . . . . . . . : 192.168.2.133
Mscara de subred . . . . . . . . . . . . : 255.255.255.0
Puerta de enlace predeterminada . . . . . : 192.168.2.1

C:\Users\vmotos>ping www.oracle.com

Haciendo ping a e7075.b.akamaiedge.net [23.51.70.140] con 32 bytes de datos:
Control-C
^C
C:\Users\vmotos>ping www.google.es

Haciendo ping a www.google.es [173.194.41.215] con 32 bytes de datos:
Control-C

Gracias a esto podremos encapsular IPv4 en el payload de los datos de los
paquetes UDP y establecer un tnel DNS con un servidor externo.

Quizs la herramienta ms extendida y la que utilizar en este caso es iodine que
facilita el tnel cliente-servidor mediante un interfaz TUN/TAP normalmente creado
por OpenVPN, aunque (no s vosotros) yo no dispongo de un servidor externo, as
que para tener la parte servidor de iodine utilizar dns.canhasinter.net, que es un
servicio que nos permitir 500mb de trfico gratuito ampliables mediante pago con
bitcoins.

Para empezar tenemos que tener previamente instalado OpenVPN con un
interfaz tun/tap creado y un cliente ssh, con puttygen.exe si os gusta el PuTTY
(qu mal suena esto XD). En mi caso utilizar Windows 7 con msysgit (Git para
Windows) y los primero que haremos ser generar un par de claves simtricas para
luego registrarnos en el servidor del proveedor:
vmotos@PCVMOTOS ~
$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/c/Users/vmotos/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /c/Users/vmotos/.ssh/id_rsa.
Your public key has been saved in /c/Users/vmotos/.ssh/id_rsa.pub.
The key fingerprint is:
7e:0c:73:b7:b6:ba:4c:4f:ce:f0:02:3c:3e:66:e8:c5 vmotos@PCVMOTOS

Ahora descargamos iodine para Windows y ejecutamos:
C:\Users\vmotos\Desktop\iodine-0.6.0-rc1-win32\bin>iodine.exe -f -P canhasinternet 166.78.128.18
i.dfw1.dns.canhasinter.net
Opening device Conexin de rea local 4
Opened UDP socket
Opened UDP socket
Sending DNS queries for i.dfw1.dns.canhasinter.net to 166.78.128.18
Autodetecting DNS query type (use -T to override)Opened UDP socket
.
Using DNS type NULL queries
Version ok, both using protocol v 0x00000502. You are user #0
Enabling interface 'Conexin de rea local 4'
Setting IP of interface 'Conexin de rea local 4' to 172.16.0.2 (can take a few
seconds)...

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

Con sto hemos establecido un tnel virtual punto a punto mediante el interfaz
tun/tap 'Conexin de rea local 4'. Ahora tendremos que registrarnos con la clave
pblica generada:
vmotos@PCVMOTOS ~
$ ssh nopass@172.16.0.1
The authenticity of host '172.16.0.1 (172.16.0.1)' can't be established.
RSA key fingerprint is 17:79:60:65:21:8e:af:c6:4a:20:98:a5:8c:cc:e6:b5.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '172.16.0.1' (RSA) to the list of known hosts.

Help:
a) About
r) Register
l) Login
q) Quit
? r
Register:
Enter in an SSH key (~/.ssh/id_rsa.pub) to register your account.
You must have a 2048 bit RSA key. No others accepted.
Input must be exactly 372 characters. Paste the key here.
Do not paste in the ssh-rsa prefix. Go from the start of the key to
the end without the user@host comment section.
Press ctrl+c if you wish to abort.
?
Does this key look good?
AAAAB3NzaC1yc2EAAAABIwAAAQEAu/iH3eybVrQcvXhSh4SKxsOUNfJmSogAoxOHlrx/Tu8IwmyA+0ha
G0R+ZFNxwikfLXmMrzNvBwVjWdQ9wfxVw9adwD7H7l4vORuj/Nh//Jxq7EV2fSPnmco8wRCFHoSidYmW
1baZijiv2hEcIDJlyMY9KM23vhOTI91XewCl5KSWsjVgz4tpSwOh2n9G/JFf8u53+HqP4N+eUgWNss/Z
G2OFcfb3rVuCm5LMDfClOQ41wiGH69bdvgubt7/eCREhJlfWS8NZsf4eFx5x+6sj44+2bU3TPHKKG1U2
jMiWQcRHp5PYKx9TwgC4pePe4MOgfvFC3A8ER2y8s6jNpfglMw==
? y
Registration successful!
? e
Help:
a) About
r) Register
l) Login
q) Quit
?
? q
Connection to 172.16.0.1 closed.

Ahora mantenemos las rutas para los servidores DNS y cambiamos el gateway por
defecto para redireccionar todo el trfico por el tnel:

D:\>route add 8.8.8.8 mask 255.255.255.255 192.168.2.1
Correcto

D:\>route add 8.8.4.4 mask 255.255.255.255 192.168.2.1
Correcto

D:\>route add 166.78.128.18 mask 255.255.255.255 192.168.2.1
Correcto

D:\>route delete 0.0.0.0
Correcto

D:\>route add 0.0.0.0 mask 0.0.0.0 172.16.0.1
Correcto

Finalmente lanzamos el cliente ssh:
ssh dns@172.16.0.1
Bandwidth purchased: N/A Bandwidth used: 560134
Bandwidth remaining: 499 MB
Bitcoin address: 1GMaV7RMyiagFmkv3EyPGGvgJ647bBFEfn
BTC/GB: 0.001. Minimum suggested payment 0.01 BTC.
Last transasction: N/A

Y probamos... ;)

D:\>ping www.oracle.com

Haciendo ping a e7075.b.akamaiedge.net [23.77.102.140] con 32 bytes de datos:
Respuesta desde 23.77.102.140: bytes=32 tiempo=265ms TTL=51
Respuesta desde 23.77.102.140: bytes=32 tiempo=260ms TTL=51

Estadsticas de ping para 23.77.102.140:
Paquetes: enviados = 2, recibidos = 2, perdidos = 0
(0% perdidos),
Tiempos aproximados de ida y vuelta en milisegundos:
Mnimo = 260ms, Mximo = 265ms, Media = 262ms
Control-C
^C
D:\>tracert www.oracle.com

Traza a la direccin e7075.b.akamaiedge.net [23.77.102.140]
sobre un mximo de 30 saltos:

1 135 ms 136 ms 135 ms 172.16.0.1
2 139 ms 136 ms 136 ms 166.78.16.2
3 140 ms 139 ms 138 ms core3.dfw1.rackspace.net [72.3.202.48]
4 182 ms 139 ms 138 ms coreb.dfw1.rackspace.net [74.205.108.22]
5 141 ms 138 ms 138 ms corea-edge6.dfw1.rackspace.net [74.205.108.113]

6 140 ms 139 ms 139 ms ae53.edge10.Dallas1.Level3.net [4.28.44.161]
7 143 ms 138 ms 149 ms ae-3-80.edge5.Dallas3.Level3.net [4.69.145.145]

8 140 ms 139 ms 138 ms xe-8-1-2.dal33.ip4.tinet.net [77.67.71.221]
9 264 ms 262 ms 270 ms xe-0-0-0.bru20.ip4.tinet.net [89.149.187.121]
10 270 ms 267 ms 265 ms akamai-gw.ip4.tinet.net [77.67.65.90]
11 265 ms 259 ms 259 ms a23-77-102-140.deploy.static.akamaitechnologies.
com [23.77.102.140]

Traza completa.


Y ya est, ya podemos navegar... aunque recordar que conviene utilizar adems un
servicio VPN para mantener la privacidad de nuestros datos.

You might also like