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

0×00 写在开头

近期,发现Crazy Danish Hacker在YouTuBe发布了一个挺不错的教程视频:使用SDR嗅探监听GSM网络的通信流量(GSM Sniffing Teaser – Software Defined Radio Series)。该教程从电视棒的安装到扫描、嗅探工具的使用、GSM流量包的捕获解密都有详细说明演示:

作为搬运工,在这里将分两三部分参考&总结一下该教程的主要内容,输出一篇中文教程,希望能够给对这方面感兴趣的童鞋带来一定帮助。

0×01 环境搭建

OS:GNU Radio LiveCD

HardWare:电视棒(rtl-sdr)、HackRF、Bladerf 均可

1.安装编译依赖包

sudo apt-get install git cmake libboost-all-dev libcppunit-dev swig doxygen liblog4cpp5-dev python-scipy

Kali 2.0

apt-get install gnuradio gnuradio-dev rtl-sdr librtlsdr-dev osmo-sdr libosmosdr-dev libosmocore libosmocore-dev cmake libboost-all-dev libcppunit-dev swig doxygen liblog4cpp5-dev python-scipy

2.编译gr-gsm

git clone https://github.com/ptrkrysik/gr-gsm.git
cd gr-gsm
mkdir build
cd build
cmake ..
make
sudo make install
sudo ldconfig

3.编译kalibrate

kalibrate-hackrf (kalibrate For HackRF)

git clone https://github.com/scateu/kalibrate-hackrf.git
cd kalibrate-hackrf
./bootstrap
./configure
make
sudo make install

kalibrate-rtl(kalibrate For rtl-sdr)

git clone https://github.com/steve-m/kalibrate-rtl.git
cd kalibrate-rtl
./bootstrap
./configure
make
sudo make install

0×01 扫描基站

1.1 kal

kal
error: must enter channel or frequency
kalibrate v0.4.1-hackrf, Copyright (c) 2010, Joshua Lackey
modified for use with hackrf devices, Copyright (c) 2014, scateu@gmail.com
Usage:
    GSM Base Station Scan:
        kal <-s band indicator> [options]

    Clock Offset Calculation:
        kal <-f frequency | -c channel> [options]

Where options are:
    -s    band to scan (GSM850, GSM-R, GSM900, EGSM, DCS, PCS) //指定扫描的网络类型&频段
    -f    frequency of nearby GSM base station
    -c    channel of nearby GSM base station
    -b    band indicator (GSM850, GSM-R, GSM900, EGSM, DCS, PCS)
    -a    rf amplifier enable
    -g    vga (bb) gain in dB, 0-40dB, 8dB step
    -l    lna (if) gain in dB, 0-62dB, 2dB step
    -d    rtl-sdr device index
    -e    initial frequency error in ppm
    -E    manual frequency offset in hz
    -v    verbose
    -D    enable debug messages
    -h    help
kal -s GSM900 -g 40 -l 40 //扫描GSM900频段

1.2 gr-gsm (HackRF、BladeRF)

在编译完成的gr-gsm项目中,App目录里有用于扫描、解码gsm流量的脚本:

grgsm_scanner -h
linux; GNU C++ version 4.8.4; Boost_105400; UHD_003.010.git-197-g053111dc

Usage: grgsm_scanner: [options]

Options:
  -h, --help            show this help message and exit
  -b BAND, --band=BAND  Specify the GSM band for the frequency. Available
                        bands are: P-GSM, DCS1800, PCS1900, E-GSM, R-GSM,
                        GSM450, GSM480, GSM850
  -s SAMP_RATE, --samp-rate=SAMP_RATE
                        Set sample rate [default=2000000.0] - allowed values
                        even_number*0.2e6
  -p PPM, --ppm=PPM     Set frequency correction in ppm [default=0]
  -g GAIN, --gain=GAIN  Set gain [default=24.0]
  --args=ARGS           Set device arguments [default=]
  --speed=SPEED         Scan speed [default=4]. Value range 0-5.
  -v, --verbose         If set, verbose information output is printed: ccch
                        configuration, cell ARFCN's, neighbour ARFCN's

1.3 Bladerf 配合 SDR-sharp

