Top Internet of Things Daily & Weekly

使用OpenBTS基站测试物联网模块 IoT mode fuzzing with OpenBTS – 雪碧 0xroot

IoT mode fuzzing with OpenBTS #GSM #SDR #IoT #GNURadio

  • deb sudo apt-get install -f
  • sudo apt-get install software-properties-common python-software-properties sudo add-apt-repository ppa:chris-lea/zeromq sudo apt-get update
  • sudo apt-get install software-properties-common python-software-properties sudo add-apt-repository ppa:git-core/ppa sudo apt-get update sudo apt-get install git
  • pass — Asking for clock rate 16.000000 MHz…
  • — Actually got clock rate 16.000000 MHz.

本文将分享如何通过SDR加开源项目搭建伪基站并使用伪基站的GPRS功能作为网关来进行GSM/GPRS网络测试,…

@cn0Xroot: IoT mode fuzzing with OpenBTS #GSM #SDR #IoT #GNURadio

0x00 引子

近年来,随着云计算、物联网技术的快速发展,物联网的理念和相关技术产品已经广泛渗透到社会经济民生的各个领域,越来越多的穿戴设备、家用电器通过蓝牙、Wi-Fi、Li-Fi、z-wave、LoRa等技术接入互联网,成为联网的终端设备。

但是由于这些技术普遍为短距离无线通信技术,通常被设计用于室内和短距离使用,在室外尤其是非视距下性能表现非常差,而作为现有成熟的GSM(Global System for Mobile Communication)技术,因其网络在全国范围内实现了联网和漫游,在网络资源、传输特性及数据可靠性等方面的优势,提供了一个机动、灵活、可靠的远距离传输方式,所以使用GSM模块联网的方案也被广泛使用。

0x01 测试短板

针对短距离无线通信技术的测试方法有很多,同时也被大家所悉知、使用,所以这里不再一一详述。而对于通过使用2G/GSM、3G/UMTS以及4G/LTE基站联网通信的设备,例如智能电表、POS机、抓娃娃机、自动售货机这些硬件的测试方法、技巧却是寥寥无几,几乎一片空白。

本文将分享如何通过SDR加开源项目搭建伪基站并使用伪基站的GPRS功能作为网关来进行GSM/GPRS网络测试,并对GSM模块的硬件流量进行拦截、分析、重放等。

0x02 环境搭建

2.2 搭建OpenBTS开发环境

编译下载的源码,因为使用的是USRP B200 build脚本后加SDR硬件 ,如果使用的是USRP N200 则执行./build.sh N200(过程中需从谷歌下载源码,建议全程翻墙,否则会报错!)

编译过程根据网络、机器性能而异,通常在30-45分钟左右,编译完成后,ubuntu自动安装GnuRadio、USRP的UHD驱动等相关SDR环境,但USRP的固件还需手动下载:

$ uhd_usrp_probe linux; GNU C++ version 5.3.1 20151219; Boost_105800; UHD_003.009.002-0-unknown — Loading firmware image: /usr/share/uhd/images/usrp_b200_fw.hex… — Detected Device: B200 — Loading FPGA image: /usr/share/uhd/images/usrp_b200_fpga.bin… done — Operating over USB 2. — Detecting internal GPSDO…. No GPSDO found — Initialize CODEC control… — Initialize Radio control… — Performing register loopback test… pass — Performing CODEC loopback test… pass — Asking for clock rate 16.000000 MHz… — Actually got clock rate 16.000000 MHz. — Performing timer loopback test… pass — Setting master clock rate selection to ‘automatic’.   _____________________________________________________  / |       Device: B-Series Device |     _____________________________________________________ |    / |   |       Mboard: B200 |   |   revision: 5 |   |   product: 1 |   |   serial: 30EA064 |   |   name: MyB200 |   |   FW Version: 8.0 |   |   FPGA Version: 13.0 |   | |   |   Time sources: none, internal, external, gpsdo |   |   Clock sources: internal, external, gpsdo |   |   Sensors: ref_locked |   |     _____________________________________________________ |   |    / |   |   |       RX DSP: 0 |   |   |   Freq range: -8.000 to 8.000 MHz |   |     _____________________________________________________ |   |    / |   |   |       RX Dboard: A |   |   |     _____________________________________________________ |   |   |    / |   |   |   |       RX Frontend: A |   |   |   |   Name: FE-RX1 |   |   |   |   Antennas: TX/RX, RX2 |   |   |   |   Sensors: temp, rssi, lo_locked |   |   |   |   Freq range: 50.000 to 6000.000 MHz |   |   |   |   Gain range PGA: 0.0 to 76.0 step 1.0 dB |   |   |   |   Bandwidth range: 200000.0 to 56000000.0 step 0.0 Hz |   |   |   |   Connection Type: IQ |   |   |   |   Uses LO offset: No |   |   |     _____________________________________________________ |   |   |    / |   |   |   |       RX Codec: A |   |   |   |   Name: B200 RX dual ADC |   |   |   |   Gain Elements: None |   |     _____________________________________________________ |   |    / |   |   |       TX DSP: 0 |   |   |   Freq range: -8.000 to 8.000 MHz |   |     _____________________________________________________ |   |    / |   |   |       TX Dboard: A |   |   |     _____________________________________________________ |   |   |    / |   |   |   |       TX Frontend: A |   |   |   |   Name: FE-TX1 |   |   |   |   Antennas: TX/RX |   |   |   |   Sensors: temp, lo_locked |   |   |   |   Freq range: 50.000 to 6000.000 MHz |   |   |   |   Gain range PGA: 0.0 to 89.8 step 0.2 dB |   |   |   |   Bandwidth range: 200000.0 to 56000000.0 step 0.0 Hz |   |   |   |   Connection Type: IQ |   |   |   |   Uses LO offset: No |   |   |     _____________________________________________________ |   |   |    / |   |   |   |       TX Codec: A |   |   |   |   Name: B200 TX dual DAC |   |   |   |   Gain Elements: None

