CVE漏洞中文网

0DayBank一个专门收集整理全球互联网漏洞的公开发布网站
  1. 首页
  2. 百科
  3. 正文

广岛秋泽

2017年5月23日 771点热度 0人点赞 0条评论

广岛秋泽

  • 首页
  • 分类阅读
  • 文库
  • 专栏
  • 公开课
  • 商城
  • 漏洞盒子
注册 | 登录
投稿

GSM BTS Hacking: 利用BladeRF和开源BTS 5搭建基站

亲爱的兔子2016-04-11+8共293332人围观 ,发现 17 个不明物体专题极客

3.jpg

引文

如果你已经购买了Nuand(官方)BladeRF x40,那么就可以在上面运行OpenBTS并可以输入一些指令来完成一些任务。一般来说HackRF,是一款覆盖频率最宽的SDR板卡。它几乎所有的信息都是开源的,甚至包括KiCad文件。缺点是它没有FPGA,使用的低速的USB2接口,ADC/DAC的精度比较低。 

再使用 bladeRF 板卡时需要注意两个“镜像”:固件 (firmware) 镜像与 FPGA 镜像。二者是两个不同的概念。但是业界叫法不一,有时候会把二者混为一谈。一般而言,固件指的是嵌入到硬件设备中的软件,存放在只读存储器 (ROM) 或者闪存 (flash) 中,一般不易修改,修改的操作称为“刷新”(flashing)。固件这个名词最初和微代码相关,不过 bladeRF 里源代码是嵌入式 C 程序。FPGA 全名为可编程门阵列,其门电路、寄存器连接可以编程重构,其源程序一般是硬件描述语言 (HDL),通过综合 (synthesis) 等步骤得到二进制文件。在 bladeRF 板卡上,FPGA 只是一块 Altera 芯片。在没有内置非挥发存储时,FPGA 镜像需要每次上电时重新加载,bladeRF 就是这种情况。所以在拿到板卡时,上面已有固件,但还没有 FPGA 镜像。下面本文会具体说明在使用 bladeRF 时如何刷新固件、加载/更新 FPGA 镜像、以及如何自动加载 FPGA 镜像。注意,有时为了避免混淆,会称 FPGA 镜像为 FPGA 比特流,或者 FPGA 配置(因为它就是配置了门电路等组件的连接)。

本文中介绍的工具、技术带有一定的攻击性,请合理合法使用。

系统:

Ubuntu 12.04 LTS Server (32位)下载:(点击我)

升级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

安装一些前提软件包。

设置好之后,开始安装。

将下面代码复制粘贴,运行-将会开始安装:

sudo apt-get install $(
    wget -qO - https://raw.githubusercontent.com/RangeNetworks/dev/master/build.sh | \
    grep installIfMissing | \
    grep -v "{" | \
    cut -f2 -d" ")

另外一种安装方式是通过在所有文件中搜索文本文件 IFMissing,然后再通过apt-get 命令来安装它。当然你也可以直接通过程序代码来操作。

值得注意的是,安装时候有两个安装包会失败(libzmq3 & libzmq3-devel)-但可以在Ubuntu系统下直接安装。

$ sudo add-apt-repository ppa:chris-lea/zeromq
$ sudo apt-get update
$ sudo apt-get install libzmq3-dbg libzmq3-dev 

下一步是安装uhd,当然还要注意GNURadio。运行下面的指令将会执行安装,当然这回花掉一些时间,而这也取决于你的电脑。

wget http://www.sbrac.org/files/build-gnuradio && chmod a+x ./build-gnuradio && ./build-gnuradio

一旦执行完成,你将会收到失败或成功的提示信息。如果失败可以选择重新安装,并查看相关信息来解决问题。下面将会安装和配置 OpenBTS相关软件,包括:libgsm1-dev 、asterisk-dev 、asterisk-config。安装

$ sudo apt-get install libgsm1-dev asterisk-dev asterisk-config

当然你可以自主选择是否安装libusb,请注意不是 libusbx 。安装可以到www.libusb.org页面下载,然后将其复制到 /usr/src目录下。将/usr/lib/x86_64-linux-gnu/libusb.so原始文件备份后覆盖它。