通过上述方式,我们获取到了基站的一些参数信息,如:中心频率、信道、ARFCN值、LAC、MCC、MNC值等。这为我们接下来的工作提供了便利。那么windows用户有其它方式来确定基站的中心频率么?

Windows用户可通过SDR-sharp的瀑布图来确认基站的工作频率,由于HackRF性能问题,查看GSM频率时瀑布图效果不明显,所以我这里用BladeRF来实现这需求。由于SDR-sharp默认不支持BladeRF硬件,首先我们需为其安装硬件驱动,详情可参考:https://github.com/jmichelp/sdrsharp-bladerf

复制Release目录中的SDRSharp.BladeRF.dll到SDR主目录;

复制GitHub项目中的LibBladeRF目录下所有dll文件到SDR主目录;

在FrontEnds.xml文件增加

<add key="BladeRF" value="SDRSharp.BladeRF.BladeRFIO,SDRSharp.BladeRF" />

在SDR-sharp中加载BladeRF的FPGA固件:

最终效果:

0×02 Sniffer 嗅探

通过扫描我们获取到了基站的中心频率、信道、ARFCN值、LAC、MCC、MNC值等参数信息:

上图表明在935-950MHz频率区间发现GSM基站信号。通过gqrx瀑布图来看看:

ubuntu@ubuntu:~/gr-gsm/apps$ ls
CMakeLists.txt  grgsm_livemon      grgsm_livemon.py  helpers
grgsm_decode    grgsm_livemon.grc  grgsm_scanner     README

ubuntu@ubuntu:~/gr-gsm/apps$ grgsm_livemon -h
linux; GNU C++ version 4.8.4; Boost_105400; UHD_003.010.git-197-g053111dc

Usage: grgsm_livemon: [options]

Options:
  -h, --help            show this help message and exit
  --args=ARGS           Set Device Arguments [default=]
  -f FC, --fc=FC        Set fc [default=939.4M]
  -g GAIN, --gain=GAIN  Set gain [default=30]
  -p PPM, --ppm=PPM     Set ppm [default=0]
  -s SAMP_RATE, --samp-rate=SAMP_RATE
                        Set samp_rate [default=2M]
  -o SHIFTOFF, --shiftoff=SHIFTOFF
                        Set shiftoff [default=400k]
  --osr=OSR             Set OSR [default=4]

我们来嗅探一下937.4MHz的基站:

grgsm_livemon -f 937.4

右侧终端显示成功捕获到了基站通信数据包。

0×03 Decode解密

3.1 安装WireShark

apt-get install wireshark

3.2 嗅探&解密

ubuntu@ubuntu:~/gr-gsm/apps$ ls
CMakeLists.txt  grgsm_livemon      grgsm_livemon.py  helpers
grgsm_decode    grgsm_livemon.grc  grgsm_scanner     README

ubuntu@ubuntu:~/gr-gsm/apps$ gnuradio-companion grgsm_livemon.grc

执行GRC流图:

sudo wireshark -k -Y 'gsmtap && !icmp' -i lo

捕获到的数据包如下:

解密方式可先参考GitHub:

Usage: Decoding How To · ptrkrysik/gr-gsm Wiki

Decoding-hopping-channels

在后续内容中,我们将使用SDR来捕获手机在通话过程中的GSM数据包以及利用三星手机锁屏绕过漏洞直接获取TMSI、KC来解密捕获到的数据包,从中提取出通话过程中的语音内容。

maybe,我们还可以根据gr-lte开源项目来讨论分析4G LTE基站的安全问题。(the gr-lte project is an Open Source Software Package which aims to provide a GNU Radio LTE Receiver to receive, synchronize and decode LTE signals.)

0×04 refer

https://github.com/ptrkrysik/gr-gsm/wiki/Usage

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

GSM Sniffing: Kalibrate-RTL Usage – Software Defined Radio Series #5

GSM Sniffing: Installing GR-GSM – Software Defined Radio Series #7

GSM Sniffing: Using GR-GSM – Software Defined Radio Series #8

原文地址:http://www.freebuf.com/articles/wireless/110773.html

时间: 2024-08-24 18:17:13

GSM Hacking Part① :使用SDR扫描嗅探GSM网络的相关文章

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

