En el día de hoy vamos a aprender a geolocalizar cualquier dispositivo y a extraer información sensible del mismo.
Para geolocalizar cualquier dispositivo nos hará falta la herramienta seeker. El concepto detrás de Seeker es simple, al igual que alojamos páginas de phishing para obtener credenciales, ¿por qué no alojar una página falsa que solicita su ubicación como muchos sitios web populares basados en la ubicación? El Buscador aloja una página web falsa en el servidor PHP incorporado y utiliza Serveo para generar un enlace que reenviaremos al objetivo, el sitio web pide permiso de localización y si el objetivo lo permite, podremos obtener su geolocalización junto con:
- Longitud
- Latitud
- Precisión
- Altitud – No siempre disponible
- Velocidad – Sólo disponible si el usuario se está moviendo
- Sistema Operativo
- Plataforma
- Número de núcleos de CPU
- Cantidad de RAM – Resultados aproximados
- Resolución de la pantalla
- Información de la GPU
- Nombre y versión del navegador
- Dirección IP pública
- Reconocimiento de la dirección IP
Descargar la herramienta seeker
Os dejo el enlace del proyecto de github.
Para instalarla, ejecutamos los siguientes comandos:
git clone https://github.com/thewhiteh4t/seeker.git (descargamos el repositorio)
cd seeker/ (accedemos al directorio en el que se ha descargado)
chmod 777 install.sh (Esta opción permite que todos los usuarios puedan leer, escribir y ejecutar en el archivo o carpeta)
./install.sh (instalamos)
Y la otra herramienta que vamos a utilizar va a ser ngrok. También podéis utilizar otras alternativas como localtunnel. La instalación de ambos programas es muy sencilla.
Instalación localtunnel
npm install -g localtunnel
Para lanzar el servidor en el puerto 8080:
npx localtunnel --port 8080
Instalación ngrok
Para instalar ngrok tenemos que ir a su web oficial, descargarlo y descomprimir:
unzip /ruta/de/ngrok.zip
Luego, conectar nuestra cuenta:
./ngrok authtoken <TU_AUTH_TOKEN>
Cuando ya tengamos todo listo, en un terminal lanzamos seeker. Vamos a ejecutarlo en modo manual ya que hay muchas veces que Serveo está caído:
python3 seeker.py -t manual
Si queremos generar un archivo ‘kml’ para posteriormente poder importarlo en Google Earth lo lanzamos con el parámetro -k:
python3 seeker.py -t manual -k prueba
Tenemos dos posibles plantillas: la primera con NearYou y la segunda con Google Drive.
Si utilizamos Google Drive, necesitamos darle la url de algún archivo que tengamos en drive. En cambio, si usamos NearYou no es necesario dar ningún tipo de url (pero es menos creíble).
Cuando ya hayamos seleccionado una de las dos opciones nos aparecerá el siguiente mensaje:
Y en un segundo terminal ejecutamos Ngrok (o cualquier otra alternativa) en el puerto 8080:
./ngrok http 8080
Nos aparecerá una ventana en la que veremos la url pública de nuestro servidor local.
Esa es la dirección a la que tiene que acceder nuestra “víctima”.
Si utilizamos la opción de “Near You”
Cuando acceda a la URL le aparecerá el siguiente mensaje:
Tendrá que darle a “Continue” y aparecerá la siguiente notificación .
Si la “víctima” permite el acceso a la localización le aparecerá el siguiente mensaje:
Y ya tendríamos acceso a toda la información.
Si utilizamos la opción de google drive
La “víctima” tendrá que darle “Request access”.
Y de nuevo nos pedirá acceso a la ubicación. Si la “víctima” permite el acceso a la localización ya tendremos toda la información.
Yo creo que es más creíble cuando usamos Google Drive, ya que si el usuario permite el acceso a la ubicación le redirigirá al documento que hayamos compartido pero en ambos casos tendremos que usar ingeniería social.
Este es un ejemplo de lo que vería la “víctima”.
Obtener la información
Una vez hemos conseguido que la “víctima” permita el acceso a la ubicación. En la terminal en la que hemos ejecutado seeker veremos la siguiente información:
Tendremos acceso al:
- Sistema Operativo
- Plataforma
- Número de núcleos de CPU
- Cantidad de RAM – Resultados aproximados
- Resolución de la pantalla
- Información de la GPU
- Nombre y versión del navegador
- Dirección IP pública
- Reconocimiento de la dirección IP
Toda esta información también la obtendremos aunque el usuario no permita el acceso a la ubicación. Si lo permite, también tendremos la Latitud, Longitud y un enlace de Google Maps dónde podremos ver dónde se encuentra la “víctima”.
También se nos crea un archivo ‘csv’ con toda esta información en la ruta /seeker/db/.
Y por último, si hemos generado un archivo ‘kml’ podremos abrirlo con Google Earth en Proyectos > Abrir
Y podremos ver la animación de donde se encuentra nuestra «víctima».
Bueno, esto es todo por hoy, espero que os haya gustado y hayáis aprendido a geolocalizar cualquier dispositivo.
Un saludo
DiegoAltF4
Inicio
Luis dice
Gran artículo!!
Razvan dice
Un gran tutorial, sin duda. Muchas gracias !