gps spoofing

gps spoofing

En este post no pretendo profundizar sobre el funcionamiento técnico del GPS. Únicamente se propone un ejercicio práctico con algunos ejemplos que me parecen ilustrativos y divertidos.

Para ponernos en contexto, el GPS (Global Positioning System) nos ofrece la posición mediante coordenadas de vehículos, objetos, personas, etc … dentro del globo terrestre. Este servicio es usado a diario por miles de servicios, aplicaciones móviles, coches, barcos, etc … su uso está ampliamente extendido. Se puede obtener información más detallada sobre el GPS en la wiki GPS.

Por otro lado, se conoce como spoofing la técnica de suplantar una señal auténtica con una fraudulenta con el fin de afectar a un tercero. Esta técnica se puede usar en múltiples tecnologías, dejo también la wiki spoofing como referencia.

En la práctica de este post pretenderemos engañar distintos dispositivos y verificar como estos reaccionan.
Para realizarlo usaremos el dispositivo hackfr one, es un proyecto open hardware para trabajar con SDR (Software Defined Radio) que nos permitirá, en este caso enviar una señal fraudulenta GPS a nuestras víctimas. Podéis encontrar información más detallada del dispositivo en su página oficial HackRF - Great Scott Gadgets.

Preparación del laboratorio

Para trabajar con hackrf one necesitaremos instalar el software GNU Radio y las HackRF tools, en linux lo podemos realizar de los repositiros.

1
~:$ sudo apt install gnuradio libhackrf0 hackrf libhackrf-dev

Verificaremos que el hackrf one dispone del módulo TXCO, un módulo que mejora el rendimiento, estabiliza la frecuencia y mejora la precisión del GPS, lo que nos conviene en este ejercicio.

1
~:$ hackrf_debug --si5351c -n 0 -r

Si obtenemos un 0x01 en la respuesta es que éste está instalado.

Nos descargaremos el software GPS-SDR-SIM desde su repositorio git gps simulator.

1
~:$ git clone https://github.com/osqzss/gps-sdr-sim.git

y lo compilaremos.

1
2
~:$ cd gps-sdr-sim
~:$ make

Para poder crear nuestros posicionamientos GPS necesitaremos obtener la posición actual de los satélites, esto lo podemos realizar descargado el fichero de la página de la NASA dentro de la carpeta brdc.
Lo podemos realizar también mediante el siguiente script.

1
2
3
4
5
6
7
8
9
#!/bin/sh
day=$(date +%j)
year=$(date +%Y)
yr=$(date +%y)

wget "ftp://cddis.gsfc.nasa.gov/gnss/data/daily/$year""/brdc/brdc""$day""0.$yr""n.Z"

uncompress "brdc""$day""0.$yr""n.Z"
echo "brdc""$day""0.$yr""n.Z"

Ahora podemos generar nuestra posición fraudulenta, remplazando YOUR_BRDC_FILE_HERE por el fichero descargado de la NASA y las coordenadas por las que queramos simular. Estas se han de introducir en formato decimal.

1
~:$ ./gps-sdr-sim -b 8 -e YOUR_BRDC_FILE_HERE -l 48.85341,2.3488

Esto nos generará el fichero gpssim.bin, que usaremos con la hackrf one para realizar el spoofing.

1
~:$ sudo hackrf_transfer -t gpssim.bin -f 1575420000 -s 2600000 -a 1 -x 0

Hasta aquí la ejecución de la técnica. Veamos ahora algunas demostraciones prácticas.

GPS car spoofing

En esta demo veremos cómo engañar el GPS de nuestro vehículo para ir de Praga a París sin salir del garaje.

Ipad spoofing

En esta demo veremos cómo podemos hacer que la aplicación maps cambie de posición a nuestro antojo. Para la demo haremos que vaya de París a Praga sin salir del laboratorio y usaremos el portapack de hackrf one, un dispositivo que nos permite ejecutar los ficheros generados con gps-sdr-sim y ejecutarlos sin necesidad de un PC.

Primero generaremos el fichero de posicionamiento:

1
~:$ ./gps-sdr-sim -b 8 -e YOUR_BRDC_FILE_HERE -l 48.85341,2.3488 -o FILE_NAME.C8

Crearemos un fichero de texto con el mismo nombre con los siguientes datos:
En mi caso me ha funcionado el sample_rate a 2600000 pero, por lo que he leído, puede que funcione también a 2500000. Entiendo que depende del GPS al que estemos “atacando”.

1
2
sample_rate=2600000
center_frequency=1575420000

Copiaremos ambos en la tarjeta sd del portapack y lo ejecutaremos como se muestra en el vídeo.

Hasta aquí el post de hoy. Espero haya sido de vuestro interés.
No dudéis en contactar mediante el formulario para hacerme llegar vuestros comentarios.