lunes, septiembre 16, 2013

Con Google Chrome o Firefox tu iP local está expuesta

Las técnicas de WebBrowsing Fingerprinting pueden estar contentas al poder añadir otro punto de información importante a los datos que recolectan de un cliente. En este caso funciona en Google Chrome y Mozilla Firefox, y ofrece un dato más que útil: La dirección IP local del cliente. La prueba de que esto es así la puedes hacer en la siguiente URLhttp://net.ipcalf.com/ 

Figura 1: Accediendo a tu dirección IP Local en Google Chrome con WebRTC

Esto se hace aprovechando un leak de WebRTC que pretende dotar a la web de protocolos de comunicaciones en tiempo real para expandir el número de soluciones que se pueden ofertar por la red. Debido a este leak, con un sencillo código JavaScript es posible acceder a la información de la dirección IP local del cliente.

Figura 2: Código de WebRTC con el data leak de la dirección IP.

Por supuesto estos datos no son útiles sólo para hacer un WebBrowsing finferprinting, sino que todos los clientes de tu red que estén navegando por Internet con Google Chrome o Mozilla Firefox están exponiendo el direccionamiento de tu red, y esto puede ser especialmente sensible en escenarios de APT.

Yo he probado con el cliente TOR Browser, bundle que utiliza a Mozilla Firefox, y he podido comprobar que esta característica no está habilitada, por lo que no se pone más sencillo conocer la ubicación de alguien que esté navegando con él.

Figura 3: Mozilla Firefox en TOR Browser no hace leak de la dirección IP
Sin embargo, revisa cómo tienes configurado tu entorno de conexión a TOR, no vaya a ser que se lo estés poniendo muy fácil a todo el mundo. Yo he probado en Diigo Web Browser y en Google app para iOS y tampoco ha leakeado la dirección IP Local, pero no he podido probarlo en Android o en otros navegadores, así que si haces pruebas te agradeceré que me dejes en los comentarios los resultados obtenidos.

Saludos Malignos!

