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

写在前面(原文作者)
上周我去特拉维夫(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.3: New USB device found, idVendor=1d50, idProduct= [ 2332.071694] usb -1.3: New USB device strings: Mfr=, Product=, SerialNumber= [ 2332.071707] usb -1.3: Product: bladeRF [ 2332.071720] usb -1.3: Manufacturer: Nuand [ 2332.071732] usb -1.3: SerialNumber: b4ef330e19b718f752759b4c14020742
输入bladeRF-cli 以及version指令查看版本信息:
pi@raspberrypi:~ $ sudo bladeRF-cli -i bladeRF> version bladeRF-cli version: 0.11.-git libbladeRF version: 0.16.-git Firmware version: 1.6.-git-053fb13-buildomatic FPGA version: 0.1. bladeRF>
当然bladeRF可以支持很宽的载频范围,带有一个大容量的FPGA,还有高速的USB3.0接口。通过上面的信息可以了解到具体的版本信息,而其它版本的固件在我们的配置条件下不可能工作的。
现在我们开始安装两个开源软件 Yate和YateBTS,这样我们就可以创建基站了。而作者也花费了很长的时间来寻找与bladeRF适合的软件,作者已经将找到合适的程序了,你现在只需要这样做,就可以安装在树莓派home路径下的文件夹里面了:
git clone https://github.com/evilsocket/evilbts.git cd evilbts
我们开始正式安装那两个软件吧:
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= Radio.C0= Identity.MCC=YOUR_COUNTRY_MCC Identity.MNC=YOUR_OPERATOR_MNC Identity.ShortName=MyEvilBTS Radio.PowerManager.MaxAttenDB= Radio.PowerManager.MinAttenDB=
然后就可以找到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
极客DIY:如何构建一台属于自己的基站的更多相关文章
- 极客DIY:如何用Siri与树莓派“交互”
苹果在2014年推出的HomeKit智能家居平台的确给人眼前一亮的感觉.随着时间的推移,国外的黑客对HomeKit该逆向的逆向,结果也都汇总到了git.本着折腾到死的极客心态,从网上淘了一块树莓派进行 ...
- 极客DIY:廉价电视棒玩转GNSS-SDR,实现GPS实时定位
0×00 前言 GNSS是Global Navigation Satellite System的缩写.中文称作:全球卫星导航系统.全球导航卫星系统. GNSS泛指所有的卫星导航系统,包括全球的.区域的 ...
- 极客DIY:使用树莓派制作一架四轴无人机
如果你想DIY一台属于自己的无人机,那么接下来可以阅读这篇文章,阅读完毕之后也许对你会有启发. 这个项目主要用到的零件主要来自Erle Robotics(一个使用Linux系统的开源四轴飞行器项目). ...
- 极客DIY:打造你的专属黑客U盘
简介 由于“Bad USB漏洞”的存在,USB闪存驱动器也成了常见的攻击目标.Bad-USB让黑客可以重新编程微控器作为一个“人机界面装置”(HID)或键盘,然后在目标机器上执行自定义键盘敲击.这种情 ...
- 极客DIY:制作一个可以面部、自主规划路径及语音识别的无人机
引言 现在大部分无人机厂商都会为第三方开发者提供无人机API接口,让他们更容易地开发无人机飞行控制应用程序,让无人机想怎么玩就怎么玩.有的API接口可以帮助开发者开发基于Web版的APP.手机APP甚 ...
- 极客DIY:使用树莓派制作一套“NAS+私有云盘+下载机”
原创作者:HackLiu 0×00 前言 如果你家里有多台设备需要联网需要娱乐,你一定会或多或少遇到设备碎片化带来的烦恼.当然,已经有很多厂商包括新晋的小米.360在内的互联网公司做了这个事情 ...
- 极客DIY:打造属于自己的无线移动渗透测试箱
本文中介绍的工具.技术带有一定的攻击性,请合理合法使用. 你想不想拥有一款属于自己的移动无线渗透测试箱,如果你感兴趣,下面介绍的设备将会对你很有帮助.这个箱子被称为“MiTM(中间人攻击)WiFi箱” ...
- 极客DIY:使用Arduino制作一块开源手表
1 – 引言 首先让我们看下这个项目要考虑到的问题: .)使用100%Arduino兼容性硬件 .)保证存储器足够大可以装下大量的稍后会扩展的新内容 .)电量最少够1天用 .)BLE既是中枢设备又是外 ...
- 极客DIY:开源WiFi智能手表制作
如果你喜欢拥有一款属于自己的无线手表,那么请不要错过,相信阅读完这篇文章对你会很有帮助. 硬件规格 ESP8266(32Mbit闪存) MPU-9250(陀螺仪传感器)以及 AK8963(内置磁力计) ...
随机推荐
- 从Oracle迁移到Mysql之前必须知道的50件事
1. 对子查询的优化表现不佳. 2. 对复杂查询的处理较弱 3. 查询优化器不够成熟 4. 性能优化工具与度量信息不足 5. 审计功能相对较弱 6. 安全功能不成熟,甚至可以说很粗糙.没有用户组与角色 ...
- Qt之窗口动画(下坠、抖动、透明度)
简述 前面几节中我们介绍了关于动画的基本使用,有属性动画.串行动画组.并行动画组.这节我们来实现一些特效,让交互更顺畅. 简述 示例 效果 源码 更多参考 示例 下面,我们以geometry.pos. ...
- ASP.NET中EVAL用法大全
<%# Bind("Subject") %> //绑定字段<%# Container.DataItemIndex + 1%> //实现自动编号<%# ...
- eclipse中 起动tomcat时报Multiple Contexts have a path of "/shopping"
eclipse中 启动tomcat时报Multiple Contexts have a path of "/shopping". 这个是由于你的server服务器中的server. ...
- 深入入门正则表达式(java)
一.入门基础 1.元字符 很多人对正则表达式的印象就是乱码..许许多多的符号组合在一起,偶见单词,正则确实是这样的,所以下面我们要看看这些符号都是什么意思 有些符号不是大家看到的字面上的意思:比如“. ...
- xml数据解析调研
XML数据解析http://www.tuicool.com/articles/Nraau2(必用) http://www.cnblogs.com/pengyingh/articles/2342699. ...
- FLASH AS 不显示中文
我修改一个as游戏,发现公告显示不了,整整折腾了2天. flash TextField 汉字不显示,英文会显示,如果是汉字夹杂数字,只把数字显示了,汉字被忽略了. 有人说嵌入字体,网上一搜索,好麻 ...
- ROS语音识别
一.语音识别包 1.安装 安装很简单,直接使用ubuntu命令即可,首先安装依赖库: $ sudo apt-get install gstreamer0.10-pocketsphinx ...
- libpng交叉编译安装
tar xzf libpng-1.5.22.tar.gz cd libpng-1.5.22 mkdir tmp 打开Makefile文件并修改CC=arm-linux-gcc ./configure ...
- Android Phonebook编写联系人UI加载及联系人保存流程(六)
2014-01-07 11:18:08 将百度空间里的东西移过来. 1. Save contact 我们前面已经写了四篇文章,做了大量的铺垫,总算到了这一步,见证奇迹的时刻终于到了. 用户添加了所有需 ...