闲来无事,看了看最近比较火热的iPhone 短信漏洞,查阅了一些资料,也了解到了一些基本知识,总体看来,这个漏洞影响面积比较广,目前来看基本上iphone全覆盖。就现状来看,坏消息是就连我这种菜菜鸟级别的都能发这种诈骗短信了,还有谁不能发呢。。。所以用iphone的同学们如果遇到关于钱的短信还是要好好掂量一下了。好消息是,苹果在ios 6.0正式版中已经修正了这个漏洞,正式版前两天已经发布了,不过越狱的话好想现在还只是针对GM版吧,所以基本上百分之九十九的人还是在用着5.0或以下的系统。
闲话不多说,先来普及一下基本知识,学过计算机网络的人都知道在网络的分层结构中,不同层次之间是通过PDU来通信,PDU,即所谓的协议数据单元。每个PDU中包含了上一层所携带的数据信息,传送到下一层。而在SMS中,也存在着这么一个概念,手机和手机之间发送短信可以有三种方式,一种是Block Mode,另一种是Text Mode,最后一种就是这种PDU Mode。下面重点介绍这种PDU模式,在此模式下,A手机利用手机的通信模块发送PDU数据包,与网络中的数据包类似,在这个数据包中也包括了源地址,目的地址,保护时间,协议类型和正文等等。按理说,介绍到这里并没有什么弱点出现,但是在PDU中,有一部分被成为UDH,即用户数据头部信息,在UDH中可以使得用户更改短信的回复地址,这里的回复地址即发送人的地址,如果接收方收到了这样PDU而同时此终端同时支持这一功能,则这条短信会被终端解释为由更改后的回复地址发送出来的。
举个例子来说,A手机的号码为123456,B手机的号码为654321,正常情况下,A手机向B手机发送短信,B手机上会显示信息来源号码为A,123456。但是如果A在PDU中的UDH中做了手脚,将UDH中的Reply Address更改为987654,这时如果A再向B发送短信,B手机则会显示是由987654发送的短信。而利用iPhone的漏洞恰恰可以实现这一点,不过目前仅限于iPhone。经过测试,用一个ios发给一个android手机,通过自制PDU的方式,短信内容可以定制,但是号码却无法伪装。而给Iphone发送自制PDU后却可以达到此类效果。
现分析一个典型的此类虚假短信的PDU,分析中有错误之处望各位大神指出,分析完全建立于网络中的资料以及2012年6月的
3d Generation Partnership Project;
Technical Specification Group Core Network and Terminals;
Technical realization of the Short Message Service (SMS)
(Release 11)
在上述报告中介绍了相关PDU的知识。
分析了PDU的结构之后,最终我们用实际的iPhone机器测试一下,测试过程略过,有兴趣自己去动手实验,上述PDU测试结果如下
除此之外,又进行了对110号码的冒充,大家要注意了,110是不可能作为源号码给你发送短信的,我记得@传说中的女网警 好像说过,所以这里也仅仅是测试,给大家一个直观的展示,
最后,遇到可疑短信,小心,谨慎。