40 comentarios:

  1. Este comentario ha sido eliminado por el autor.

    ResponderEliminar
  2. Probado en firefox y navegador de android, y no funciona :3

    ResponderEliminar
  3. En Android con Google Chrome SI funciona, con el navegador por defecto NO funciona.
    Saludos

    ResponderEliminar
  4. ¿Sabes la forma de quitarlo en los settings de los navegadores?. Gracias.

    ResponderEliminar
  5. Con Safari en OSX ML y no funciona :)

    ResponderEliminar
  6. A mí sí que me ha funcionado en el Chrome del Android (que es el que tengo por defecto).
    También en el Firefox y el Chrome del PC. Me da las dos: la del proxy y la mía.
    Cosa curiosa: en Chrome me dice "Your network IP is:" IP proxy "or perhaps" IP PC; y en Firefox al revés: "Your network IP is:" IP PC "or perhaps" IP Proxy;

    ResponderEliminar
  7. Con Dolphin en android 2.4 no funciona el script. Ahora a ver como blindo el Firefox de mi Debian.

    ResponderEliminar
  8. Imagino que no, pero no adivino la respuesta... ¿Si puede ejecutar "ifconfig" en el cliente, no se podría lanzar otros procesos en el que el navegador tuviera permisos?

    ResponderEliminar
  9. En firefox version 23.0.1 funciona

    ResponderEliminar
  10. Le he echado un rápido vistazo al código, y lo del ipconfig no es más que texto, no ejecuta nada. Al parecer, abre una conexión de RTC y muestra los datos de la conexión local. Simple, pero como se puede ver, efectivo.

    ResponderEliminar
  11. En Opera 12 aparece:

    Your network IP is:
    ifconfig | grep inet | grep -v inet6 | cut -d" " -f2 | tail -n1

    ResponderEliminar
  12. Creo que esto servira para Firefox o no?
    about:config
    media.peerconnection.enabled
    Diganme si esto no es suficiente...

    ResponderEliminar
  13. Yo tengo Chrome en Windows y no funciona.

    Un saludo.

    ResponderEliminar
  14. En Google Chrome Versión 29.0.1547.66 con Windows 7 no funciona.

    ResponderEliminar
  15. Ni iceweasel ni midori ni luakit muestran la ip.... chromium si.

    ResponderEliminar
  16. En Android 4.1.2 utilizando Google Chrome funciona:
    Your network IP is:
    XXX.XX.XXX.XXX
    Make the locals proud

    ResponderEliminar
  17. Como dicen por ahí arriba en Google Chrome de Android sale la IP, sin embargo, en el navegador de Samsung no.

    ResponderEliminar
  18. Chema, En mi Firefox funciona.
    Pero estoy notando que buscas muchas y muchas debilidades a Firefox o Chrome, defendiendo de alguna manera a Internet Explorer.

    Por Que lo Haces?

    Salu2

    ResponderEliminar
  19. Probado en mini opera con varios mobiles y no funciona XD (take that android!)

    ResponderEliminar
  20. En windows 7 SP1 y Chrome 29.0.1547.66 y Firefox 23.0.1 SI que se muestra la ip interna.

    Con internet explorer 10 no funciona.

    ResponderEliminar
  21. Para alguien que use Tor en la configuración default de firefox es gravísimo, ya que llega al extremo de revelar la ip pública si se está usando pppoe para conectar.
    El uso de noscript, protege de entrada, pero, si algo parecido a ese script está alojado en un sitio que se confié, da al traste con todo.

    Como lo mencionaron arriba, la opción

    media.peerconnection.enabled
    deshabilitándola (seleccionando false) basta para quedar protegido.

    Menudo leak.

    Saludos!

    ResponderEliminar
  22. En Opera en PC está a salvo.

    ResponderEliminar
  23. En Firefox parece suficiente modificar la entrada en about:config comentada.


    Pero en Chrome no he encotrado la forma todavía....¿alguien lo ha conseguido?.

    Saludos

    ResponderEliminar
  24. HOYGAN, yo lo probé con mi gato y no funcionó.

    ResponderEliminar
  25. Probado con Firefox 22 y win 7 y funciona a la perfeccion incluso me da informacion que no conocia... proxys por los que pasa mi conexion pensaba que era uno solo pero son varios los filtros

    Solucion about:config
    media.peerconnection.enabled = false

    ResponderEliminar
  26. En Iceweasel/Firefox en Debian aparece la IP

    ResponderEliminar
  27. icewasel en debian testing no muestra
    midori tampoco
    elinks tampoco

    En chromium si :S

    ResponderEliminar
  28. Este comentario ha sido eliminado por el autor.

    ResponderEliminar
  29. chema como arreglamos este fallo en chorome por dios

    ResponderEliminar
  30. Y usando Hotspot Shield se evita este error??

    ResponderEliminar
  31. He realizado pruebas desde una tablet android con Cyanogenmod, y como comentan, con Google Chrome sí que aparece. En cambio con el Firefox NO. También he realizado una prueba con el navegador de Cyanogen y, como en el caso de Firefox, no aparece la IP local.

    ResponderEliminar
  32. Android 2.3.6, con Mozilla:
    Your network IP is:
    ifconfig | grep inet | grep -v inet6 | cut -d" " -f2 | tail -n1

    De todas formas, yo tengo varias interfaces de red, fisicas y virtuales (VirtualBox), y con mi Chrome, me salen todas la IPs que tengo configuradas, en mi caso de las tres redes que utilizo:

    Your network IP is:
    172.xx.xx.xx or perhaps 192.xx.xx.xx or perhaps 192.xx.xx.xx

    Make the locals proud.

    ResponderEliminar
  33. Este comentario ha sido eliminado por el autor.

    ResponderEliminar
  34. Acabo de probar y no salio mi IP Privada debe ser por el NoScript. Creo recordar que tambien se puede saber con java la IP Privada no estoy seguro.

    ResponderEliminar
  35. Amoh a ve...

    Antes de nada ¿qué se puede hacer en WAN con una dirección ip de la LAN?

    Podemos conocer el ISP teniendo la ip pública, podemos saber el rango de ips del servidor DHCP porque ya conocemos el modelo del router...

    ¿y?
    ¿a que no es tan preocupante?

    ResponderEliminar
  36. PostData:
    Y muchos routers tienen la administración remota habilitada sin cambiar la contraseña por defecto de autentificación.

    Puedes ver la IP local de los ordenadores, tal vez abrir puertos hacía esa IP pero no es el caso. El caso ahora es tener la IP interna.

    La ves...
    ¿y?

    ResponderEliminar
  37. @Anónimo del final. Se nota que eres novatillo en este mundo, pero bueno, te lo explico. Cualquier información que se filtre de tu entorno cliente pasará a formar parte de tu huella digital. Con las técnicas de webbrowsing fingerprinting http://www.elladodelmal.com/2013/07/tecnicas-para-el-fingerprinting-de-web.html se consigue poder trackear mejor a los usuarios y por tanto es peligroso para tu privacidad.

    Además, exponer la dirección IP local sirve para hacer ataques de CSRF contra los routers de la red (http://www.elladodelmal.com/2013/04/navegadores-y-passwords-http-en-ataques.html) , conseguir el login por defecto y hacer un ataque de pharming, escanear la red entera para hacer un ataque dirigido a servidores internos, etcétera, etcétera...

    Saludos!

    ResponderEliminar
  38. Buenas,

    Soy el último anónimo...
    Muy interesante, Chema.

    Me pondré a leer, gracias

    ResponderEliminar
  39. PostData:

    Me esperaba algo como por ejemplo manipular datagramas para poner direcciones IP internas. Acceder a servicios a través de WAN que únicamente se debería poder acceder desde la Intranet.

    ResponderEliminar
  40. maxthon modifica y protege la ip base. A demostrado ser el mejor explorador. aunque no sea en habla hispana. Saludos!

    ResponderEliminar