大家应该都听说过摩托罗拉C118配合Osmocom-BB实现GSM网络下的短信拦截功能吧,在14年左右新出了一种玩法就是Osmocom-BB的sylvain/testing分支固件可以配合OpenBTS,,借助周围信号强度较大的ARFCN伪造出一个新的基站信号。不过由于摩托罗拉C118的问题,无法实现语音通话功能只可以发送短信(默认只可以发送英文短信,修改源码可以实现发送中文短信)
以下内容将会指导你怎样用Osmocom-bb兼容的手机(如c115,c118,c123等)当作OpenBTS的无线收发机.
0x01 环境
已顺利编译运行过Osmocombb的可继续往下看,否则请参考官方链接或优秀文章
首先安装libosmo-dsp库
先下载
$ git clone git://git.osmocom.org/libosmo-dsp.git
编译前需要安装fftw3
$ apt-get install libfftw3-3 libfftw3-dev libfftw3-doc
然后编译
$ cd libosmo-dsp
$ autoreconf -i
$ ./configure
$ make
$ make install
0x02 Osmocom-BB
采用sylvain/testing分支(具体可看WIKI)
先下载
$ git clone git://git.osmocom.org/osmocom-bb.git
再切换分支编译
$ cd osmocom-bb
$ git checkout sylvain/testing
默认编译出的版本发送信号相关的功能是被注释掉的,用mobile启动layer23后会一直于搜信号的过程中,因为无法发送信号。
如果需要进行实网测试需要打开src/target/firmware/Makefile文件中的编译开关
把osmocom-bb/src/target/firmware下的Makefile中的DCONFIG_TX_ENABLE宏打开:
#CFLAGS += -DCONFIG_TX_ENABLE
然后到src目录下编译
$ cd src make HOST_layer23_CONFARGS=–enable-transceiver
0x03 OpenBTS
这里使用的OpenBTS的版本是OpenBts-p2.8(嫌手动编译麻烦的可以找我要DEB安装的教程),首先安装依赖
$ sudo apt-get install autoconf libtool libosip2-dev libortp-dev libusb-1.0-0-dev g++ sqlite3 libsqlite3-dev erlang libreadline6-dev libncurses5-dev
下载源码
$ svn co http://wush.net/svn/range/software/public(svn版本必须 <= 1.7)
然后编译安装(有不懂的可以前往WIKI查看详细资料)
$ cd a53/trunk
$ make install
$ cd openbts/trunk
$ autoreconf -i
$ ./configure
$ make
$ mkdir /etc/OpenBTS
$ sqlite3 -init ./apps/OpenBTS.example.sql /etc/OpenBTS/OpenBTS.db “.quit”
$ mkdir -p /var/lib/asterisk/sqlite3dir
$ cd subscriberRegistry/trunk
$ make
$ sqlite3 -init subscriberRegistry.example.sql /etc/OpenBTS/sipauthserve.db “.quit”
$ cd smqueue/trunk
$ autoreconf -i
$ ./configure
$ make
$ sqlite3 -init smqueue/smqueue.example.sql /etc/OpenBTS/smqueue.db “.quit”
安装OpenBTS后按照WIKI的说明配置/etc/OpenBTS/OpenBTS.db
$ apt-get install sqlite3 sqliteman(ubuntu系统安装,Kali自带sqlitebrowser无需安装)
然后在终端内输入sqliteman启动软件,打开/etc/OpenBTS/目录下的OpenBTS.db文件
Control.GSMTAP.TargetIP = 127.0.0.1
GSM.Radio.NeedBSIC = 1
GSM.Radio.Band = 900
GSM.CellSelection.Neighbors =(留空)
GSM.RACH.MaxRetrans = 3
GSM.RACH.TxInteger = 8
GSM.Radio.C0 = (发射的频点,数值1-124之间)
Control.LUR.OpenRegistration =.*
0x04 刷入固件
用osmocon程序将trx.compalram.bin刷入手机
命令
$ sudo ./osmocon -p /dev/ttyUSB0 -m c123xor …/…/target/firmware/board/compal_e88/trx.compalram.bin
0x05 开始执行
到OpenBTS/apps目录下,将transceiver重命名为transceiver.bak新建脚本文件transceiver内容如下
#!/bin/bash exec /src/host/layer23/src/transceiver/transceiver
替换成你自己的路径,替换成附近信号最强的ARFCN号
赋予执行权限
chmod +x transceiver
然后开4个终端窗口分别执行
$ cd openbts/trunk/apps
$ ./OpenBTS
$ cd subscriberRegistry/trunk
$ ./sipauthserve(开启注册服务)
$ cd smqueue/trunk/smqueue/
$ ./smqueue(开启短信功能)
$ cd openbts/trunk/apps
$ ./OpenBTSCLI(打开OpenBTS控制台)
如果一切运行顺利打开手机进入 设置-移动网络-网络运营商 即可看到我们创建的基站
在OpenBTSCLI的终端窗口可以输入 help 查看命令帮助
输入 tmsis 可以查看当前基站用户的IMSI
输入 sendsms IMSI 电话号码 短信内容 即可发送任意显示号码的短信