GnuRadio Hacking②:使用SDR嗅探北欧芯片无线键盘鼠标数据包

0×00 前言 上半年的时候安全公司Bastille Networks(巴士底狱)安全研究员发现大多数无线鼠标和接收器之间的通信信号是不加密的,黑客可对一两百米范围内存在漏洞的无线键鼠进行嗅探甚至劫持,从而控制受害者电脑,向计算机中输入任何指令! 相关阅读:Mousejack Hacking : 如何利用MouseJack进行物理攻击 该漏洞在于通信数据不加密,导致数据可被嗅探.劫持.今天的分享不再使用Crazyradio 2.4Ghz nRF24LU1+ USB radio dongle,我们

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

每次看到黑客在网上发布的那些GSM技术相关文章我都十分惊讶.然而在没有Software Defined Radios (SDRs)之前,玩GSM并不便宜,除此之外想要好好玩你得下大功夫. 拓展阅读 GSM BTS Hacking: 利用BladeRF和开源BTS 5搭建基站 极客DIY:如何构建一台属于自己的基站 在阅读多篇有关GSM基站的文章之后,我注意到有关GSM基站这个话题有许多的不一致或者是讲的不够细致. 基于这一点,我决定写下今天这篇文章,进行手把手教学. 在文章开始之前,我要感谢所有

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

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

安全设计与实现:扫描局域网内部网络的主机病毒安装情况和系统漏洞安全级别,讲计费结果通过计费系统控制用户与外网连接

问题描述 校园网络安装了网络版趋势科技,交换机使用的是神州数码DCBI3000计费认证系统和netlog行为审计系统,如何让其联动对网络主机扫描,对未安装趋势科技杀毒软件和存在系统漏洞的主机进行连接外网控制,并可以通知用户不能连接外网的原因.三种情况:1杀毒软件不是趋势科技或者未安装2系统漏洞补丁安全等级为高危险3欠费.能实现否?谢谢!如果能实现,接口和代码如何书写.为了方便及时回复,或者提供相关条件,可以通过yunfeilu@hnuu.edu.cn联系.

一种基于SDR实现的被动GSM嗅探

本文讲的是一种基于SDR实现的被动GSM嗅探, 软件定义无线电(SDR)是一种无线电通信系统,简单来说,就是通过数字信号处理技术在通用可编程数字信号处理硬件平台上,利用软件定义来实现无线电台的各单元功能,从而对无线电信号进行调制.解调.测量.SDR架构放弃了传统无线电电路中所有的硬件单元,包括变频.混频.滤波器.放大器.检波器.解调器等,所有的处理,包括混混频,滤波,解调等都是用软件来完成的,完全是一种新的架构和技术. 其实,SDR技术和架构的无线电产品在军用和商用无线电领域早已广泛使用,近年来

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

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

GSM与CDMA无线网络评估标准探讨

无线网络评估的目的在于通过对网络运行数据进行分析并给出合理的评估,包括网络规划质量.网络运行状况.网络运行存在的问题.隐患.网络投资利用率等项目,进而充分掌握网络的整体运行状况,为网络的进一步优化和建设提供直接参考. 具体就GSM.CDMA网络而言,两者各自有相应的评估准则和方法.对于两种体系评估标准的统一,具体可从体制出发,找出其对应关系,得出统一标准.本文将从网络评估的几个重要方面论述.说明不同体制网络评估的统一标准的量化.无线网络的评估基本上是围绕着覆盖.容量和质量三个方面进行的.在这一点

WCDMA与GSM系统规划差异性分析

GSM系统是目前全球覆盖范围最广的第二代无线网络,它采用TDMA(时分多址)接入方式,即在一个载频信道内,按相同的时间间隔划分成每帧若干时隙的固定循环周期,每个时隙承载一个业务用户信息和必要的信令.这样,一个载频信道由若干个用户按时间顺序依次占用,以不同时隙作为区分不同用户的方式. GSM的特征 在GSM系统中,每个载频信道带宽为200KHz,每帧8个时隙,即理论上可同时为8个用户提供传输通道,时隙长度0.577ms,每帧时长4.615ms.WCDMA系统作为第三代无线网络的主要标准之一,将高速