伪基站搭建
环境和前言
目前2G基站逐渐消失,本次实验纯粹为了研究,请勿用于非法用途!
系统环境:VM14+ubuntu16.04.3
硬件:USRP-B210
在查找伪基站搭建的资料时,发现了两个项目,OPENBTS和OPENBSC,搭建OPENBTS失败后决定改成搭建OPENBSC环境(OPENBTS最后失败在启动OPENBTS时找不到./transceiver,到相关路径下查看只找到transceiver.o和transceiver.c两个中间文件和源文件,估计是编译时候出错了,找不到相关错误也懒得看makefile文件所以就换成搭建OPENBSC)
这是OPENBSC的大体架构:
要想实现最基本的伪基站通信,就需要安装三个组件,OsmoTRX、OsmoBTS、OsmoNITB
安装OpenBSC
1 | $mkdir openbsc |
ldconfig这个命令最近安装的时候经常见到,但我却不知道它的意思,这里记录一下:
为了让动态链接库为系统所共享,还需运行动态链接库的管理命令–ldconfig。ldconfig通常在系统启动时运行,而当用户安装了一个新的动态链接库时,就需要手工运行这个命令.
详细安装过程可以看https://osmocom.org/projects/cellular-infrastructure/wiki/Build_from_Source
安装 OsmoTRX
安装步骤:
1 | $ sudo apt-get install --no-install-recommends libusb-1.0-0-dev libboost-dev |
如果是用usrp需要提前安装好UHD,详细安装过程可以看https://osmocom.org/projects/osmotrx/wiki/OsmoTRX
安装OsmoBTS
1 | $ git clone git://git.osmocom.org/osmo-bts.git |
运行openBSC
安装好所有组件后需要打开四个窗口分别运行
1 | $ sudo osmo-trx-uhd -C ./osmo-trx/doc/examples/osmo-trx-uhd/osmo-trx-uhd.cfg |
这里大概解释一下:
OsmoTRX作为BTS的物理层,主要负责接收SDR传过来的原始信号,然后解析成报文。
OsmoBTS相当于一个基站控制器,负责与OsmoTRX进行通信,完成基站的各种操作。
OsmoNITB负责与OsmoBTS通信,用户通过OsmoNITB对基站下达指令。
不加-c或者-C参数会调用默认配置,但默认配置总是出错(比如默认配置文件找不到,或者运行后不同组件之间无法正常通信),所以我找到github上的myriadrf/cellular-network-configs项目
虽然这个项目是基于limeSDR的,但我认为硬件只会影响到SDR与osmotrx之间的通信接口,所以osmotrx用初始的uhd配置文件,而其它两个用cellular-network-configs项目里的配置文件。
最后也是成功运行起来。
如图是四个终端,左上是osmo-trx-uhd,右上是osmo-nitb,右下是osmo-bts-trx,左下是telnet。
使用openBSC
四个界面都开启后,手机就能接收到伪基站的信号,比如我将网络选择设为只限2G后成功搜索到01001 2G名称的伪基站信号,当手机连接伪基站后,会显示正在注册,也可能直接就注册失败,但这时候在osmo-nitb终端界面就会看到连接手机的imsi号,比如1234567890123456,这时候在telnet界面输入命令:
1 | openBSC> en //记住要先en,有点像交换机,不同模式下能输入的命令不同 |
这时候手机就能在基站上注册成功了,同样步骤注册完两个账号后,就可以实现手机间的通信
1 | openBSC# subscriber imsi 987654321043210 sms sender imsi 1234567890123456 send test123 |
这条命令能让987654321043210接收到1234567890123456的短信,短信内容是test123,短信发送人会显示是5555发送过来的。
评论加载中