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

简介: 写在前面(原文作者) 上周我去特拉维夫(Tel Aviv)探望我的朋友结果有了一些收获,一块崭新的BladeRF(x40),即一个支持USB3.0的SDR平台,这就意味着可以同时发送和接收信息了。

写在前面(原文作者)

上周我去特拉维夫(Tel Aviv)探望我的朋友结果有了一些收获,一块崭新的BladeRF(x40),即一个支持USB3.0的SDR平台,这就意味着可以同时发送和接收信息了。而HackRF不同于其他两款硬件,它不支持全双工。这意味着要切换收和发的话,必须每次给控制器发送命令。

微控制器处理切换可能要花费微秒级的时间。在这篇文章中将会介绍如何建立一个小型便携式GSM基站,GSM网络可以遭到攻击/劫持/拦截,当然你可以利用相对价格比较低的电子设备做到这一点。而本文也仅仅供交流学习使用。

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

硬件要求

bladeRF x40

两个天线(点击我)

树莓派3

充电宝(作者使用的是 Anker Astro E7(26800mAh))

一个专为树莓派准备的SD卡(不低于8G)

软件

让我们开始为树莓派安装Raspbian系统(lite版),然后将系统写入SD卡中,开始启动树莓派,开始配置WiFi以及网络连接等,完成后应该可以用SSH方式对树莓派进行管理。

这一步将会进行的很快:

sudo apt-get install git apache2 php5 bladerf libbladerf-dev libbladerf0 automake

完成上一步,应该可以连接BladeRF,将其插入到树莓派一个USB端口中,输入dmesg 就可以看到相关信息了:

[ 2332.071675] usb 1-1.3: New USB device found, idVendor=1d50, idProduct=6066

[ 2332.071694] usb 1-1.3: New USB device strings: Mfr=1, Product=2, SerialNumber=3

[ 2332.071707] usb 1-1.3: Product: bladeRF

[ 2332.071720] usb 1-1.3: Manufacturer: Nuand

[ 2332.071732] usb 1-1.3: SerialNumber: b4ef330e19b718f752759b4c14020742

输入bladeRF-cli 以及version指令查看版本信息:

pi@raspberrypi:~ $ sudo bladeRF-cli -i

bladeRF> version

  bladeRF-cli version:        0.11.1-git

  libbladeRF version:         0.16.2-git

  Firmware version:           1.6.1-git-053fb13-buildomatic

  FPGA version:               0.1.2

bladeRF> 

当然bladeRF可以支持很宽的载频范围,带有一个大容量的FPGA,还有高速的USB3.0接口。通过上面的信息可以了解到具体的版本信息,而其它版本的固件在我们的配置条件下不可能工作的。

现在我们开始安装两个开源软件 Yate和YateBTS,这样我们就可以创建基站了。而作者也花费了很长的时间来寻找与bladeRF适合的软件,作者已经将找到合适的程序了,你现在只需要这样做,就可以安装在树莓派home路径下的文件夹里面了:

我们开始正式安装那两个软件吧:

cd yate

./autogen.sh

./configure –prefix=/usr/local

make -j4

sudo make install

sudo ldconfig

cd ..

cd yatebts

./autogen.sh

./configure –prefix=/usr/local

make -j4

sudo make install

sudo ldconfig

这需要花费几分钟的时间,然后就可以完成安装了。接下来就需要在www文件夹目录下创建软连接:

cd /var/www/html/

sudo ln -s /usr/local/share/yate/nib_web nib

赋予配置文件权限:

sudo chmod a+w -r /usr/local/etc/yate

现在就可以在浏览器里面查看基站的网页了:

http://ip-of-your-rpi/nib

配置

使用 nano或vi编辑器打开 /usr/local/etc/yate/ybts.conf配置文件,然后更新里面信息:

Radio.Band=900

Radio.C0=1000

Identity.MCC=YOUR_COUNTRY_MCC

Identity.MNC=YOUR_OPERATOR_MNC

Identity.ShortName=MyEvilBTS

Radio.PowerManager.MaxAttenDB=35

Radio.PowerManager.MinAttenDB=35

然后就可以找到mcc(移动国家代码)或mnc号(移动网络号码)。

现在可以编辑 /usr/local/etc/yate/subscribers.conf配置文件了:

country_code=YOUR_CONTRY_CODE

regexp=.*

警告:如果使用“ .* ”(正则表达式)将会导致信号范围内的每一部具有GSM功能的手机连接到你的基站上。

在你的测试页面(NIB)上会看到这样的信息。

监听

在“Tapping”选项下,你可以配置 GSM以及GPRS选项,在测试接收机性能时,终端把收到的下行数据解调后重新编码调制并发回给测试仪器,然后仪器把终端环回的比特与原始发送的比特比较,计算BER(误码率)或FER(误帧率)或PER(误包率)。这种所谓的环回模式(Loopback)被广泛应用于GSM接收机测试中。而这次也不例外,由于我还没有选择加密信息,所以你可以看见所有的gsm流量信息。

