GSM Hack(手机信号劫持)

转载 2013年12月04日 09:43:07
    写点很多人都感兴趣的东西.关于GSM通信网络监听的问题,在那一年广州黑市上出现相关设备就闹得沸沸扬扬.一时大众惶恐自危.有些所谓的资深专家就跳出来说"是不可能的,GSM网络是安全的".这可能是移动通信公司最大的危机.虽然那些专家说的话,我们可一笑置之.但也确实不见很简单的事,不是随便就可以实现的.
    记得几年前某次我正在说一个CASE的执行方案,说到关于监听SSL通信的相关数据.有个新来的程序员很白目,大声的提醒我SSL是加密的,这不可能实现......我很怕跟这些照本念书型的技术人员打交道,因为老师告诉他们1就是1,书本上告诉他们2就是2.他们自己怎么也不会去想"为什么不可能是3?"

    对于一个信息安全工作者,看待任何事物,都应该是"有罪论".这不是先入为主的思想.而是事物的本质.同样,GSM通信网络体系也是这样.暂且把那些资深专家的话和常规理论丢一边去.为了详细分析如何实现,我们先来学习些基本的知识.


(如果图片无法看全,可以在新窗口中打开图片,查看大图)

    这是一个简单的GSM通信网络系统结构方框图.我们暂且把他分为五个部分:MS、BSC、NSS、OSS、PSTN.下面来介绍和本文有关的几个部分.
MS:移动台(手机)
BSS:基站子系统模块
BTS:基站收发台
BSC:基站控制器
NSS:网络子系统模块
OMC:操作维护中心
MSC:移动交换中心
VLR:漫游用户位置储存器(后面会做详细介绍)
HLR:本地用户位置储存器(后面会做详细介绍)
AUC:鉴权中心(后面会做详细介绍)
EIR:设备标志储存器(后面会做详细介绍)
OSS:操作支持系统(也叫运营支撑系统) 和本文关系不大,就不做详细介绍了.主要为网络管理维护,计费和用户卡资料管理.当然如果你要做实地渗透,关系就大了.
PSTN:公共交换电话网,我们所用的坐机就属于这个网络.这基本是现今最大的网络,也是其他一些网络的基础.
    我们基本已对GSM网络有了个基本的了解.对于要进行空中线路侧劫持,我们还得对另外一个重要部分进行了解.那就是移动用户识别卡,也就是我们所说的SIM卡、手机卡.SIM卡里储存有四类数据,第一类是固定数据:国际移动用户识别号(IMSI)、鉴权密钥(KI)、鉴权和加密算法.第二类是暂存的网络数据:位置区域识别码(LAI)、移动用户暂时识别码(TMSI)、禁止接入的公共电话网代码.第三类是业务代码:个人识别码(PIN)、解锁码(PUK)、计费费率.和我们要进行的分析有关的重点是第一类和第二类数据.
    做完前面的介绍,我们现在开始进行GSM空中线路侧劫持实现分析.首先我们来看一下GSM的通信流程和详细的呼叫流程、信令流程.


