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

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

拓展阅读

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

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

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

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

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

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

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

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

 

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

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

安装依赖关系

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

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 x40的Yate和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

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

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

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

支持订阅者

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

注意:* 正则表达式

Tapping选项

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

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

接下来你需要配置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

开启基站

执行以下命令开启基站

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基站之后,会通过短信发送一条包含分配号码的欢迎信息。

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

订阅者

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

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

 

真实测试

在“Test ID PLMN 1-1” GSM基站上进行短信测试

在“Test ID PLMN 1-1”GSM基站上进行通话测试

在“Test ID PLMN 1-1”GSM基站上进行GPRS测试

参考资料

*原文链接strcpy

时间: 2024-10-22 21:35:23

GSM Hacking:使用BladeRF、树莓派、YatesBTS搭建便携式GSM基站的相关文章

GSM Hacking Part① :使用SDR扫描嗅探GSM网络

0×00 写在开头 近期,发现Crazy Danish Hacker在YouTuBe发布了一个挺不错的教程视频:使用SDR嗅探监听GSM网络的通信流量(GSM Sniffing Teaser – Software Defined Radio Series).该教程从电视棒的安装到扫描.嗅探工具的使用.GSM流量包的捕获解密都有详细说明演示: 作为搬运工,在这里将分两三部分参考&总结一下该教程的主要内容,输出一篇中文教程,希望能够给对这方面感兴趣的童鞋带来一定帮助. 0×01 环境搭建 OS:GN

使用GnuRadio+OpenLTE+SDR搭建4G LTE基站(上)

0×00 前言 在移动互联网大规模发展的背景下,智能手机的普及和各种互联网应用的流行,致使对无线网络的需求呈几何级增长,导致移动运营商之间的竞争愈发激烈.但由于资费下调等各种因素影响,运营商从用户获得的收益在慢慢减少,同时用于减少韵味和无线网络的升级投资不断增加,但收入却增长缓慢.为保证长期盈利增长,运营商必须节流. SDR Software Define Radio 软件定义无线电可将基站信号处理功能尽量通过软件来实现,使用通用硬件平台可快速地实现信号的调制解调,编码运算,SDR为现有通信系统

GSM Hacking Part② :使用SDR捕获GSM网络数据并解密

0×00 在文章第一部分 GSM Hacking Part① :使用SDR扫描嗅探GSM网络 搭建了嗅探GSM流量的环境,在第二部中,我们来讨论如何捕获发短信以及通话过程中的流量,从捕获到的数据中解密提取出短信文字以及通话语音. 0×01 1.1 获取三星漏洞利用代码: 这是三星的Modem interface exposed via USB通过该exp可对设备输入AT指令进行调试(此方法仅适用于:Galaxy Note 3.Galaxy S4.Galaxy S5.Galaxy S6). AT

树莓派上搭建 Hadoop 集群环境的方法

最近在学习 Hadoop,正好前几天又在玩儿树莓派,查阅了一些文档,感觉在树莓派上搭建 Hadoop 集群是可行的,当然了,别对性能抱太大的希望,主要是感受一下分布式计算的魅力.在这个过程中参考了很多文档,先列在这里,基本上这些文档都非常详细了,大家可以直接参考. How to build 7 node Raspberry Pi Hadoop cluster Hadoop集群安装配置教程 Hadoop2.6.0 Ubuntu/CentOS 实验软硬件清单 以下是我的实验环境所用的硬件和软件版本清

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

引文 如果你已经购买了Nuand(官方)BladeRF x40,那么就可以在上面运行OpenBTS并可以输入一些指令来完成一些任务.一般来说HackRF,是一款覆盖频率最宽的SDR板卡.它几乎所有的信息都是开源的,甚至包括KiCad文件.缺点是它没有FPGA,使用的低速的USB2接口,ADC/DAC的精度比较低. 再使用 bladeRF 板卡时需要注意两个"镜像":固件 (firmware) 镜像与 FPGA 镜像.二者是两个不同的概念.但是业界叫法不一,有时候会把二者混为一谈.一般而

GSM Hacking:如何对GSM/GPRS网络测试进行测试

写在前面 这里需要介绍的是GSM / GPRS网络测试的一些方法,随着现在硬件设备连网现象的普遍存在,例如智能电表.自动变速箱控制单元(TCU).POS机.报警系统等.这些设备通常需要与网络连接,GSM/2G是1992年欧洲标准化委员会统一推出的标准,它采用数字通信技术.统一的网络标准.加密并不是强制性要求的,但是没有加密通信网络其用户也不会收到通知.这里就不得不提出一个概念移动台(MS),它是移动用户的终端设备,同时是公用GSM移动通信网中用户使用的设备,是整个GSM系统中用户能够直接接触的唯

Moto C118 基于 Osmocom-BB 和 OpenBTS 搭建小型GSM短信基站

此文章PDF文档下载地址:点击下载 0x00 写在前面 大家应该都听说过摩托罗拉C118配合Osmocom-BB实现GSM网络下的短信拦截功能吧,在14年左右新出了一种玩法就是Osmocom-BB的sylvain/testing分支固件可以配合OpenBTS,,借助周围信号强度较大的ARFCN伪造出一个新的基站信号.不过由于摩托罗拉C118的问题,无法实现语音通话功能只可以发送短信(默认只可以发送英文短信,修改源码可以实现发送中文短信) 以下内容将会指导你怎样用Osmocom-bb兼容的手机(如

大数据探索:在树莓派上通过 Apache Spark on YARN 搭建 Hadoop 集群

有些时候我们想从 DQYDJ 网站的数据中分析点有用的东西出来,在过去,我们要用 R 语言提取固定宽度的数据,然后通过数学建模来分析美国的最低收入补贴,当然也包括其他优秀的方法. 今天我将向你展示对大数据的一点探索,不过有点变化,使用的是全世界最流行的微型电脑----树莓派,如果手头没有,那就看下一篇吧(可能是已经处理好的数据),对于其他用户,请继续阅读吧,今天我们要建立一个树莓派 Hadoop集群! I. 为什么要建立一个树莓派的 Hadoop 集群? 由三个树莓派节点组成的 Hadoop 集

如何利用 LTE/4G 伪基站+GSM 中间人攻击攻破所有短信验证 ,纯干货!| 硬创公开课

   这次公开课请来的嘉宾对自己的简介是: 连续创业失败的创业导师: 伪天使投资人: 某非知名私立大学创办人兼校长: 业余时间在本校通信安全实验室打杂. 自从他在黑客大会上演讲<伪基站高级利用技术--彻底攻破短信验证码>后,黑产就盯上了这项技术.他们给能仿制这项攻击方法的人开价保底一个月 200 万元,外加分成. 这个攻击方法其实1秒钟可以血洗很多个银行账号.他说,保守估计一小时能带来 7000 万元的黑产产值.但是,他并不是为了钱.他的原话是:"短信验证码这种安全机制朽而不倒,我想