HackRF 入门 -- GPS欺骗、GSM嗅探

上一节已经对HackRF升级了最新的固件,今天我们利用它做一些简单的实验。因为本人也是小白,所以本文并没有任何复杂的理论知识,只要会用Linux按照顺序一步一步操作都可以实验成功。

0x01 GPS欺骗

第一个实验使用GPS-SDR-SIM生成GPS仿真数据,使用hackrf_transfer发送欺骗GPS信号。

下载并编译 GPS-SDR-SIM

1
2
3
git clone https://github.com/osqzss/gps-sdr-sim.git
cd gps-sdr-sim
gcc-mp-5 gpssim.c -lm -O3 -o gps-sdr-sim

生成GPS仿真数据

1
./gps-sdr-sim -e brdc3540.14n -l 31.603202,120.466576,100 -b 8 -d 100

具体每个参数应该怎样设置可以参照参考文献或官方文档。在这里需要注意的是,参考的两篇文章都没有添加 -d 参数,实验的过程中发现没有这个参数生成的仿真文件为空,所以我在这里使用-d 100生成了一个100s的gps信号文件(约500M)。

如果把-d设置为10,我这边无法成功欺骗手机。

发射GPS数据

使用HackRF套件的hackrf_transfer程序发射GPS数据

1
hackrf_transfer -t gpssim.bin -f 1575420000 -s 2600000 -a 1 -x 0

HackRF 在发送完100秒GPS信号后会自动停止,如果想重复循环发送信号,可以在后面加上-R参数
运行后第53秒手机被成功欺骗^_^

参考

[1] 使用HackRF和外部时钟实现GPS欺骗实验
[2] HackRF实现GPS欺骗教程

0x02 利用hackRF嗅探GSM网络流量

一篇参考

可以直接转到这篇文章《利用hackRF嗅探GSM网络流量》,一步一步照做就行了。下面是我在嗅探时的截图:

如果编译安装过程出问题,可以参照官方文档的编译方法:Manual compilation and installation

另一篇参考

还有另一篇GSM Hacking Part ① :使用SDR扫描嗅探GSM网络写的也很好,不过里面有一个错误,在运行grgsm_livemon -f 937.4嗅探的时候会报错

1
2
    return _osmosdr_swig.source_sptr_set_center_freq(self, freq, chan)
RuntimeError: hackrf_set_freq(-399063) has failed (-1000) Pipe error

不知道是作者笔误还是grgsm的开发者修改了参数,这行-f参数应该以HZ为单位,所以输入grgsm_livemon -f 937400000,程序运行成功。

airprobe_rtlsdr.py 还是 grgsm_livemon ?

看完上面两篇文章会发现他们用了不同的命令来嗅探,一个是airprobe_rtlsdr.py另一个是grgsm_livemon。其实这两个命令是一样的,具体可以参考ptrkrysik/gr-gsm/Usage。我们进入/usr/local/bin目录也会发现airprobe_rtlsdr.py只是对应grgsm_livemon的链接:

1
2
3
4
5
6
7
8
9
root staff        12 Mar 15 02:31 airprobe_decode.py -> grgsm_decode*
root staff 16 Mar 15 02:31 airprobe_rtlsdr_capture.py -> grgsm_capture.py*
root staff 13 Mar 15 02:31 airprobe_rtlsdr.py -> grgsm_livemon*
root staff 13 Mar 15 02:31 airprobe_rtlsdr_scanner.py -> grgsm_scanner*
root staff 10870 Mar 15 02:30 grgsm_capture.py*
root staff 7449 Mar 15 02:30 grgsm_channelize.py*
root staff 19209 Mar 15 02:30 grgsm_decode*
root staff 13354 Mar 15 02:30 grgsm_livemon*
root staff 15654 Mar 15 02:30 grgsm_scanner*

0x03 未完待续

接下来的工作主要是解密收到的GSM信号,解密LTE信号,以及搭建伪基站。
GSM Hacking:如何对GSM/GPRS网络测试进行测试?
GSM Hacking Part ② :使用SDR捕获GSM网络数据并解密
使用HackRF解调TDD-LTE信号