(如果图片无法看全,可以在新窗口中打开图片,查看大图)

    这是一个(MS)手机呼叫(MS)手机请求建立通信的信令基本流程.整个过程从MS向BTS请求信道开始.首先MS将在随机接入信道(RACH)向BSS发送信道请求消息,以便申请一个专用信道(SDCCH),BSC为其分配相应的信道成功后,在接入允许信道(AGCH)中通过立即分配消息通知MS为其分配的专用信道,随后MS将在为其分配的SDCCH上发送一个层三消息---CM业务请求消息,在该消息中CM业务类型为移动发起呼叫,该消息被BSS透明的传送至MSC,MSC收到CM业务请求消息后,通过处理接入请求消息通知VLR处理此次MS的接入业务请求,(同时,由于在BSC和MSC之间用到了SCCP有连接服务,为建立SCCP连接,MSC还将向BSC回连接确认消息),收到业务接入请求后,VLR将首先查看在数据库中该MS是否有鉴权三参组,如果有,将直接向MSC下发鉴权命令,否则,向相应的HLR/AUC请求鉴权参数,从HLR/AUC得到三参组,然后再向MSC下发鉴权命令。MSC收到VLR发送的鉴权命令后,通过BSS向MS下发鉴权请求,在该命令中含有鉴权参数,MS收到鉴权请求后,利用SIM卡中的IMSI和鉴权算法,得出鉴权结果,通过鉴权响应消息送达MSC,MSC将鉴权结果回送VLR,由VLR 核对MS上报的鉴权结果和从HLR取得的鉴权参数中的结果,如果二者不一致,拒绝此次接入请求,此次呼叫失败;如果二者一致则鉴权通过,鉴权通过后,VLR将首先向MSC下发加密命令,然后通知MSC该MS此次接入请求已获通过,MSC通过BSS通知MS业务请求获得通过,然后MSC向MS下发加密命令,该命令内含加密模式,MS收到此命令并完成加密后,回送加密完成消息,到此MS完成了 整个接入阶段的工作。
可以看出,如果我们要进行空中线路侧劫持,劫持者是处于MS和BTS之间的位置.聪明的朋友肯定可以想到我前面提过的SSL监听.是的,在SSL监听中我们是用(MIM)中间人攻击方式实现.同样,在这里也可以.GSM协议中最大的问题是单向鉴定.也就是基站要求鉴定手机,而手机根本不鉴定基站.通俗点说,手机是个有奶便是娘的孩子,只要一喂奶它就伸嘴咪奶喊娘.对于手机,劫持者冒充基站.对于基站,劫持者冒充手机.在转换中间,我们可以干任何我们想干的事.看到这里,有的朋友要说我明白了.其实不然,没那么简单.还有些问题我们没有考虑进去.
    我们再回过头来看完成接入阶段工作完成后的语音通信工作.当主叫手机拨打需要呼叫MSISDN号码,也就是被叫手机号码,或者是被叫手机呼入.在手机与基站的通信过程中,除了主叫过程中出现的被叫MSISDN号码以外.主叫手机是不发送本机的MSISDN号码的.被叫过程中,基站也不会向被叫手机发送被叫手机的MSISDN号码的.这一切都会被我们前面介绍到的SIM卡中的IMSI(国际移动用户识别码)所替代.也就是说,如果劫持者需要劫持某部指定号码的手机,是不可能的.你根本不知道所需要监听的手机是哪部?谁都不认识谁.MSISDN和IMSI的对应关系储存在HLR,只有它知道.劫持者要搞定这个问题,只有两个办法,一个是入侵MSC,向HLR查询其号码对应关系.另一个是事先去拿到被监听者的SIM卡,提取其中的IMSI,但这个提取过程,因为SIM卡芯片的安全算法保护,一般破解时间平均需要2到7个小时.当然,如果你有超级计算资源,这个时间可以再快点.
    下面是详细的鉴权过程图,可以清楚的看到我上面所说


(如果图片无法看全,可以在新窗口中打开图片,查看大图)

    头疼了吧.实际应用中肯定有困难的地方.但实际应用中也有对劫持者来说,好的一面.我们知道GSM协议通信中制定了加密体系的.但可笑的是,移动公司在绝大部分地区,根本没开加密模块.如果不是GSM采用了跳频技术,通信不是一直保持在一个频率上,我们用台频谱分析分析仪就可以监听了.虽然不是这种最理想的情况,也使劫持者在做中间人方式的空中线路侧劫持时,省了很多麻烦.
    最后还要说个坏情况.在有些情况下,手机与基站之间的通信,如呼叫,被叫,位置更新时.甚至IMSI都不会发送.只是用一个称做TMSI(临时识别码)代替.这个TMSI是由VRL分配,TMSI与IMSI的对应关系只有它知道.
    最终结论:GSM空中线路侧劫持是完全可以实现的.有一定的无线电基础,GSM协议知识,加上些并不昂贵的设备就可以实现.但要实际情况应用起来,还是有诸多困难.GSM空中线路侧劫持除了可以用来监听外,还可以用来大规模的IMSI盗取,甚至盗打电话或对被劫持者的跟踪。


