利用C118轻松实现Openbts(伪基站)视频讲解

说明

出于近期各种电信诈骗泛滥的考虑,本博客不提供关于此类信息的视频讲解,打击电信诈骗犯罪是我们每个技术人应该有的态度,技术本无罪,技术应该用来打击犯罪而不是帮助犯罪!

笔记

安装完一个全新的操作系统之后 首先进行一个更新 确保软件是最新的
执行 sudo apt-get update && sudo apt-get dist-upgrade -y
为了方便操作,这里安装一个多窗口终端 terminator , vim , aptitude , axel,sqlitebrowser
执行 sudo apt-get install terminator vim aptitude axel sqlitebrowser -y
接下来按照官方教程一步一步进行bts的配置
首先打开osmocombb官方的页面 https://bb.osmocom.org/trac/
在 Tutorials 这一项里边可以看到 CalypsoBTS with OsmoBTS/OpenBTS
这个页面详细介绍了使用廉价的 Calypso 手机配合 OsmoBTS 或者 OpenBTS 搭建BTS的过程
点击进去 https://bb.osmocom.org/trac/wiki/Tutorials/CalypsoBTS 页面分为三部分
第一部分描述了必备的一些准备工作,在配置bts之前必须先完成osmocombb的一个工作环境配置
进入 http://bb.osmocom.org/trac/wiki/Software/GettingStarted 链接,这个页面详细介绍了如何搭建 osmocombb 的工作环境
现在跟着步骤来进行搭建 osmocombb 的工作环境
由于编译 osmocomBB 的时候 依赖 GNU 的 autoconf, automake, libtool, pkg-config, make 和 GCC ,所以首先得安装好这些包或者软件
sudo aptitude install libtool shtool automake autoconf git-core pkg-config make gcc
对于osmocomBB和其他的几个 osmocom 项目,你还需要 libosmocore
点击 https://bb.osmocom.org/trac/wiki/libosmocore 这个页面详细介绍了如何编译安装 libosmocore 的步骤
关于 libosmocore 的源码,可以在这里找到 http://cgit.osmocom.org/cgit/libosmocore/
由于编译 libosmocore 需要先安装一些工具
执行 sudo apt-get install build-essential libtool libtalloc-dev shtool autoconf automake git-core pkg-config make gcc 安装
还有一些可选的包最好也安装一下以防万一
sudo apt-get install libpcsclite-dev
现在你可以通过 git clone git://git.osmocom.org/libosmocore.git 来获得 libosmocore
执行下面的命令编译安装
cd libosmocore/
autoreconf -i
./configure
make
sudo make install
sudo ldconfig -i
cd ..
如果不需要 pcsclite 这个库,可以执行 ./configure --disable-pcsc 然后再进行编译
编译安装完成之后回到 http://bb.osmocom.org/trac/wiki/Software/GettingStarted 这个页面
看到如何需要编译  osmocomBB 或者 SIMtrace 需要GNU为ARM准备的toolchain
点击 http://bb.osmocom.org/trac/wiki/GnuArmToolchain 这个页面详细介绍了 GNU ARM toolchain 编译安装的步骤
创建一个目录叫 GnuArmToolchain 然后进入这个目录
然后下载自动化执行脚本 gnu-arm-build.3.sh
下载地址  http://bb.osmocom.org/trac/raw-attachment/wiki/GnuArmToolchain/gnu-arm-build.3.sh
为了编译 toolchain 需要安装一些包 (这里假设你使用的是Debian的发行版)
执行 sudo apt-get install build-essential libgmp3-dev libmpfr-dev libx11-6 libx11-dev texinfo flex bison libncurses5 libncurses5-dbg libncurses5-dev libncursesw5 libncursesw5-dbg libncursesw5-dev zlibc zlib1g-dev libmpfr4 libmpc-dev 安装
接下来创建几个必要的目录 mkdir build install src 然后进入 src目录下载编译需要的包,这里可以同时开启多个窗口下载
  axel -n 100 http://ftp.gnu.org/gnu/gcc/gcc-4.8.2/gcc-4.8.2.tar.bz2
  axel -n 100 http://ftp.gnu.org/gnu/binutils/binutils-2.21.1a.tar.bz2
  axel -n 100 ftp://sources.redhat.com/pub/newlib/newlib-1.19.0.tar.gz
