18 septiembre 2014

Tinfoleak, stalkeando twitter en línea de comandos




Gracias a un RT de Yago, me picó la curiosidad de echar un vistazo a una herramienta: Tinfoleak. Se trata de un sencillo script en python, hecho por Vicente Aguilera, que permite, a través de línea de comandos “preguntar a twitter” por diversa información de un nick en concreto.
Entre otras opciones, podemos saber:

  • Información básica del usuario, según aparezca en twitter (Nombre, ubicación, followers, foto, etc,…)
  • Dispositivos, sistemas operativos y algunas redes sociales utilizadas por el usuario
  • Hashtags a los que ha hecho referencia el usuario
  • Quién lo ha mencionado
  • Búsqueda de palabras clave dentro de los tweets en concreto
  • Filtrado por fechas y hora inicio/fin, etc....
  • Geolocalización de los tweets, generando un mapa de las localizaciones visitadas 

Todas estas opciones pueden ser utilizadas en combinación con otros flags que permiten filtrar por fechas, indicar la muestra de los últimos N tweets a buscar (por defecto N = 100), lo que hacen que sea muy potente y que no requiera la utilización de un entorno gráfico para la mayoría de las opciones.

Para su utilización, la descargamos desde Google Code, enlazado desde la página de herramientas del autor, y la descomprimimos.

Tiene como dependencia el módulo “tweepy”, que si no lo tienes ya instalado en el sistema, se resuelve rápidamente con un “sudo pip install tweepy”

Una vez está esto resuelto tendremos que registrarla como aplicación válida en Twitter y obtener una Consumer Key y Consumer secret, así como un Token Key y Token Secret, que deberemos rellenar dentro del script .py.

Para ello, loggeados desde una cuenta twitter, nos vamos a https://apps.twitter.com/app/new, y le damos un nombre  (Ojo, que el nombre de la app no tiene que existir aún,… obviamente tinfoleak existe, por lo que podéis poner el ID que queráis), descripción y website (para que no de error, en formato URL con http://www.loquesea.com). 

Una vez esté creado nos aparecerá una pestaña llamada API Keys, en la que podremos obtener ya  los valores API Key y API Secret (que son el Consumer Key y Consumer Secret, respectivamente, a rellenar en el script).



Ahora hay que generar un Token Key y Token secret. En esta misma pantalla, abajo del todo hay un boton que dice "Generate Access Token”, le damos, y tras unos segundos nos generará un par de valores Access Token y Access Token Secret.



Con esto, rellenamos las variables  CONSUMER_KEY = ‘ ‘, CONSUMER_SECRET = ‘’, ACCESS_TOKEN = ‘ ‘ y ACCESS_TOKEN_SECRET = ‘ ‘ del script y está ya listo para funcionar.

Os dejo un ejemplo que muestran la potencia de la herramienta.

Információn básica, sources (dispositivos y clientes), y hashtags usados por el usuario @lawwait en sus 100 últimos tweets: 

python tinfoleak.py -n lawwait -bsh



En la web del autor de la herramienta podéis encontrar más ejemplos con integración hasta con Google Earth, geolocalizando a los usuarios.

8 comments :

Vicente Aguilera Díaz dijo...

Hola Lorenzo,

En primer lugar, muchas gracias por escribir esta entrada sobre mi herramienta Tinfoleak.

Dejo este enlace a un video con una demo de su ejecución:
https://www.youtube.com/watch?v=6TNiVOkCZQ0

Por último, comentar que el 1 de noviembre, en la No cON Name, presentaré una versión de Tinfoleak mucho más potente y que incorporará interesantes novedades.

Gracias de nuevo!

Un saludo,
-- Vicente

muriel dijo...

Muy interesante éstas herramientas que publicáis. He sacado un rato y he intentado probarla pero me lanza el siguiente error:


xxxxx@xxxxxxxxxxx:~/Descargas/tinfoleak-1.2$ ./tinfoleak.py -n AMAIARUIZ27 -b
+++
+++ tinfoleak v1.2 - "Get detailed information about a Twitter user"
+++ Vicente Aguilera Diaz. @VAguileraDiaz
+++ Internet Security Auditors
+++ 03/02/2014
+++