非常感谢,红客的作者:源地址http://www.2cto.com/Article/201303/193916.html


GSM Hackeing 之 SMS Sniffer 学习

0x00 前言 最近看到微博以及一些论坛谈论关于GSM Hacking的比较多,使用的是开源的程序 osmocombb 和摩托罗拉的手机 c118。我也凑凑热闹,找来相关资料进行学习,国内关...
  • cosmoslife
  • cosmoslife
  • 2013年12月22日 15:51
  • 4026

手机信号劫持

有意思的文章,这个概念很早就被提出,不过很少有人描述这么细的。而且对能够实施的“攻击者”要求也挻高。GSM中的单向认证问题在3G(WCDMA)网络中将被覆盖掉,因为认证不再是3元组,而是5元组。Ori...
  • inject2006
  • inject2006
  • 2008年01月12日 17:26
  • 797

Android-Activity劫持

Android-Acitivity劫持由于Android的设计缺陷,当我们为Activity指定标志位FLAG_ ACTIVITY_ NEW_ TASK时,就能使Activity置于栈顶,并呈现给用户...
  • sinat_26533265
  • sinat_26533265
  • 2016年04月16日 23:17
  • 633

反射还能这么玩?

其实本来想加个前缀,结果标题是《Android 中反射还能这么用?》,后来想想,也不恰当,就把Android去了,本身反射是Java的东西,你硬生生的加个Android显然是不恰当的。 这几天稍微过...
  • sbsujjbcy
  • sbsujjbcy
  • 2016年04月29日 11:32
  • 7075

智能手机中显示信号强度格数

在Android4.0的系统中,手机中显示信号强度格数的代码在 frameworks\base\telephony\java\android\telephony\SignalStrength.jav...
  • macong01
  • macong01
  • 2013年06月08日 16:02
  • 5227

windows、linux劫持技术

windows系统下面可以利用detours劫持 realse  模式劫持,调试的程序不可以   函数劫持可以实现的效果。 函数的劫持原理 我们如何实现-detours   detours是微软亚...
  • waldmer
  • waldmer
  • 2015年06月03日 12:54
  • 1650

记一次联通路由器劫持的分析过程

这里说一个比较奇怪的PC故障,一朋友电脑可以正常登陆QQ但是打开网页无论是什么页面都会自动跳转到一个网页,这个地方联通宽带的页面上,这里说一下朋友的网络是电信跳转到联通相关页面肯定不正常,跟很多人一样...
  • tpk5003
  • tpk5003
  • 2017年04月06日 15:28
  • 875

如何获取手机信号

1. 广播监听 IntentFilter mIntentFilter = new IntentFilter(); mIntentFilter.addAction(IntentHelper.ECARX_...
  • hlllmr1314
  • hlllmr1314
  • 2017年05月15日 11:00
  • 244

hack技术

什么是hack 技术: 行业中存在各种浏览器,典型的浏览器包括 IE 、火狐、谷歌等等;同样种类的浏览器,也存在着不同的版本,如  IE6、IE7…等。 不同浏览器对 CSS 解析机制并不是完全相...
  • qq_38559709
  • qq_38559709
  • 2017年09月20日 19:16
  • 1017

GSM Hacking:静默短信(Silent SMS)在技术侦查中的应用 20160617

https://www.kn1f4.com/news/234.html 0×00 前言 技术侦查时我们经常需要对目标人物进行定位,监听目标人物的电话和短信。 如何做到...
  • qq_27446553
  • qq_27446553
  • 2016年06月17日 16:17
  • 4513
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:GSM Hack(手机信号劫持)
举报原因:
原因补充:

(最多只允许输入30个字)