使用基站

现在可以通过输入指令的方式来操作基站吧( BladeRF插入状态):

sudo yate -s

如果配置都正确就可以看到这样一组信息:

Starting MBTS…

Yate engine is initialized and starting up on raspberrypi

RTNETLINK answers: File exists

MBTS ready

在这一刻,BladeRF上中间的LED灯应该开始闪烁了。

测试

现在开始测试吧,手机会连接基站,当然这是由于GSM功能本身的原因。

现在你可以设置任何你想要的MCC、MNC、LAC(位置区域码),甚至可以骗过合法的基站了。

相信手机都会选择信号强的基站进行连接,小伙伴你说会连接哪个基站。作者用的三星 Galaxy S6手机(Network Cell Info Lite应用程序)做的测试,三分钟之后的截图:

现在你可以随意配置基站来做自己喜欢做的事情了,当然你也可以通过“代理”来做一个合法的SMC(一个GSM/3g USB dongle)或者获取GSM手机流量信息,或创建一个免费的SIP业务供人使用,更多信息参阅 YateBTS

前面准备的充电宝也不是没有用的,插上充电宝之后就可以成为一个移动便携式的基站了。

扩展阅读

https://github.com/Nuand/bladeRF/wiki/Setting-up-Yate-and-YateBTS-with-the-bladeRF

https://z4ziggy.wordpress.com/2015/05/17/sniffing-gsm-traffic-with-hackrf/

https://z4ziggy.wordpress.com/2015/05/10/ziggys-embedded-bts/

http://wiki.yatebts.com/index.php/Main_Page

*参考来源evilsocket

相关文章
|
2月前
|
网络协议 算法 程序员
IM开发者的零基础通信技术入门(十四):高铁上无线上网有多难?一文即懂!
本系列文章尽量使用最浅显易懂的文字、图片来组织内容,力求通信技术零基础的人群也能看懂。但个人建议,至少稍微了解过网络通信方面的知识后再看,会更有收获。如果您大学学习过《计算机网络》这门课,那么一定不要错过本系列文章。
41 5
IM开发者的零基础通信技术入门(十四):高铁上无线上网有多难?一文即懂!
|
5月前
|
物联网 数据处理 数据安全/隐私保护
程序与技术分享:BL602&BL604综合项目2:dolphin蓝牙跳蛋
程序与技术分享:BL602&BL604综合项目2:dolphin蓝牙跳蛋
|
物联网
【HaaS Hands-On】全新视频节目上线 创意案例我们一起上手做 第一期E01: 物联网工程师 和你一起上手做遥控机械臂
【HaaS Hands-On】全新视频节目上线 创意案例我们一起上手做 第一期E01: 物联网工程师 和你一起上手做遥控机械臂
|
安全 机器人 数据安全/隐私保护
基于小米4C路由器无障碍搭建机器人嵌入式环境(2021.08.17)
基于小米4C路由器无障碍搭建机器人嵌入式环境(2021.08.17)
基于小米4C路由器无障碍搭建机器人嵌入式环境(2021.08.17)
|
自然语言处理 达摩院 信息无障碍
优酷无障碍剧场--架设文娱“盲道”
第三届科技无障碍发展大会于今日在北京举行,优酷APP作为无障碍化建设的优秀代表受邀在现场进行了经验分享。
304 0
优酷无障碍剧场--架设文娱“盲道”
|
机器学习/深度学习 人工智能 对象存储
HaaS年度经典案例:二次元穿越小电视
最近抖音上测一测你的动漫人物有点火啊。感觉不过瘾,我想要随时穿越二次元,动手用HaaS开发板打造一台二次元穿越小电视,大家排队来穿越吧!
HaaS年度经典案例:二次元穿越小电视
|
JavaScript 前端开发 物联网
ThingJS官方案例(五):物联网室内3D定位导航,上下楼怎么办?
用户需要购买名牌香薰,又或者用餐时想吃泰国菜,在庞大、复杂又容易迷路的购物中心,并不是易事。国内购物中心内几乎都遍布了Wi-Fi热点,其实利用Wi-Fi热点进行室内定位和导航,在技术层面已经成熟。
ThingJS官方案例(五):物联网室内3D定位导航,上下楼怎么办?
DIY历程分享
14个月,有幸走到最后,和大家分享一下感想。欢迎交流。
|
物联网
物联网开发者七夕攻略:如何逮一只小可爱(开源GSM定位器)
“开源GSM定位器”不仅在生活中解决了小可爱丢失的痛点,还能促进社会和谐,拉动GDP增长,提高开发者效率,简直就是一款逆天的好产品啊!
2328 0