安装OpenBTS

完成上面的事情之后,现在就开始安装它吧。

1.为其(OpenBTS)创建一个目录(结合实际情况)

2.然后安装并运行它

#!/bin/bash

git clone https://github.com/RangeNetworks/openbts.git
git clone https://github.com/RangeNetworks/smqueue.git
git clone https://github.com/RangeNetworks/subscriberRegistry.git

#From here and downwards you can copy&paste (that's why the ';' are for)
for D in *; do (
    echo $D;
    echo "=======";
    cd $D;
    git clone https://github.com
/RangeNetworks/CommonLibs.git;
    git clone https://github.com/RangeNetworks/NodeManager.git);
done;
git clone https://github.com/RangeNetworks/libcoredumper.git;
git clone https://github.com/RangeNetworks/liba53.git

3.创建 libcoredumper

cd libcoredumper;
./build.sh && \
   sudo dpkg -i *.deb;
cd ..

4.创建 liba53

cd liba53;
make && \
   sudo make install;
cd ..;

5.在同一目录下,check out“YateBTS”

svn checkout http://voip.null.ro/svn/yatebts/trunk yatebts 

6.下一步去掉 FPGA(自动加载)信息,然后加载并打开它

vim ./yatebts/mbts/TransceiverRAD1/bladeRFDevice.cpp

从#ifdef(108行)到#endif(129行)结束,这之间是空的,应该为后来留为备用的。

7.更换目录(YateBTS)然后运行 autogen.sh

$ cd opbts/yatebts
$ ./autogen.sh

8.这样就可以创建配置文件,如果你立刻运行并配置脚本,将会出现错误然后出现搜索YATE信息。所以先要打开它配置

$vim configure

能够找到as_fn_err $吗?能够找到$LINENO变量(开源软件 Yate)并替换吗?那么进行下一步吧

9.重新配置

./configure

10.这个时候需要开源软件YateBTS两个文件目录

a) Peering

$ cd /home/openbts/obts/yatebts/mbts/Peering
$ make

b) TransceiverRAD1

$ cd /home/openbts/obts/yatebts/mbts/TransceiverRAD1
$ make

11.复制两个文件到 OpenBTS 文件目录下

$ cd ..
$ cp ./yatebts/mbts/TransceiverRAD1/transceiver-bladerf openbts/apps/
$ cd openbts/apps/
$ ln -sf transceiver-bladerf transceiver

12.编译OpenBTS

$ cd /home/openbts/obts/openbts
$ ./autogen.sh
$ ./configure --with-uhd
$ make

13.下一步配置SQL-lite软件库(bladeRF),需要做一些修改

vim /home/openbts/obts/openbts/apps/OpenBTS.example.sql

查询并替换以下信息

完成并进行下一步

14.创建OpenBTS配置目录

$ sudo mkdir /etc/OpenBTS

15.在OpenBTS目录下,安装软件库

$ sudo sqlite3 -init ./apps/OpenBTS.example.sql /etc/OpenBTS/OpenBTS.db ".quit"

16.一旦完成,下一步可以通过命令来测试它

$ sqlite3 /etc/OpenBTS/OpenBTS.db .dump

如果看到了大量的输出数据信息,那么就表明成功了。进行下一步

17.通过命令运行OpenBTS

$ cd /home/openbts/obts/openbts/apps
$ sudo ./OpenBTS

如果看见系统启动,你的基站准备好并启动它,如果使用手机搜寻附近网络,应该出现测试PLMN网络的测试信息(00101)。

1.jpg

3.jpg

18.如果开始上面的测试,退出openBTS然后安装用户注册表(sipauthserve以及smqueue),需要这些才能够运行openBTS。没有这些,手机不会连接测试网络。

19. 对于用户注册表,必须要创建一个文件目录,即/var/lib/asterisk/sqlite3dir,创建它

$ sudo mkdir -p /var/lib/asterisk/sqlite3dir

20.创建 sipauthserve

$ cd subscriberRegistry
$ ./autogen.sh
$ ./configure
$ make

在/home/openbts/obts/subscriberRegistry/apps目录下创建

21.下一步配置 sipauthserve

