转载

GSM Hacking:使用BladeRF、树莓派、YatesBTS搭建便携式GSM基站

GSM Hacking:使用BladeRF、树莓派、YatesBTS搭建便携式GSM基站

每次看到黑客在网上发布的那些GSM技术相关文章我都十分惊讶。然而在没有Software Defined Radios (SDRs)之前,玩GSM并不便宜,除此之外想要好好玩你得下大功夫。

拓展阅读

极客DIY:如何构建一台属于自己的基站

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

在阅读多篇有关GSM基站的文章之后,我注意到有关GSM基站这个话题有许多的不一致或者是讲的不够细致。

基于这一点,我决定写下今天这篇文章,进行手把手教学。

在文章开始之前,我要感谢所有开创GSM技术的黑客以及研究人员

尤其我要感谢 Karsten Nohl (这哥们就是Ninja)出版的 有关GSM Hacking 的书籍(可以去看看他所使用的SS7协议),以及感谢 Simone Margaritelli写下的 “ How To Build Your Own Rogue GSM BTS For Fun And Profit “ (中文版本可以参考FreeBuf发布的 极客DIY:如何构建一台属于自己的基站 )译文,让我第一次实现了GSM基站的搭建。

GSM Hacking:使用BladeRF、树莓派、YatesBTS搭建便携式GSM基站

硬件及价格

  • A Nuand bladeRF x40 USB 3.0 Software Defined Radio. Price: $420.00
  • Two Quad-band Cellular Duck Antennas SMA . Price: $15,9
  • A Raspberry Pi 3 Model B Kit . Price: $69,99
  • A Anker Astro E7 26800mAh Portable Charger (optional). Price: $54,99

树莓派操作系统及初始配置

GSM Hacking:使用BladeRF、树莓派、YatesBTS搭建便携式GSM基站

首先我们要做的就是下载,解压,安装 RASPBIAN Jessie Lite (Version: March 2016, Release date: 2016-03-18, Kernel version 4.1) 镜像到存储卡中。

GSM Hacking:使用BladeRF、树莓派、YatesBTS搭建便携式GSM基站

wget -c http://vx2-downloads.raspberrypi.org/raspbian_lite/images/raspbian_lite-2016-03-18/2016-03-18-raspbian-jessie-lite.zip unzip 2016-03-18-raspbian-jessie-lite.zip dd if=2016-03-18-raspbian-jessie-lite.img of=/dev/Your_MicroSD_Device

在SD卡中完成安装后就可以将其插入到树莓派中了,启动该设备并进行初始化配置。

注意:你需要知道树莓派分配的IP地址,在本文中树莓派分配的IP地址为 192.168.0.10

blog@strcpy.info:/home/blog/$ ssh pi@192.168.0.10 pi@192.168.0.10's password:     The programs included with the Debian GNU/Linux system are free software; the exact distribution terms for each program are described in the individual files in /usr/share/doc/*/copyright.  Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent permitted by applicable law. Last login: Fri Apr 22 15:00:30 2016 from strcpy.info pi@raspberry:~ $

注意:在树莓派中默认的用户名为 pi ,默认的密码为 raspberry

现在你登录到树莓派中,使用超级用户运行配置命令

我们首先从文件系统开始:

pi@raspberry:~ $ sudo su root@raspberrypi:/home/pi# raspi-config

GSM Hacking:使用BladeRF、树莓派、YatesBTS搭建便携式GSM基站

GSM Hacking:使用BladeRF、树莓派、YatesBTS搭建便携式GSM基站

树莓派重启之后你就可以开始安装依赖包的进程了。

安装依赖关系

你必须将这些必要的依赖包安装到环境中去

blog@strcpy.info:/home/blog/$ ssh pi@192.168.0.10 pi@raspberry:~ $ sudo su root@raspberry:/home/pi# apt-get update root@raspberry:/home/pi# apt-get install git telnet apache2 php5 libusb-1.0-0 libusb-1.0-0-dbg libusb-1.0-0-dev cmake automake

