很多人可能知道,GSM通讯是可以被监听的。不过,我猜测,知道下面这几点的可能不多:


基础

OSMOCOM-bb全称Open source mobile communication Baseband,是GSM协议栈的开源实现。开发团队的介绍文字是:

OsmocomBB is an Free Software / Open Source GSM Baseband software implementation. It intends to completely replace the need for a proprietary GSM baseband software, such as

  • drivers for the GSM analog and digital baseband (integrated and external) peripherals
  • the GSM phone-side protocol stack, from layer 1 up to layer 3

In short: By using OsmocomBB on a compatible phone, you are able to make and receive phone calls, send and receive SMS, etc. based on Free Software only.

关于加密

GSM加密采用A5算法。A5算法1989年由法国人开发,是一种序列密码,它是欧洲GSM标准中规定的加密算法,专用于数字蜂窝移动电话的加密,用于对从电话到基站连接的加密。A5的特点是效率高,适合硬件上高效实现。

A5发展至今,有A5/1、A5/2、A5/3、A5/4、A5/5、A5/6、A5/7等7个版本,目前GSM终端一般都支持A5/1和A5/3,A5/4以上基本不涉及。值得注意的是,A5/2是被『故意弱化强度』的版本,专用于『出口』给『友邦』,2006年后被强制叫停,终端不允许支持A5/2。

A5/1与A5/2两个算法的设计后来被Marc Briceno、Ian Goldberg和David Wagner用逆向工程破解,下图是当年用于破解的设备:

当年用于破解的设备

国内的GSM采用了什么算法呢……嗯……你试试就知道了……

一些名词

手机开机时的位置更新过程

  1. MS(手机)向系统请求分配信令信道(SDCCH);
  2. MSC收到手机发来的IMSI可及消息;
  3. MSC将IMSI可及信息再发送给VLR,VLR将IMSI不可及标记更新为IMSI可及;
  4. VLR反馈MSC可及信息信号;
  5. MSC再将反馈信号发给手机。

MS倾向信号强的BTS,使用哪种算法由基站决定,这也导致了可以用伪基站进行攻击。


使用方法演示

用法很简单:

将firmware刷入手机

扫描基站

开始监听

写入本地cap包

过滤出监听到的短信


具体编译方法

预备

这里我使用的Linux环境为ubuntu 12.04 x86(交叉环境不支持64位系统),其他系统方法一样,命令会有些差别,请自行分辨。

  1. 预备

    apt-get install build-essential g++ gcc make automake libtool libusb-dev pkg-config git wireshark tshark

  2. 安装libosmocore

    git clone git://git.osmocom.org/libosmocore.git
    cd libosmocore/
    autoreconf -i
    ./configure
    make
    sudo make install

编译

执行


其他

接多个手机

ccch_scan只是一个例子程序,用它并不能连接多个手机通讯——有人提出过同样的疑问,可以参考链接1链接2

需要使用Sylvain Munaut的DSP Patch版本,git地址在:http://cgit.osmocom.org/osmocom-bb/?h=sylvain%2Fburst_ind

图:8台手机基本能够覆盖一个区域的基站。所以,有人在干活(感谢TK提供图片并对我玩OsmocomBB的指点)。

同时接8台手机监听

上行捕获

参考链接:http://bb.osmocom.org/trac/wiki/Hardware/FilterReplacement

要使手机能够成为『passive uplink sniffer』,必须动到电烙铁,替换掉RX filters。

替换前:

替换前

摘掉后:

摘掉后

替换后:

替换后

Some Tips

  1. 开机键不是长按,而是短按,否则就进入原系统了;
  2. CP210x的接线,RX和TX有可能需要对调;
  3. 交叉编译要在i386系统,否则make的时候会“gnuarm-3.4.3/bin/arm-elf-gcc: No such file or directory”;
  4. 检查连线是否正常,可以参考:CP210x Tutorial,运行cp210x-program需要先安装ibusb-dev,如果输出是“No devices found”或“Unable to send request, 3709 result=-110”,则有问题。

坏人能用类似的技术做什么

替用户订阅SP服务

2007年,用户投诉都被盗打了XXX信息台和发送短信至XXX(手机钱包话费支付业务)的情况,且用户都统一被收取了该声讯台的包月费30元,通过话单梳理,全地区在该时间段内(从12月1日至10日)共有8000多用户被收取了包月费,根据业务支撑部门的统计,已超过了过该业务的正常业务量数倍多,属于不正常现象。

这个案例是@tombkeeper在TSRC演讲的时候提到,我后来找他学习细节时知道的,可以参考链接盗打购买游戏点卡的分析。在2007年,就有人用这样的『高科技手段』挣钱,黑产真是不能小看。

群发垃圾广告

贴两张图,信息量应该就够大了。

垃圾短信

短信群发工具

社工与窃密

既然能够伪造短信,试想一下,如果有人:

其他

攻击取决于攻击者的想象力,黑产从业者永远更缺乏安全感,绝大多数时候更搏命、更努力创新。企业安全的守门员门,站稳喽,你守得住吗?


录像

有个录像还是能看得比较清楚的:

http://v.qq.com/boke/page/e/4/b/e0118d61u4b.html


参考链接

« 首页