$ cd /home/openbts/obts/subscriberRegistry
$ sudo sqlite3 -init subscriberRegistry.example.sql /etc/OpenBTS/sipauthserve.db ".quit"

22.下一步安装SMQUEUE,其与SubscriberRegistry.h文件有关联,可以在其目录修复它

$ cd /home/openbts/obts/smqueue
$ ln -s /home/openbts/obts/subscriberRegistry/ SR
$ autoreconf -i
$ ./configure
$ make

23.一旦完成之后,就需要修改其配置文件

$ cd /home/openbts/obts/smqueue
$ sudo sqlite3 -init smqueue/smqueue.example.sql /etc/OpenBTS/smqueue.db ".quit"

bladeRF 固件升级与FPGA镜像加载

24.在https://github.com/Nuand/bladeRF/wiki/Upgrading-bladeRF-firmware升级固件

25.完成之后在http://www.nuand.com/fpga.php下载镜像(FPGA)

26.加载FPGA镜像

$ bladeRF-cli -L <path to fpga image file>

这步一定要有耐心,不要突然终止,别让板子变成砖了。

27. 完成之后,开始运行之前的配置的服务吧。

$ cd /home/openbts/obts/smqueue
$ sudo ./smqueue &

$ cd /home/openbts/obts/subscriberRegistry/apps
$ sudo ./sipauthserve &

$ cd /home/openbts/obts/openbts/apps
$ sudo ./OpenBTS &

28.启动OpenBTSCLI

$ cd /home/openbts/obts/openbts/apps/
$ sudo ./OpenBTSCLI

29. 默认情况下, OpenBTS不会接受额外的登记信息,需要做到下面几点

a) 输入你手机的IMSI(国际移动用户识别码)

b) 设置所有的IMSI号可以被登记

config Control.LUR.OpenRegistration .*

这么做将会导致信号范围内所有的手机连接到你配置的基站上面,包括(隔壁的妹子or老王)。

现在你可以在手机上能够搜索到基站网络了,可以拨打服务电话(作者那边是600)做测试(Asterisk)。

了解更多

[1] https://github.com/Nuand/bladeRF/wiki/Minimalistic-build-and-run-test-for-OpenBTS-5

[2] https://wush.net/trac/rangepublic/wiki/BuildInstallRun#ConfiguringOpenBTS

[3] https://wush.net/trac/rangepublic/wiki/CommonErrors

[4] http://openbts.org/w/index.php/Main_Page

[5] https://github.com/Nuand/bladeRF/wiki/Upgrading-bladeRF-firmware

*参考来源:linux.net.pk,FB小编亲爱的兔子编译,转载请注明来自FreeBuf黑客与极客(FreeBuf.COM)

亲爱的兔子

亲爱的兔子205 篇文章等级: 8级
|
|
  • 上一篇:极客DIY:如何构建一台属于自己的基站
  • 下一篇:极客DIY:利用Arduino 制作一个小机器人
发表评论