连接 Nuand bladeRF x40

现在你就可以将 bladeRF x40 插入到树莓派的一个USB接口上,记得检查是否连接到设备。

root@raspberry:/home/pi# dmesg [ 2092.437659] usb 1-1.2: New USB device found, idVendor=1d50, idProduct=6066 [ 2092.437679] usb 1-1.2: New USB device strings: Mfr=1, Product=2, SerialNumber=3 [ 2092.437692] usb 1-1.2: Product: bladeRF [ 2092.437704] usb 1-1.2: Manufacturer: Nuand [ 2092.437716] usb 1-1.2: SerialNumber: 4c132c8ba43e0c4d922418a29a1ce207

Nuand bladeRF 源代码

下载并安装 Nuand bladeRF 源代码

root@raspberry:/home/pi# cd /tmp root@raspberry:/tmp# wget -c https://github.com/Nuand/bladeRF/archive/master.zip root@raspberry:/tmp# unzip master.zip root@raspberry:/tmp# cd bladeRF-master root@raspberry:/tmp/bladeRF-master# cd host root@raspberry:/tmp/bladeRF-master/host# mkdir build root@raspberry:/tmp/bladeRF-master/host# cd build root@raspberry:/tmp/bladeRF-master/host/build# cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local -DINSTALL_UDEV_RULES=ON ../ root@raspberry:/tmp/bladeRF-master/host/build# make -j4 root@raspberry:/tmp/bladeRF-master/host/build# make install > install.log root@raspberry:/tmp/bladeRF-master/host/build# ldconfig

Yate以及YateBTS (SubversiveBTS)源代码

为了创建GSM基站你需要下载并安装 Yate和YateBTS ,他们都是开源软件

感谢 Simone Margaritelli ,你不用去找兼容 bladeRF x40Yate和YateBTS 版本。他在Github上分享了一份清单

root@raspberry:/tmp/bladeRF-master/host/build# cd /tmp root@raspberry:/tmp# git clone https://github.com/strcpyblog/SubversiveBTS.git root@raspberry:/tmp# cd SubversiveBTS/yate root@raspberry:/tmp/SubversiveBTS/yate# ./autogen.sh root@raspberry:/tmp/SubversiveBTS/yate# ./configure --prefix=/usr/local root@raspberry:/tmp/SubversiveBTS/yate# make -j4 root@raspberry:/tmp/SubversiveBTS/yate# make install > install.log root@raspberry:/tmp/SubversiveBTS/yate# ldconfig root@raspberry:/tmp/SubversiveBTS/yate# cd /tmp/SubversiveBTS/yatebts root@raspberry:/tmp/SubversiveBTS/yatebts# ./autogen.sh root@raspberry:/tmp/SubversiveBTS/yatebts# ./configure --prefix=/usr/local root@raspberry:/tmp/SubversiveBTS/yatebts# make -j4 root@raspberry:/tmp/SubversiveBTS/yatebts# make install > install.log root@raspberry:/tmp/SubversiveBTS/yatebts# ldconfig

Nuand bladeRF x40 固件

下载并安装 Nuand bladeRF x40 firmware v1.8.0

root@raspberry:/tmp/SubversiveBTS/yatebts# cd /tmp root@raspberry:/tmp/# wget -c http://www.nuand.com/fx3/bladeRF_fw_v1.8.0.img root@raspberry:/tmp/# bladeRF-cli -f bladeRF_fw_v1.8.0.img -v verbose

安装完后,从树莓派USB口拔下 Nuand bladeRF x40 ,之后再重新插入。

现在我们是时候检测 安装的bladeRF-cli, libbladeRF, Nuand bladeRF x40 firmware 以及 Nuand bladeRF x40 FPGA 版本。

root@raspberry:/tmp/# bladeRF-cli -i bladeRF> version    bladeRF-cli version:        1.3.1-git-unknown   libbladeRF version:         1.6.1-git-unknown    Firmware version:           1.8.0   FPGA version:               Unknown (FPGA not loaded)  bladeRF>

