É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.
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.
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.
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 ‘
viejo’
script 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.
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 ;-)
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