TwLocation en Python y un viejo script en Ruby: La API de Twitter sigue dando juego con la info GPS

Éste es un tema que no es nada nuevo. La geolocalización de los tuits es algo antiguo, es más, nosotros en ElevenPaths hace unos años hicimos una herramienta que analizaba los tuits de un usuario y los posicionaba en un mapa, siempre y cuando el usuario tuviera activa la geolocalización de los tuits en su cuenta.

Figura 1: TwLocation en Python y un viejo script en Ruby:
La API de Twitter sigue dando juego con la info GPS

Aún recuerdo las pruebas con nuestras cuentas, creando alguna cuenta y configurando la geolocalización de los tuits. Todo comenzó con un script escrito en Ruby y acabo siendo un servicio interno. Quizá fueran los comienzos del departamento de ideas locas y de pruebas de concepto, pero de ello hablaré más tarde.

Figura 2: Geolocalización de Twitts de SteveWozniak con nuestra tool

Echando un ojo por Internet, he topado con una herramienta escrita en Python muy similar a lo que os comentaba. En este caso la herramienta se llama TwLocation y permite fijar unas coordenadas, un rango alrededor y el número de tuits que queremos encontrar en ese radio en tiempo real. La herramienta la vi en KitPloit y tiene una pinta interesante, pero no solo por lo que proporciona, si no por el cómo está hecha. Permite saber quién pone mensajes en Twitter con ubicación GPS activada, en un determinado rango de localización, al estilo del mapa de WatchDogs.

Figura 3: Mapa de Londres We Are Data del juego de WatchDogs

La herramienta se puede descargar desde Github y tiene unos pocos días, al menos en esta versión, subida al repositorio. El funcionamiento es sencillo, la herramienta utiliza OAuth para poder realizar peticiones a la API de Twitter.

Figura 4: TwLocation en Twitter

Cuando descargamos la aplicación de TwLocation, ésta tiene unos requisitos que se pueden encontrar en el fichero de requirements.txt. Para instalar los requisitos ejecutamos el pip install –r requirements.txt. En el fichero config.txt, encontramos la configuración de la App OAuth. En el caso de Twitter requerimos: Consumer_Key, Consumer_Secret, Access_Key y Access_Secret. Esta información se puede obtener con una cuenta de Twitter y accediendo al dominio dev.twitter.com o developer.twitter.com.

Figura 5: Instalación de TwLocation

Cuando se configura el fichero config.txt con lo necesario para poder utilizar la API de Twitter, se ejecuta con Python el script. Al arrancar el script nos solicita datos sobre latitud, longitud, el rango alrededor de ello y el número de resultados máximos que se van a obtener y almacenar en un fichero CSV.

Figura 6: Usuarios que twittean en una determinada ubicación GPS con el tiempo
En la imagen superior, se puede ver los datos introducidos y con el paso del tiempo se van recibiendo en tiempo real diferentes tuits que cumplen las condiciones de geolocalización indicadas. Por ejemplo, si fijamos un punto concreto, estaremos viendo lo que se tuitea alrededor de dicho punto. Es más, veremos quién tuitea, ya que el username también se obtiene.

Figura 7: Fichero CSV de salida

Además, la herramienta facilita la posición en un mapa a través del enlace a Google Maps. Esto es interesante para pintarlo. Esta parte tiene relación con el ‘viejoscript de Ruby llamado Poc_Twitter.rb que en su día realicé. Al finalizar la ejecución, se obtiene un fichero CSV, el cual, como se puede ver en la imagen, proporciona los siguientes campos:
• Username
• Profile URL
• Latitude
• Longitude
• Google Maps
• Tweet
El fichero es automatizable, es decir, podríamos procesarlo con otro script para procesar la información obtenida. Como se puede entender es interesante, cuando manejamos un gran volumen de información. En el siguiente vídeo se puede ver cómo funciona TwLocation.
El viejo script ‘Poc_Twitter.rb’

Este script que data de finales de 2014 tiene bastante historia. Jugando con OAuth por aquel entonces, jugando con Twitter y con el libro Got Root en la cabeza, ya que algo aparece allí, decidí hacer una pequeña prueba de concepto. Primero, identificar si un usuario tenía la geolocalización activa. Esto es algo que la API de Twitter te indicaba a través de un campo. Rápidamente, puedes saber si un usuario tiene la geolocalización activa, y como vimos, famosos y terroristas tenían activada esta geolocalización en Twitter.

Figura 9: Tuits de un terrorista con ubicación GPS

Esto no acaba aquí, si el tuit tiene coordenadas es que ese tuit iba con información GPS. Generalmente, puede que el usuario sepa que su tuit está geolocalizado y sea consciente de ello, es más, quiere que la gente vea desde dónde lo tuiteó. El problema venía cuando el usuario no es consciente de ello. Esto supone un riesgo. Por supuesto, yo hice mi script para ver si mi cuenta tenía habilitada la geolocalización y mis tuits estaban enviando demasiada información ;-)

Figura 10: Mensajes de una cuenta Twitter de un famoso con ubicación GPS

A continuación, se puede ver el comienzo del ‘viejo’ script. Como se puede ver, necesita los mismos parámetros que TwLocation.

Figura 11: Token OAuth para consultar la API de Twitter

Cuando se obtienen los tuits de la cuenta @pablogonzalezpe, en este ejemplo, se verificaba el campo geo y geo_enabled. En el caso de que estos campos fueran positivos, tendrían la localización desde dónde yo tuiteé. Al final, la suma de los tuits puede provocar un timeline de posicionamiento por dónde cualquiera sepa por dónde vas. Hay que tener cuidado con ello y comprobar si nuestros tuits están enviando nuestra ubicación.

Figura 12: Captura de tuits con ubicación GPS activada

Para finalizar, os muestro una ejecución desde una cuenta que tenía antigua y que tenía tuits geolocalizados para la prueba de concepto. Como se puede ver, es un ejemplo muy similar a lo que hemos visto con TwLocation.

Figura 13: Nuestra PoC con info similar a TwLocation

Sin duda, eran sin saberlo, los comienzos del departamento de ideas locas de CDO. Cosas que hacíamos en ElevenPaths a finales del año 2014, aunque por aquel entonces mi responsabilidad era Faast, siempre teníamos tiempo para esas pequeñas ideas locas. En el año 2016 impartí un taller sobre el uso de la API de Twitter con Python con mi amigo Alberto Sánchez, en la HoneyCON, dónde ampliamos casos con la Streaming API de Twitter. Realmente interesante. Al final un pequeño script y una pequeña idea puede dar para varias cosas, cuando poco a poco se va desarrollando y aprendiendo.

Autor: Pablo González Pérez (@pablogonzalezpe), escritor de los libros "Metasploit para Pentesters", "Hacking con Metasploit: Advance Pentesting" "Hacking Windows", "Ethical Hacking", "Got Root" y “Pentesting con Powershell”, Microsoft MVP en Seguridad y Security Researcher en ElevenPaths

Via: www.elladodelmal.com
TwLocation en Python y un viejo script en Ruby: La API de Twitter sigue dando juego con la info GPS TwLocation en Python y un viejo script en Ruby: La API de Twitter sigue dando juego con la info GPS Reviewed by Anónimo on 2:16 Rating: 5