bladeRF 退出,直接键入 ‘quit’

Network in a Box (NIB) Web GUI

Apache WWW 目录中给NIB Web GUI创建一个 symlink,并赋予配置文件的写权限

root@raspberry:/tmp/# cd /var/www/html root@raspberry:/var/www/html# ln -s /usr/local/share/yate/nib_web nib root@raspberry:/var/www/html# chmod -R a+w /usr/local/etc/yate

配置GSM基站系统

现在你就可以通过浏览器访问 Network in a Box (NIB) Web GUI ,并开始基站的配置

注意:在浏览器键入 http://192.168.0.10/nib

对于GSM基站系统,你需要设置以下值

Radio.Band=900 Radio.C0=75 Identity.MCC=001 Identity.MNC=01 Radio.PowerManager.MaxAttenDB=35 Radio.PowerManager.MinAttenDB=35

GSM Hacking:使用BladeRF、树莓派、YatesBTS搭建便携式GSM基站

显然在 YateBTS 的公开版本中,设置 “Identity.ShortName” 值是没有影响的。根据社区反馈信息,我们得知只有一个商业版本设置这个值是有影响的。

OpenBTS 中,设置这个值能够很好的完成工作。

因此设置 “Identity.ShortName=SubversiveBTS” 的值也是没有影响的

支持订阅者

你可能需要允许订阅者的手机连接到GSM基站

GSM Hacking:使用BladeRF、树莓派、YatesBTS搭建便携式GSM基站

注意:* 正则表达式

Tapping选项

你可以激活 GSM and GPRS ,启用这些选项你可以通过 GSMTAP 的L1/L2 接口抓取 GSM (发信号) 和GPRS (发信号和通信)

GSM Hacking:使用BladeRF、树莓派、YatesBTS搭建便携式GSM基站

至此,这个简化版的配置就完成了。

接下来你需要配置 GPRS 提供数据连接(互联网)

相信我,GPRS的数据连接非常慢

配置GPRS BTS Operability

首先我们需要使用 IPTABLES 配置GPRS的网络连接

root@raspberry:/var/www/html# iptables -t nat -A POSTROUTING -o wlan0 -j MASQUERADE

注意:改变树莓派连接的wlan0网络接口

对于 GPRS operability ,我们需要设置以下值

Firewall.Enable=no firewall MS.IP.Base=192.168.1.20 MS.IP.MaxCount=5

GSM Hacking:使用BladeRF、树莓派、YatesBTS搭建便携式GSM基站

开启基站

执行以下命令开启基站

root@raspberry:/# yate -s

如果所有配置都正确,你可以看到如下信息

... Release 5.0.1 formal build date Apr 22 2016 rev Starting MBTS... Yate engine is initialized and starting up on GhostBTS RTNETLINK answers: File exists MBTS ready

连接手机

你要手动在网络列表中选择 “Test ID PLMN 1-1” 网络ID来连接到GSM基站

在本文中,网络ID为 “Test ID PLMN 1-1” 是由于我们之前在 “Identity.MCC =001”和 “Identity.MNC =01” 中进行设置的

注意: MCC MNC 的值可以在 这里找到

GSM Hacking:使用BladeRF、树莓派、YatesBTS搭建便携式GSM基站

手机成功连接到GSM基站之后,会通过短信发送一条包含分配号码的欢迎信息。

GSM Hacking:使用BladeRF、树莓派、YatesBTS搭建便携式GSM基站

注意:你可以通过编辑 /usr/local/share/yate/scripts/nib.js 文件修改欢迎信息

GSM Hacking:使用BladeRF、树莓派、YatesBTS搭建便携式GSM基站

订阅者

在本节中你可以详细管理基站的订阅者

GSM Hacking:使用BladeRF、树莓派、YatesBTS搭建便携式GSM基站

在这里你可以看到在线的订阅者

GSM Hacking:使用BladeRF、树莓派、YatesBTS搭建便携式GSM基站

原文  http://www.freebuf.com/geek/102729.html
正文到此结束
Loading...