下载完成之后切换到上级执行 ./gnu-arm-build.3.sh  进行编译(过程比较漫长)
编译完成之后 会显示
Build complete! Add <YOURPATH>/bin to your PATH to make arm-none-eabi-gcc and friends
accessible directly.
需要手动把那个地址添加到环境变量中,否则无法正确进行下面的arm交叉编译
[备注]执行 echo "export PATH=\$PATH:<YOURPATH>/bin">>~/.bashrc 添加到 ~/.bashrc
[备注]然后执行 source ~/.bashrc 使环境变量生效
接下来进行osmocombb的交叉编译
回到 http://bb.osmocom.org/trac/wiki/Software/GettingStarted 继续下面的步骤
git 回来osmocombb 的源码
git clone git://git.osmocom.org/osmocom-bb.git
cd osmocom-bb
git pull --rebase


切换osmocom-bb的分支

git checkout sylvain/testing

编译的时候启用收发器

切换到 src 目录执行 make 进行编译
make HOST_layer23_CONFARGS=--enable-transceiver
接下在准备好TRX


打开 http://bb.osmocom.org/trac/wiki/Software/Transceiver 这个页面,详细描述了使用C118配合OpenBTS的步骤

收发器依赖 libosmo-dsp ,所以要先安装下
git clone git://git.osmocom.org/libosmo-dsp.git
cd libosmo-dsp/
autoreconf -i
./configure
make
sudo make install
cd ..
这个时候会报错 说 fftw3f 这玩意不存在,安装一下就好了
sudo apt-get install libfftw3-dev
然后接着刚才的操作继续编译


在BTS与手机之前有一个好的时钟是非常重要的,因为 Time-division (TDMA) 系统在启动和停止的时候非常需要精确的计算时间段,如果基站的时钟 没有同步,通讯就会变得不稳定,任何一个节点在处理轻微的时间段偏移时就可能引发错误.
可以只用GPS信号作为时钟源,但是有一个更加简单的方法从公共的移动网络中捕获时钟.
使用 RSSI 或者cell_log找到最强的基站并记住ARFCN的编号


openBTS部分 参考 https://github.com/RangeNetworks/dev/wiki#selecting-a-branch-or-tag
首先升级git
$ sudo apt-get install software-properties-common python-software-properties
$ sudo add-apt-repository ppa:git-core/ppa
(press enter to continue)
$ sudo apt-get update
$ sudo apt-get install git
下载源码 git clone https://github.com/RangeNetworks/dev.git 进行下一步之前需要确定 git的版本大于 1.8.2
git --version 检查版本
git version 2.9.1
切换到dev目录执行 ./clone.sh 漫长的等待之后 执行 ./switchto.sh master
【注意】
在执行编译之前强烈建议先在本地搭建一个web服务器,因为在编译的时候会去下载几个文件,下载非常缓慢

执行 ./build.sh SDR1 进行编译 经过漫长的等待 .... 然后就失败了 ,报错信息如下

wget http://google-coredumper.googlecode.com/files/coredumper-1.2.1.tar.gz
--2016-07-14 20:03:30--  http://google-coredumper.googlecode.com/files/coredumper-1.2.1.tar.gz
正在解析主机 google-coredumper.googlecode.com (google-coredumper.googlecode.com)... 74.125.203.82, 2404:6800:4008:c03::52
正在连接 google-coredumper.googlecode.com (google-coredumper.googlecode.com)|74.125.203.82|:80... 失败:连接超时。
正在连接 google-coredumper.googlecode.com (google-coredumper.googlecode.com)|2404:6800:4008:c03::52|:80... 失败:网络不可达。
ERROR: command failed!
# ERROR: command failed!

很显然是因为我朝并不能直接访问 google得用梯子,搭好梯子再次执行编译 经过漫长的等待之后 会到一个下载文件的地方 就是下载

http://downloads.asterisk.org/pub/telephony/asterisk/releases/asterisk-11.7.0.tar.gz
http://downloads.asterisk.org/pub/telephony/sounds/releases/asterisk-core-sounds-en-gsm-1.4.24.tar.gz
http://downloads.asterisk.org/pub/telephony/sounds/releases/asterisk-moh-opsound-gsm-2.03.tar.gz

