sábado, julio 11, 2015

La dirección molona IPv6 escrita en L33t de face:b00c::

Durante un par de años estuve jugando mucho con el hacking de IPv6. Estuve dándole muchas vueltas hasta que conseguí lanzar desde Informática 64 la famosa Evil FOCA, que culminó en una conferencia en DefCon sobre cómo atacar las conexiones a Internet de un cliente usando IPv6. En ella hice las demostraciones de los ataques de Neighbor Spoofing, SLAAC, Bridging HTTPs(IPv4)-HTTP(IPv6), Web Browsing Auto Configuration con SSLStrip, etcétera. Todos ellos acabaron explicados y detallados en un extenso capítulo del libro de Ataques en Redes de Datos IPv6&IPv6 2ª Edición.

Figura 1: La dirección molona IPv6 escrita en L33t de face:b00c::

Desde entonces, mi vuelta a IPv6 había sido muy puntual. Cuando se publicó la prueba de concepto para hacer una ataque de IPv6 Redirect y conseguir hacer un man in the middle, y poco más.


Figura 2: DEFCON 21 - Attacking Internet Connnections using IPv6

La IPv6 Molona de Facebook

Una de las cosas que me ha llamado la atención ha sido la dirección IPv6 que se ha puesto Facebook en sus servidores. Para verla solo necesitas usar un cliente DNS tipo nslookup y configurar las consultas de tipo AAAA para poder saber qué dirección han configurado en Facebook.

Figura 3: Dirección IPv6 de www.facebook.com -> 2a03:2880:f004:1:face:b00c::1

Como se ve, han usando los valores hexadecimales para poner en lenguaje Leet el nombre de la compañía. Algo similar a esto lo hizo ya con el nombre del dominio del servidor de Facebook en la red TOR.

Figura 4: Nombre de Facebook en la red TOR -> facebookcorewwwi

Esto mismo también lo han hecho en los servidores de Instagram que atienden por IPv6, pero no he visto algo igual en los servidores de WhatsApp, donde no tienen habilitado por ahora IPv6 ni el dominio principal ni el servidor de WhastApp Web.

Figura 5: Dirección IPv6 de instagram -> face:b00c::43fe

En otras compañías, como BBC, es bastante sencillo hacer uso de las direcciones IPv6 para dejar su marca, ya que las iniciales están en el código hexadeciminal.

Figura 6: Direcciones IPv6 de BBC 

En este caso de la BBC, son direcciones IPv6 comenzado por 2001, así que son para túneles Teredo, habitualmente utilizadas en conexiones VPN o Direct Access de Microsoft.

Las "menos-mola" de Google, Linkedin y Microsoft

En el caso de Google - mira que es raro con lo cool que suelen ser ellos - con IPv6 siguen siendo un poco "aburridos" y no solo sigue sin estar IPv6 activado por defecto en Google Chrome, sino que sus servidores tienen direcciones IPv6 "del montón".

Figura 7: Dirección IPv6 de Google.com 
Figura 8: Dirección IPv6 de Youtube.com

Microsoft tiene, al menos en las configuraciones para las conexiones desde España, redirigido el tráfico a Akamai, con direcciones IPv6 también bastante comunes.

Figura 9: Dirección IPv6 de www.microsoft.com
Figura 10: Dirección IPv6 de Linkedin

Y lo mismo en Linkedin. He estado mirando alguna más, pero solo Facebook o BBC estaban haciendo esto con los servidores. ¿Conoces alguna otra empresa u organización que esté escribiendo en Elite sus direcciones IPv6? A mí me ha molado la idea.

Saludos Malignos!