[ main() Error ]
Error message: [{'message': 'SSL is required', 'code': 92}]



Lo cual nos indica que precisamos SSL, ok. He estado mirando un poco el código (valga decir que sólo soy un ético aficionado a ésto que os suele leer) y quería probar la herramienta y ver hasta qué punto de información nos arroja. Creo que no pasa del main y según ésto:


https://dev.twitter.com/overview/api/ssl


el error corresponde a ésto otro:

92SSL is requiredOnly SSL connections are allowed in the API, you should update your request to a secure connection. See how to connect using SSL
En definitiva, parece que habría que tocar el código y después de leerlo un par de veces no veo dónde parece encajar la solución al problema....

¿alguna ayuda al respecto? Muchas gracias!!

muriel dijo...

Imagino que el módulo 0auth.py habría que rellenarlo también con los tokens? Esos datos están vacíos en ese módulo... y ese es el que en teoría "securiza" la conexión. Habrá que probarlo luego cuando tenga unos minutillos.

Por cierto se me coló el nombre de un usuario en el ejemplo al que ni conozco, lo puse porque sencillamente era el primero que encontré :'(. Pido disculpas por ello. Gracias.

Lorenzo Martínez dijo...

Hola Muriel, cuando te da el error anterior es porque la autenticación mediante OAuth no es correcta... Sólo has de cambiar los parámetros que vienen en el Readme. No hay que meterle mano al código de forma tan invasiva para que funcione eh?

muriel dijo...

Ok Lorenzo, muchas gracias por responder. El caso es que estuve probándolo tanto en linux como windows y lo curioso es que habiendo seguido los mismos pasos en ambos sistemas en uno me arrojaba el error 92 ya comentado, pero en el otro el error era un 301. Gracias por tu tiempo.

alguien sabio dijo...

hola, tengo un problema en la imac, me sale el siguiente error en la linea 4:

desarrollo:tweepy-master desarrollo$ python tinfoleak.py

Traceback (most recent call last):

File "tinfoleak.py", line 4, in

import tweepy

File "/Applications/MAMP/htdocs/tweepy-master/tweepy/__init__.py", line 12, in

from tweepy.models import Status, User, DirectMessage, Friendship, SavedSearch, SearchResults, ModelFactory, Category

File "/Applications/MAMP/htdocs/tweepy-master/tweepy/models.py", line 7, in

from tweepy.utils import parse_datetime, parse_html_value, parse_a_href

File "/Applications/MAMP/htdocs/tweepy-master/tweepy/utils.py", line 9, in

Vicente Aguilera Díaz dijo...

Hola,

Esta semana he publicado la nueva versión 1.5 de Tinfoleak. La podéis encontrar aquí:
http://www.isecauditors.com/herramientas

Por otro lado, las novedades de esta versión se encuentran comentadas aquí:
http://blog.isecauditors.com/2015/03/nueva-version-de-tinfoleak-lista-para-descargar.html



Cualquier consulta sobre la herramienta, podéis contactar conmigo.


Un saludo!

P11-G545 dijo...

Hola, llevo un par de dias intentando configurar y utilizar esta herramienta y hoy, porfín, he conseguido que funcione. Utilizo Arch Linux x86_64. (La nueva versión de Tinfoleak, la 1.5)
Para empezar tuve que instalar la ultima versión de tweepy de forma manual, ya que la de los repos estaba desactualizada y ya no sirve ese API.
Luego surgió un fallo en la linea 69 donde pones:
self.api = tweepy.API(auth, secure=True)
El secure=True ya no hace falta con la ultima versión de Tweepy, se puede eliminar.
self.api = tweepy.API(auth)

Y lo siguiente lo pongo por si a alguien mas le sirve, tuve que instalar alguna cosas ya que Arch viene algo pelado.
python2-jinja
exifread
pyexiv2

También tuve que cambiar la primera linea por que, en Arch, "python" hace referencia a "python3"

#!/usr/bin/env python2

Espero que todo esto sea de ayuda para alguien. Saludos. :)