HackRF One—GSM嗅探

虽然现在已经开始普及4G、5G,但GSM嗅探仍然是学习路上的基础,在安装和使用grgsm模块时也可能遇到各种问题。

安装gr-gsm并进行嗅探

1 首先确保已经安装依赖环境,使用下面代码检查gnuradio,rtl-sdr,gr-osmosdr和libosmocore 是否安装完好。

sudo apt-get install gnuradio rtl-sdr gr-osmosdr libosmocore gnuradio-dev librtlsdr-dev libosmosdr-dev libosmocore-dev

2 检查需要的软件包,注意python-scipy是python中的库,所以使用pip3进行安装。如果期间出现其它包的缺失,也顺便

sudo apt-get install cmake libboost-all-dev libcppunit-dev swig doxygen liblog4cpp5-dev 
pip3 install python-scipy

 3 获取gr-gsm并进行安装,此处如果出现cmake出现错误,就仔细检查以下报错,看是不是丢失了哪个包,如果丢失就进行安装。

git clone https://github.com/ptrkrysik/gr-gsm.git
cd gr-gsm
mkdir build
cd build
cmake ..
make
sudo make install

4 创建config文件~/.gnuradio/config.conf,这样gnuradio-companion才可以发现GRGSM自定义模块。大家可以先不自己创建,看是否能正常运行。

5 至此,按理说已经可以运行了,大家可以连接上HackRF One,然后在命令行输入以下指令,进行周围基站扫描。大家可以先不自己创建,看是否能正常运行,如果能正常运行,那么恭喜你,成功了。如果不行,那估计你会遇到和我一样的情况,也就是说python中并没有找到'grgsm'包。

Traceback (most recent call last):
  File "/usr/local/bin/grgsm_scanner", line 33, in 
    import grgsm
ModuleNotFoundError: No module named 'grgsm'

6 根据问题,我从官方GitHub的回复中找到了解决方法,并且一般出现在新版本的LINUX系统中,那么解决办法就是在命令行运行指令将存放grgsm的目录加入到python的目录中,并且在同一个窗口中进入目录~/gr-gsm/apps,使用手动的方法来运行后面的程序。在这里每次关闭窗口再次打开,都需要输入export代码将路径加入。

export PYTHONPATH=/usr/local/lib/python3/dist-packages/:$PYTHONPATH

 7 运行grgsm_scanner,查找周围基站,这里要稍微等一段时间,不要着急,之后就可以定位到基站信息了,数据格式如下。

python3 ./grgsm_scanner

ARFCN:   **, Freq:  ***.*M, CID:  ****, LAC: *****, MCC: ***, MNC:   *, Pwr: -34

8 查找到基站的Freq之后,就可以进行嗅探了,使用grgsm_livemon进行监听了,如果出现如下数据,则证明频率选择较好,已经可以嗅探到数据了。

python3 grgsm_livemon -f 1828.6M

 25 06 21 00 05 f4 cc da 50 4e 23 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b
 2d 06 22 00 d8 dc 2e 89 cd da e8 ad 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b
 25 06 21 00 05 f4 df da 2a be 23 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b
 2d 06 3f 10 0e c2 75 77 03 e5 01 00 c6 24 82 34 40 2b 2b 2b 2b 2b 2b
 2d 06 3f 10 0e c2 75 77 03 e5 01 00 c6 24 82 34 40 2b 2b 2b 2b 2b 2b
 59 06 1a 8f 39 8f 40 00 00 00 00 00 00 00 00 00 00 00 00 7f b9 00 00
 2d 06 3f 10 0e c2 75 77 03 e5 01 00 c6 24 82 34 40 2b 2b 2b 2b 2b 2b
 01 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b
 25 06 21 00 05 f4 e5 dc 40 9b 23 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b
 15 06 21 00 01 f0 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b
 25 06 21 00 05 f4 ec cc 8f f0 23 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b
 2d 06 22 00 cb dc 58 46 e3 da 0e 9e 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b
 15 06 21 00 01 f0 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b

9 使用wireshark对数据包抓包分析。安装wireshark,并运行。

apt-get install wireshark

sudo wireshark -k -Y 'gsmtap && !icmp' -i lo

10 至此就可以看到抓到的包了,并可以进行分析,首先我尝试看了一下短信内容,当然,这个短信,是我自己手机接收到的。

HackRF One—GSM嗅探_第1张图片

 总结

到这里就学会了简单的进行GSM消息的嗅探,并且可以看到下行的SMS信息内容。而使用GSM嗅探还可以实现IMSI-Catcher获取基站下手机的IMSI,甚至可以通过分析和密码破解来解码语音通话数据,这些将在后续的文章中相继放出。

你可能感兴趣的:(HackRF,One,python,linux)