这三个文件,发现下载非常缓慢
这里有种快速下载的方法,使用高速下载工具比如 axel先把软件下载回来然后本地搭建web服务器,修改host重定向到本地,这样就能实现秒下
编译完成之后生成的文件在dev/BUILDS下面以时间命名的文件夹内
sudo dpkg -i BUILD-timestamp/*.deb 进行安装,这里会出现一些依赖文件,执行 sudo apt-get install -f 解决依赖问题


根据文档我们还需要修改OPenbts的配置文件在/etc/OpenBTS/OpenBTS.db,使用sqlitebrowser打开
Control.GSMTAP.TargetIP = 127.0.0.1
GSM.Radio.NeedBSIC = 1
GSM.Radio.Band = 1800
GSM.CellSelection.Neighbors =   (set to empty string)
GSM.RACH.MaxRetrans = 3
GSM.RACH.TxInteger = 8
GSM.Radio.C0 = <your ARFCN>
Control.LUR.OpenRegistration = ^26242.*$ (这里只允许MNC为262或者42的终端被注册,写的是正则匹配,根据自己所在的地区修改,也可以设置为空)
接下在就是运行了,首先要确保openbts处于未运行状态,切换到OpenBTS的执行目录,创建一个名叫 transceiver 的脚本文件,内容如下
#!/bin/bash
exec <your path to osmocom-bb>/src/host/layer23/src/transceiver/transceiver <ARFCN>
注意这里的 ARFCN 是时钟源同步的那个基站,这个脚本需要可执行权限 sudo chmod +x transceiver
接着要在手机上运行TRX,刷机方式跟普通的gsm嗅探是一样的 sudo host/osmocon/osmocon -m c123xor -p /dev/ttyUSB0 -c target/firmware/board/compal_e88/trx.highram.bin
trx 固件在这 osmocom-bb/src/target/firmware/board/compal_e88/trx.highram.bin
当然也可以先刷rssi固件来找找信号最强的ARFCN

2016-07-17 23-22-38屏幕截图.png - 大小: 341.83 KB - 尺寸: 1360 x 768 - 点击打开新窗口浏览全图

本文链接:https://www.92ez.com/?action=show&id=23384
!!! 转载请先联系non3gov@gmail.com授权并在显著位置注明作者和原文链接 !!! 小黑屋
提示:技术文章有一定的时效性,请先确认是否适用你当前的系统环境。

上一篇: 从IP段扫描的数据来看弱口令问题
下一篇: 对Zigbee通信协议的一个无目的性测试

访客评论
#1
回复 Ben 2016-05-30, 4:57 PM
老大什么时候出教程,设备都已经买好坐等了,youtu已经打开了
回复 GH05T 2016-06-12, 1:16 PM
@Ben: 稍安勿躁,平时上班比较繁忙,技术文章需要测试的环境比较多
回复 z714233436 2016-07-05, 7:52 AM
@GH05T: 有视频了吗
#2
回复 bit 2016-06-19, 7:37 PM
坐等。。
#3
回复 z714233436 2016-07-05, 7:43 AM
楼主视频在哪啦
#4
回复 303 2016-07-12, 9:21 AM
想了解下..
#5
回复 崇拜博主大神 2016-07-19, 11:41 AM
有了视频记得公开一下啊博主,太感谢了。。。
#6
回复 bbc250 2017-03-09, 8:02 PM
cd libcoredumper
./build.sh
tar zxf coredumper-1.2.1.tar.gz
cd coredumper-1.2.1
mv packages/deb debian
chmod 644 debian/control
patch -p0
patching file src/elfcore.c
patching file src/linuxthreads.c
patching file src/linux_syscall_support_unittest.cc
dpkg-buildpackage -us -uc
dpkg-buildpackage: source package libcoredumper
dpkg-buildpackage: source version 1.2.1-1
dpkg-buildpackage: source distribution unstable
dpkg-buildpackage: source changed by Google Inc. <opensource@google.com>
dpkg-buildpackage: host architecture armhf
dpkg-source --before-build coredumper-1.2.1
debian/rules clean
dh_testdir
dh_testroot
rm -f build-stamp
# Add here commands to clean up after the build process.
/usr/bin/make distclean
make[1]: Entering directory \\\'/opt/dev/libcoredumper/coredumper-1.2.1\\\'
make[1]: *** No rule to make target \\\'distclean\\\'。 停止。
make[1]: Leaving directory \\\'/opt/dev/libcoredumper/coredumper-1.2.1\\\'
debian/rules:55: recipe for target \\\'clean\\\' failed
make: [clean] Error 2 (ignored)
cp -f /usr/share/misc/config.sub config.sub
cp -f /usr/share/misc/config.guess config.guess
dh_clean
dh_clean: Compatibility levels before 5 are no longer supported (level 4 requested)
debian/rules:55: recipe for target \\\'clean\\\' failed
make: *** [clean] Error 25
dpkg-buildpackage: error: debian/rules clean gave error exit status 2
ERROR: command failed!
# ERROR: command failed!
#7
回复 bbc250 2017-03-09, 9:39 PM
运行./build.sh SDR1 出现上述错误
进到/opt/dev/libcoredumper/里  给build.sh 加上一句  ./configure
错误依旧
发表评论

评论内容 (必填):