9 comentarios:

  1. El canal de IRC Hispano hace ya muchos años usaba 2a00:1d70:faba:da::pero no se siquiera si siguen estando activos...

    ResponderEliminar
  2. ¿Cómo que chrome tiene ipv6 desactivado? Llevo años con ipv6 en casa con un tunel de Hurricane Electric y ahora tengo una conexión con ipv6 nativa y nunca he tenido que activar ipv6 en chrome (si en Firefox hace años).

    Sin embargo si que se que chrome evitaba activamente usar ipv6 si detectaba que la conexión era problemática o si era un tunel Teredo/Miredo, ya que solían tener mucha mas latencia que la conexión ipv4 y a veces problemas de estabilidad (Ver comentarios en el bug: 259940).

    Tests:
    ipv6test.google.com
    test-ipv6.com
    ipv6-test.com
    Y por supuesto la tortuga danzarina de kame en www.kame.net

    ResponderEliminar
  3. @General Failure, entra en chrome://net-internals/#dns y compruébalo. En todas las versiones que he instalado en los últimos años está desactivado. Si tienes un servidor web en la red local, no tira. Si alguien más tiene Google Chrome, que lo pruebe y diga cómo lo tiene.

    Saludos!

    ResponderEliminar
  4. @Maligno, claro que tengo ipv6 activo, por eso lo puse, tanto en net-internals (Default address family: UNSPECIFIED), como en todas las páginas de test lo confirmo.

    Mira a ver si tu conexión ipv6 es un tunel Teredo, en ese caso no te funcionara, lee el bug 132128, tendrás que activar ipv6 manualmente en net-internals cada vez o en la línea de comandos.

    ResponderEliminar
  5. @General Failure, no es una conexión con Tunel Teredo. Pero en redes locales, tampoco lo activa por defecto. Hay que hacerlo manualmente también en la Lan.

    Saludos!

    ResponderEliminar
  6. Entonces habrá que buscar un proveedor que nos venda el rango correspondiente a faba:da::, si existiera claro.

    ResponderEliminar
  7. @Maligno, si claro, es justo lo que explican en los bugs que te puse, que en caso de ser link-local o loopback no se considera que ipv6 sea funcional, con toda lógica ya que no tienes acceso a internet por ipv6. Adicionalmente esos bugs hablan de que teniendo acceso a internet por ipv6 puede darse el caso de que chrome lo desactive bajo ciertas condiciones (teredo/miredo, que tarde unos segundos en establecerse, etc.).

    Pero vamos, yo no he tenido que activar ipv6 en chrome desde hace años, y se que funciona porque entre otras cosas uno de mis servidores en casa es accesible únicamente por ipv6 y accedo a él directamente casi todos los días. Ahora mi portátil del trabajo es un Windows y en casa obtiene una direccion ipv6 global y funciona sin problemas, mi escritorio Linux desde hace años funciona con ipv6 sin problemas, así como Android, que chrome en android tambien es capaz de acceder a mi servidor sin problemas. Como anécdota se puede utilizar el proxy de compresión de datos de chrome en android para acceder a una web solo ipv6 cuando estas conectado a una red de datos móvil solo ipv4 (ya que en conexiones wifi el proxy se desactiva automaticamente).

    ResponderEliminar
  8. 2a01:8900:0:1:0:0:b00b:1e5

    "Boobies"

    luns.net.uk

    ResponderEliminar
  9. Estaba googleando un tema de firewalling en IPv6 y mira por donde me sale esto. Espero aclarar algunas cosas.

    Google toma preferencia sobre IPv6 desde hace mucho tiempo. De hecho en las ultimas versiones ni siquiera existe la posibilidad de deshabilitarlo. A mi por ejemplo siempre me sale por IPv6 excepto si la latencia es mayor de 1 segundo lo que si es típico de los túneles Teredo. Como ejemplo me es dificil alcanzar www.elmundo.es en IPv6 aunque está activo ya que salgo por USA.

    Para el link local no se activa conforme RFC4291. El link local tiene como propósito "automatic address configuration, neighbor discovery, or when no routers are present" y Google entiende que en este caso no hay entonces capacidad de browsing.

    Os recomiendo para Chrome la extensión IPvFoo en la que puede verse el direccionamiento de cada uno de los recursos de la página.

    Por otro lado la BBC no emplea una asignación de túnel Teredo sino una Global Address normal. La reserva de Teredo es 2001::/32 lo que implica que tiene un rango desde 2001:0000:0000:0000:0000:0000:0000:0000 hasta 2001:0000:ffff:ffff:ffff:ffff:ffff:ffff por tanto 2001:4b10:bbc:: está fuera de Teredo.

    Saludos,

    ResponderEliminar