2.3 更新&安装依赖包

2.4 安装编译完成的DEB软件包

0x03 开启数据转发、配置iptables

因为OpenBTS基站的GPRS网络流量是基于PC机,所以在开启基站GPRS功能前,需要开启数据包转发以及配置Iptables防火墙规则。

3.1 开启数据包转发:

ubuntu开数据转发需以root身份执行,如果不是root用户,即使使用sudo也无法开启:

3.2 配置iptables规则:

/etc/OpenBTS/iptables.rules 配置规则文件内容如下:

某些情况下机器的网卡并非eth0 ,所以需要根据自身实际情况,灵活地修改配置文件。

3.3 加载数据库

3.4 配置asterisk

在/etc/asterisk/目录中需要修改sip.conf、extensions.conf 具体方法:将手机的IMSI国际用户识别码和分配的号码登记数据asterisk中,也就是将数据写入sip.conf、extensions.conf两个配置文件。

SIP.CONF:

callerid=2000003,表示将IMSI为46001658*****19的手机分配号码2000003;

canreinvite=no,表示被呼叫的手机一旦建立连接后OpenBTS将不再发送重新邀请的指令;

context=sip-external,表示允许外部未分配号码的匿名电话呼入。

0x04 启动基站:

4.1 执行 transceiver连接SDR硬件

4.3 执行smqueue,启用短信服务

4.5 asterisk -vvvc or asterisk -r

4.6 启动OpenBTS终端控制台:

0x05 配置基站

GSM 900频段瀑布图:

gr-gsm &Kal扫描GSM基站

刚搭建完成的基站由于天线功率过大以及手机跟基站的距离太近等原因,可能会导致手机不能正常加入到基站,这时需要配置加入基站的条件以及设置天线功率:

允许任意机器接入:

设置天线功率:

设置基站频段:

设置欢迎短信:

设置基站名:

设置运营商为联 * 通:

设置运营商为移 * 动:

设置ARFCN、LAC、BCC

网络色码,NCC,一般用于标识运营商;基站色码,BCC,区分同一运营商下的相同BCCH的不同基站。

一般采用BCCH频点和BSIC来联合标识小区,BSIC=NCC+BCC。在TD和WCDMA里,存在PLMN,PLMN=MCC+MNC,其中MCC为移动国家码,MNC为移动网络码标识运营商。

基站切换的时候,主要是通过CI、BCCHBSIC等信息寻找目标小区,当同时检测到邻区列表里出现同BCCH同扰码组的小区时,容易出现切换失败。

将123456 (MSISDN码)分配到IMSI 码为46001658*****19的LG G3设备中

编辑/etc/resolv.conf

查看日志:cat /var/log/OpenBTS.log

配置文件:/etc/rsyslog.d/OpenBTS.conf

发送短信:sendsms $IMSI $号码  “$内容”

OpenBTS对中文支持不是很友好,发送汉字文本信息将出现乱码:

OpenBTS+Burp suite

使用Burp拦截硬件流量请求的方法这里可参考NCC Group的一篇博客:GSM/GPRS Traffic Interception for Penetration Testing Engagements

0x06 硬件调试

硬件芯片模块

焊接TTL进行调试:

0x07 refer

GSM/GPRS Traffic Interception for Penetration Testing Engagements

Getting Started with OpenBTS

PDF:    http://openbts.org/site/wp-content/uploads/ebook/Getting_Started_with_OpenBTS_Range_Networks.pdf

OpenBTS Application Suite Release 4.0 User Manual

OpenBTS BuildInstallRun

http://openbts.org/w/index.php?title=OpenBTS-UMTS

https://wush.net/trac/rangepublic/wiki/GPRS

How to get 3G working on the UmTRX

FIBOCOM G510

http://www.fibocom.com/product/2-1-2-1.html

FIBOCOM G510 Q50-00

使用OpenBTS基站测试物联网模块 IoT mode fuzzing with OpenBTS – 雪碧 0xroot

Comments are closed, but trackbacks and pingbacks are open.