已有 17 条评论

  • nick 2016-04-11回复1楼

    前两天不是发过一个类似的吗

    亮了(4)
  • rain 2016-04-11回复2楼

    sendsms的中文如何解决呢

    亮了(0)
    • 广岛秋泽 (3级)Put the gun down 2016-04-11回复

      @ rain sendsmspdu

      亮了(0)
      • rain 2016-04-14回复

        @ 广岛秋泽  sendsmspdu在2.6的版本中代码部分写入了,但是在以后的版本中,已经取消了该部分功能,在CLI目录代码里只实现了sendsms的代码;是否需要自己修改代码做编码呢?

        亮了(0)
  • 哇哈哈哈哈哈哈哈 2016-04-11回复3楼

    兼容HackRF吗?

    亮了(0)
    • 电炮达人 (3级) 2016-09-11回复

      @ 哇哈哈哈哈哈哈哈 不兼容,最低要求是BLADERF.

      亮了(0)
  • hellword 2016-04-12回复4楼

    兼容HackRF吗?

    亮了(0)
  • test 2016-04-13回复5楼

    兼容HackRF吗?

    亮了(0)
  • hello 2016-06-13回复6楼

    可以发短信给不在同一基站下的其他电话吗?

    亮了(0)
  • 进取 2016-06-20回复7楼

    请问openbts 5.0如何加入PUD 编码实现中文

    亮了(0)
  • wuhaitongtong (1级) 2016-06-30回复8楼

    hacrf可以兼容么? 作者不是又在推销新产品吧?

    亮了(0)
  • wuhaitongtong 2016-08-10回复9楼

    我用的是usrp B200 手机很难接入基站 注册成功过一次 但是无法发送短信

    亮了(0)
    • 电炮达人 (3级) 2016-09-11回复

      @ wuhaitongtong 手动搜索才能接入,想手机主动连接请参考研究伪基站的吸入技术,不难。

      亮了(0)
  • 电炮达人 (3级) 2016-08-15回复10楼

    GSM BTS Hacking: 利用BladeRF和开源BTS 5搭建基站

    亮了(0)
  • 电炮达人 (3级) 2016-09-30回复11楼

    最关键的一点,bladeRf只有4毫瓦的输出,而USRP的输出是100-200毫瓦,用bladeRf做基站根本就是个玩意,甚至连个玩意都不是,用USRP至少能几十米范围内覆盖运营商的信号,而bladeRf的信号范围只有5厘米。
    真正的基站必须用功放扩大信号。
    一个通讯网优人告诉大家,玩东西也要买个真玩具,不要买个小模型。
    所以这篇报道就是误导。

    亮了(1)
  • 电炮达人 (3级) 2016-09-30回复12楼

    对了,现在的伪基站的硬件已经早就脱离软件无线电的范围了。
    关键的主板和功放都是专门的,3000元就可以组装一台基站了,真正的基站。
    注意安全,移动现在可有专门的对付伪基站的仪器,做做实验可以,干坏事可是不行哦

    亮了(0)
  • 电炮达人 (3级) 2016-10-09回复13楼

    中移动自主研发的“伪基站监测治理系统”,已能实现快速甄别、实时定位伪基站并追踪其运动路径,系统监控粒度达到分钟。以北京地区为例,通过系统展示,工作人员可以观察到伪基站的活动规律:环路沿线是重灾区,白天多在交通枢纽、商场等人群密集地区,而夜间多在酒店、居民住宅周边发送短信。搜狐科技注意到,西三旗、房山等地伪基站活动频繁。
    http://maoqiying.baijia.baidu.com/article/276030

    亮了(0)

必须您当前尚未登录。登陆?注册

必须(保密)

表情插图

取消

亲爱的兔子

亲爱的兔子

前进的兔子君。

205 篇文章17 条评论

相关阅读

  • GSM Hacking:如何对GSM/GPRS网络测试进行测试?
  • 黑客在Defcon建立私人电话网络
  • 如何利用c118搭建基站发短信实验?
  • GSM BTS Hacking: 利用BladeRF和开源BTS 5搭建基站
  • 麻省理工发明可以穿墙透视的WiFi雷达

特别推荐

关注我们 分享每日精选文章

不容错过

  • CVE-2016-5696漏洞分析:TCP侧信道安全Leon不会玩QEMU2016-08-19
  • 半开源Web安全测试与学习平台 – 蚁逅69氏2015-03-19
  • 2015年夏季国内外重磅黑客峰会参会指南明明知道2015-06-18
  • 【重磅】FreeBuf发布2017金融行业应用安全态势报告FreeBuf研究院2017-03-20

FREEBUF

  • 免责声明
  • 关于我们
  • 加入我们

广告及服务

  • 寻求报道
  • 广告合作
  • 联系我们
  • 友情链接

关注我们

  • 官方微信
  • 新浪微博
  • 腾讯微博
  • Twitter

赞助商

Copyright © 2013 WWW.FREEBUF.COM All Rights Reserved 沪ICP备13033796号

css.php

正在加载中...

0daybank

标签: 暂无
最后更新:2017年5月23日

小助手

这个人很懒,什么都没留下

点赞
< 上一篇
下一篇 >

文章评论

您需要 登录 之后才可以评论

COPYRIGHT © 2024 www.pdr.cn CVE漏洞中文网. ALL RIGHTS RESERVED.

鲁ICP备2022031030号

联系邮箱:wpbgssyubnmsxxxkkk@proton.me