Desde la publicación de los artículos Tuenti y las redes locales inseguras (1 y 2) muchos me comentaron que la solución que habían tomado era cerrar siempre la sesión para invalidar el SessionID que le hubieran podido capturar y, por tanto, que su cuenta quedara expuesta el menor tiempo posible. Como es lógico, sigue siendo un peligro si se está utilizando una red insegura (y/0 que no es de nuestra confianza).
En los anteriores post se vieron opciones como, por ejemplo, robar un SessionID (que por lo tanto no podría ser invalidado) y en la serie Tuenti Security Issues que está realizando Chema Alonso en El lado del mal seguro que se verán más. Sabemos que estas técnicas son más elaboradas y complejas, reduciendo el número de atacantes que las utilizarían, por lo tanto me voy a centrar en un ataque que solo incorpore un ataque MITM y monitorice en busca de SessionIDs (por ejemplo la utilización de aplicaciones como Firesheep, Faceniff, TuentiSniffer, ...).
Hace unos meses (¡mas de los que me hubiera gustado!) dimos en mi universidad una serie de charlas sobre seguridad en redes y servicios web y en una de ellas quise demostrar como el más mínimo descuido puede poner en jaque nuestra cuenta. Para ello, desarrolle la aplicación TuentiDump que monitoriza el tráfico y descarga todo el contenido de la cuenta de Tuenti comprometida, almacenando en una base de datos (SQLite) toda la información (permitiendonos un análisis posterior más cómodo).
La aplicación descarga la información personal del usuario (nombre, apellidos, dirección, teléfonos, email , twitter, páginas web, ...), los mensajes del tablón/wall, las imágenes y su información y los mensajes privados. Hay alguna información cuya obtención no ha sido implementada (tablones y comentarios en imágenes) que es sencillo de añadir pero que en este caso no me ha preocupado.
La descarga y almacenamiento de la información se realiza en tres etapas.
- Se realizan todas las peticiones web necesarias guardando en bruto (sin procesar) las respuestas. De esta forma conseguimos reducir al máximo el tiempo en el que el SessionID ha de ser válido.
- Se procesa toda la información obtenida en la etapa anterior dejando los datos listos para almacenarlos en la base de datos. Además, en esta etapa se pueden descargar todas las imágenes de la cuenta (para acceder a éstas no es necesario estar autenticado)
- Se genera la base de datos y se almacena en ella toda la información.
Ahora bien, lo más importante ... ¿cuanto tiempo tarda?.
En las pruebas que he realizado con mi portatil (algo limitado) la etapa de descarga (que es la crítica) tarda alrededor de 120 segundos (la limitación se encuentra tanto en el equipo como en la conexión). En la universidad y con un equipo más decente conseguí bajar la cifra a 50 segundos (lo más lento es la descarga de los datos de las imágenes, desactivandolo los tiempos se reducen a la mitad).
La aplicación permite elegir el número de hilos, las páginas del tablon (10 elementos por página) y las de imágenes (25 elementos por página) que se procesaran por cada hilo. Es recomendable jugar con estos parámetros para conseguir el máximo rendimiento.
Con respecto a los datos obtenidos, la información más interesante/crítica se suele encontrar en los mensajes privados. Por lo tanto, lo que un atacante seguramente no hubiera visto simplemente suplantando la cookie, ahora sí que queda expuesto.
A continuación podéis ver una captura de TuentiDump descargando mi cuenta de Tuenti, los tiempos completos y la estructura de la base de datos que genera:
En las pruebas que he realizado con mi portatil (algo limitado) la etapa de descarga (que es la crítica) tarda alrededor de 120 segundos (la limitación se encuentra tanto en el equipo como en la conexión). En la universidad y con un equipo más decente conseguí bajar la cifra a 50 segundos (lo más lento es la descarga de los datos de las imágenes, desactivandolo los tiempos se reducen a la mitad).
La aplicación permite elegir el número de hilos, las páginas del tablon (10 elementos por página) y las de imágenes (25 elementos por página) que se procesaran por cada hilo. Es recomendable jugar con estos parámetros para conseguir el máximo rendimiento.
Con respecto a los datos obtenidos, la información más interesante/crítica se suele encontrar en los mensajes privados. Por lo tanto, lo que un atacante seguramente no hubiera visto simplemente suplantando la cookie, ahora sí que queda expuesto.
A continuación podéis ver una captura de TuentiDump descargando mi cuenta de Tuenti, los tiempos completos y la estructura de la base de datos que genera:
Con respecto a la aplicación, no es ninguna maravilla (y claramente Java no era la mejor opción) pero para las pruebas era suficiente. Le he corregido algunos bugs y he publicado su código fuente en:
http://www.ldelgado.es/?tuentidump
Como conclusión decir que con esta aplicación simplemente quería dar cifras a algo ya conocido y mostrar como hasta la más mínima exposición puede comprometer al completo nuestra cuenta y permitir a un atacante analizar, con todo el tiempo que necesite, toda la información contenida en la misma.
http://www.ldelgado.es/?tuentidump
Como conclusión decir que con esta aplicación simplemente quería dar cifras a algo ya conocido y mostrar como hasta la más mínima exposición puede comprometer al completo nuestra cuenta y permitir a un atacante analizar, con todo el tiempo que necesite, toda la información contenida en la misma.
17 comments :
Pide usuario y contraseña. No se puede descargar?
Saludos.-
Ya está corregido!
Había bloqueado la descarga hasta que se publicara el post y ayer se me olvidó quitarlo :)
Alguien me explica por favor como usar este programa? Sinceramente no sé ejecutar aplicaciones en java si no son ejecutables, no sé que hacer con el codigo fuente, hace tiempo que buscaba un programa asi para hacer un backup de mis propios datos, alguien seria tan amable de explicarmelo un segundo?
no logro hacerlo funcionar
Si no das mas pistas no puedo saber en qué te falla...
Lo acabo de probar y funciona sin problemas. Aun así, no hace uso de la API asi que si hacen modificaciones en el código dejará de funcionar y tendréis que actualizarlo :)
Tienes toda la información en la Wikipedia (http://bit.ly/g8QV6c) aunque por comodidad yo te recomiendo que utilices un IDE (Netbeans, Eclipse, etc)
si ya probé con eclipse y ma so menos averigüe que pasaba
resulta que con x64 no me reconoce una de tus librerias, asi que tengo que bajarme el Eclipse y el java x84(32 bits)
y ahí ya probaré...
gracias
Si, es cierto... En su día me tocó desinstalar todo para poner la versión de 32bits porque la librería JPCap (utilizada para la monitorización del adaptador de red) no es compatible!
Muy interesante el blog, pero no consigo abrirlo. me puedes echar una mano por favor?muchas gracias
Gran aportacion!!!
estoy on eclipse y me lanza este error!!
java.lang.NoClassDefFoundError: app/MainCaused by: java.lang.ClassNotFoundException: app.Main at java.net.URLClassLoader$1.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source)Exception in thread "main"
No me deja ejecutarlo!!!
Muchisimas gracias!!
(:
Comprueba que estás importando correctamente las clases (no encuentra la clase 'Main' del paquete 'app').
hola, alguien podria decirme que hace falta para usar el tuentidump, que es lo necesario o como se usa para descargar un tuenti por favor?
no se como se pone eso en marcha
me lo e descargado
les esplico
cuando lo descargo pense que abria una aplicasion como el wifi auditor
pero no
al abrir las carpetas donde me lo baje ay 2 abro la primera(lib) y me encuentro con jpcap (2) y json y sqlite_jdbc
en la segunda (src) ay app , gatherer processor util
entro en app y me encuentro archivos java
gatherer y mas archivos java((5)...asi en todas las carpetas
como pongo en marcha el programa
Primero tienes que compilarla (código fuente en la carpeta 'src'). Los ficheros de la carpeta 'lib' corresponden a las librerías que utiliza la aplicación.
hola ya me lo descargue y todo eso pero no se como se
usa no encuentro ninguna aplicasion me explicas porfa
no entendi como que compilarala eso como se ase
http://chuwiki.chuidiang.org/index.php?title=Compilar_java_desde_l%C3%ADnea_de_comandos
Publicar un comentario