Resultados 1 al 3 de 3

Evadir un portal cautivo mediante un túnel DNS en Internet

  1. #1 Evadir un portal cautivo mediante un túnel DNS en Internet 
    HH Administrator Avatar de LUK
    Fecha de ingreso
    Oct 2001
    Ubicación
    SpaÑa
    Mensajes
    5.284
    Descargas
    223
    Uploads
    250
    En una cafetería, en el aeropuerto, en un hotel... hoy en día en cualquier sitio existen puntos de acceso wi-fi abiertos que te ofrecen la posibilidad de navegar por Internet, aunque la mayoría durante un tiempo limitado y por un precio fijado. Son los llamados hotspot públicos 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 fácil...

    Lo primero comentaros lo que seguro ya sabéis: estas redes inalámbricas carecen de cualquier tipo de cifrado por lo que es posible esnifar el tráfico y robar la sesión de otro usuario conectado (o las credenciales de Facebook, Dropbox, Whatsapp, etc.). Es decir, no sería dificil envenenar ARP y/o hacer MiTM para obtener lo que buscamos puesto que la inmensa mayoría de los usuarios NO utilizan un servicio VPN para protegerse en este tipo de redes públicas. Pero no vamos a no ser demasiado malos y simplemente vamos a navegar sin robar nada a ningún 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:

    Código:
    Adaptador de LAN inalámbrica Conexión de red inalámbrica:
    
       Sufijo DNS específico para la conexión. . :
       Dirección IPv4. . . . . . . . . . . . . . : 192.168.2.133
       Máscara 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 túnel DNS con un servidor externo.

    Quizás la herramienta más extendida y la que utilizaré en este caso es iodine que facilita el túnel 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 correr la parte servidor de iodine utilizaré dns.canhasinter.net, que es un servicio que nos permitirá 500mb de tráfico 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 simétricas para luego registrarnos en el servidor del proveedor:

    Código:
    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ódigo:
    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 Conexi¾n 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 'Conexi¾n de ßrea local 4'
    Setting IP of interface 'Conexi¾n 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 túnel virtual punto a punto mediante el interfaz tun/tap 'Conexi¾n de ßrea local 4'. Ahora tendremos que registrarnos con la clave pública generada:

    Código:
    vmotos@PCVMOTOS ~
    $ ssh [email protected]
    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 tráfico por el túnel:


    Código:
    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:


    Código:
    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 :


    Código:
    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
    
    Estadísticas de ping para 23.77.102.140:
        Paquetes: enviados = 2, recibidos = 2, perdidos = 0
        (0% perdidos),
    Tiempos aproximados de ida y vuelta en milisegundos:
        Mínimo = 260ms, Máximo = 265ms, Media = 262ms
    Control-C
    ^C
    D:\>tracert www.oracle.com
    
    Traza a la dirección e7075.b.akamaiedge.net [23.77.102.140]
    sobre un máximo 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 además un servicio VPN para mantener la privacidad de nuestros datos.


    [][][] LUK [][][]
    hackhispano.com
    Citar  
     

  2. #2  
    Avanzado
    Fecha de ingreso
    Jan 2008
    Mensajes
    170
    Descargas
    8
    Uploads
    0
    Muy bueno
    "La información es poder "
    Citar  
     

  3. #3  
    Moderador HH
    Fecha de ingreso
    Mar 2003
    Ubicación
    Galiza
    Mensajes
    3.919
    Descargas
    8
    Uploads
    1
    Excelente artículo
    He conocido muchos dioses. Quien niegue su existencia está tan ciego como el que confía en ellos con una fe desmesurada. Robert E. Howard
    La suerte ayuda a la mente preparada.
    Citar  
     

Temas similares

  1. IoDine: túnel DNS para saltarse un portal cautivo
    Por Fruit en el foro REDES Y TECNOLOGIAS WIRELESS
    Respuestas: 5
    Último mensaje: 25-12-2023, 18:35
  2. Respuestas: 1
    Último mensaje: 13-09-2016, 13:17
  3. Raspberry con portal cautivo, ayuda
    Por yopregunto en el foro LINUX - MAC - OTROS
    Respuestas: 0
    Último mensaje: 04-02-2016, 18:51
  4. Respuestas: 0
    Último mensaje: 23-03-2010, 11:05
  5. Respuestas: 0
    Último mensaje: 30-04-2003, 21:11

Marcadores

Marcadores