GSM/SMS实验网络基站短信嗅探实验
中文:GSM/SMS实验网络基站短信嗅探实验
这技术很早以前就有了,记得当时还可以用OpenBTS进行短信发送。。。
写出来第一个目的是为了看看还能不能嗅探到短信,其次是重温下 GSM 网络的相关知识,温故而知新嘛,不喜勿喷,如有错误还请指出。
### 初探GSM
GSM网络即全球移动通信系统,GSM是一个蜂窝网络,每个网格都有自己的覆盖范围
GSM基本系统构成:OSS(操作维护子系统)、BSS(基站子系统)、NSS(网络子系统),每个子系统还都划分了不同的服务,如:ISDN、PDN、PSTN、DPPS等等,一个个的写太麻烦了,这里简单阐述下就好,想要深入了解的可以找我要PDF文档自己研究。
相关资料补充:
- SIM(用户识别模块)
这是一张符号 ISO 标准的卡,就是你手机里边的那张,它包含所有与用户有关的和某些无线接口的信息,使用移动台时都需要插入SIM 卡,当紧急呼叫时可以不使用SIM操作ME(移动台)
- BTS(基站收发信台)和BSC(基站控制器)
BTS属于BSS(基站子系统)的无线部分,由BSC(基站控制器)进行控制,一般服务于某个小区的收发信设备,完成BSC与无线信道之间的交换。
- MSC(移动业务交换中心)
MSC是一个控制多个BSC的节点。它是GSM系统中的核心设备,具有多种功能。
- HLR(归属用户位置寄存器)和VLR(用户位置寄存器)
VLR服务于控制区域内移动用户的,存储着进入控制区内域内已登记的移动用户相关信息,为已接入的用户提供呼叫必要条件
HLR是GSM的中央数据库,存储着该HLR控制的所有移动用户的相关数据,一个HLR可以控制若干个移动交换区所有移动用户重要的静态数据都存储在 HLR 中,包括移动用户识别号码、访问能力、用户类别和补充业务等等数据
- EIR(移动设备识别寄存器)
EIR存储着移动设备的IMEI识别码,通过检查白色清单、黑色清单或灰色清单这三种表格,在表格中分别列出了准许使用的、出现故障需监视的、失窃不准使用的IMEI识别码
- AuC(鉴权中心)
AUC主要负责安全措施,对无线上的语音数据和信号信息进行保密
有关GSM安全算法(A5…)可以自行谷歌,本文不再赘述
那么说回来,不法分子是如何知道我们的短信信息呢?这个很简单,我们的手机都处在一个大的基站辐射范围内(3G/4G)这就好比基站是谷仓,而手机是一粒粒的米粒,米粒通过电饭锅煮熟,基站负责(收发)每一粒米粒喷发出来的香味(信号)而不法分子使用降频工具手机会降级到2G进行通信,这个时候GSM嗅探工具就可以嗅探到我们的SMS信息了。
### Pre
硬件:
- Moto C118 [label](某鱼十几)[/label]
- USB转TTL 2.5mm线 [label](一瓶饮料的价格)[/label]
- CP2102模块 [label](一瓶饮料的价格)[/label]
[gallery link=”none” size=”medium” ids=”3159,3160,3158”]
软件:
- osmocom-bb(https://osmocom.org/projects/baseband)
有关 osmocom-bb 项目,这是一个开源GSM协议的项目,目的是要实现手机端从物理层layer1到layer3的三层实现。
- OpenBTS-5
- GNU
### Build
首先更新下系统的环境(笔者这里的系统是Kali),自行换源更新,接下来安装对应依赖,以防后面编译GNU时出现错误。
1 | apt-get install build-essential libgmp3-dev \ |
安装完了后,找个目录新建一个文件夹,接着下载编译时要用到的 shell 脚本
1 | http://bb.osmocom.org/trac/raw-attachment/wiki/GnuArmToolchain/gnu-arm-build.3.sh |
官网貌似502了,我把shell脚本放在了我的 Github 上,需要的可以自行 Fork。
https://github.com/icecliffs/backup/tree/main/gnu-environment-shell
新建几个文件夹 install src build
进到 src 里边把下面的文件下载到里边
1 | wget http://ftp.gnu.org/gnu/gcc/gcc-4.8.2/gcc-4.8.2.tar.bz2 |
接下来回到上级目录给gnu-arm-build.3.sh 赋予执行权限,然后 ./gnu-arm-build.3.sh
1 | $ cd .. |
输入 Enter 键,开始编译环境,时间有点久跳出下面的代码即表示搭建成功!
1 | Build complete! Add <YOURPATH>/bin to your PATH to make arm-none-eabi-gcc and friends |
这时候我们还需添加环境变量,打开 ~/.bashrc 在末尾添加以下内容
1 | export PATH=$PATH:<YOURPATH>/install/bin |
以上是构建 GNU 的过程,接下来开始搭建 osmocom-bb 环境,克隆仓库到本地目录
1 | git clone git://git.osmocom.org/osmocom-bb.git |
搭建前我们还需要安装一个 osmocom-bb 的 libosmocore 库,先把相关依赖安装下
1 | apt-get install build-essential libtool shtool autoconf automake git-core pkg-config make g |
接着切换到 osmocom-bb/src 目录里面,make 即可。
上文的安装步骤非常精简,因为我已经安装过了,所以大多数步骤都是凭记忆写的,想看详细版的可以自行谷歌
如果编译时遇到下图,多半是权限不足或未安装相关函数库导致的,可根据报错内容自行安装软件包
也有可能是丢失下面的包,安装即可(仅作参考)
### Attack
将手机接上 2.5mm 杜邦线,然后刷入固件,注意接线顺序
红->TXD;**白->RXD;黑->GND**
进到 osmocom-bb/src/host/ 里输入以下命令,手机需关机,命令执行后按下电源键开始刷入固件。
1 | ./osmocon -p /dev/ttyUSB0 -m [固件类型] \ |
刷完后手机屏幕会出现 Layer23 (我把屏幕拆了,不然还可以让你们看 lol)
[label]按手机上的按钮终端会显示相关信息[/label]
接下来扫描附近的基站
1 | ./cell_log -O |
PS:我们这2G服务基本上都没了,到后面学习 OpenBTS 发信技术后我会在原有基础上重新写一篇,如果有2G信号的话会显示信号(PWR)像这样
1 | <000e> cell_log.c:248 Cell: ARFCN=58 PWR=-23dB MCC=460 MNC=01 (China, China Unicom) |
其中PWR为信号强度,值越小说明信号越好,ARFCN为基站信道号
1 | ./ccch_scan -i 127.0.0.1 -a [ARFCN] |
执行后如果一直滚代码说明能正常嗅探到基站数据
有关 GSM 频段,可参考下面的图表
频段 | 名称 | 信道号 | 上行(MHz) | 下行(MHz) | 其他 |
---|---|---|---|---|---|
GSM 850 | GSM 850 | 128 - 251 | 824,0 - 849,0 | 869,0 - 894,0 | 美国, 南美洲国家 和 亚洲部分国家。 |
GSM 900 | P-GSM 900 | 1-124 | 890,0 - 915,0 | 935,0 - 960,0 | GSM最先实现的频段,也是使用最广的频段。 |
E-GSM 900 | 975 - 1023 | 880,0 - 890,0 | 925,0 - 935,0 | 900M扩展频段 | |
R-GSM 900 | n/a | 876,0 - 880,0 | 921,0 - 925,0 | 铁路GSM(GSM-R),为铁路调度通信系统开发的特殊版本。 | |
GSM1800 | GSM 1800 | 512 - 885 | 1710,0 - 1785,0 | 1805,0 - 1880,0 | 适用于对信道容量需求大的市场,应用范围仅次于900M。 |
GSM1900 | GSM 1900 | 512 - 810 | 1850,0 - 1910,0 | 1930,0 - 1990,0 | 主要用于美洲国家,由于有频率重叠,与1800M系统不兼容。 |
来源于 http://www.blogjava.net/baicker/archive/2013/11/13/406293.html
接下来打开 Wireshark 嗅探即可,选择协议 gsm_sms
上文已经说了,我们这三网2G基本上都停止服务了,所以得跑到有2G网络的地方
### Extension
为了更方便的识别数据,减少上面的步骤,GSMSniffer项目对2G网络短信嗅探抓取的一个Demo实现自动载入系统/扫描基站与抓取短信并存入数据库
基本架构
- Tengine
- PHP 7.3
- MySQL
上面三个服务都省略搭建步骤,把项目克隆下来后直接修改文件运行即可
### Defence
手机开4G/5G Only,没开的话可以搜索手机工程代码进入到里边自己打开,换服务,移动2G还存在一点点,联通基本上都没了,电信的不知道。
也希望我这是最后一篇关于GSM短信嗅探的,毕竟新的技术过的久了就会发现许多漏洞,几天前 GeekPwn 参赛选手就破解了某信LTE微基站(Orz)
Reference
GSM/SMS实验网络基站短信嗅探实验