CVE漏洞中文网

0DayBank一个专门收集整理全球互联网漏洞的公开发布网站
  1. 首页
  2. 百科
  3. 正文

gsm网络

2017年5月24日 844点热度 0人点赞 0条评论

gsm网络

  • 首页
  • 分类阅读
  • 文库
  • 专栏
  • 公开课
  • 商城
  • 漏洞盒子
注册 | 登录
投稿

如何追踪对方手机GSM网络是否在线

living2015-07-29+9共228149人围观 ,发现 11 个不明物体无线安全

在过去的几个月中,我一直研究Android的底层的GSM API。数年前API函数SendRawPdu还能使用,它允许开发者在将其发送给GSM基带之前,自己在较低的层次对SMS消息进行编码,相当多的能发送各种奇怪的sms(flash sms,slient sms,等等)的 应用得以诞生(PDU编码参考链接【1】)

不幸的是,google决定去掉该api,尚不清楚google是出于安全考虑还是出于重构其IPC IBinder 机制才这样做的。但实际就是,除非你使用一些老的手机或者固件(在大多数设备上,为了给GSM modem发送AT命令,他们都移除了ttyUSB串行接口), 否则现在就不能使用该Api函数了。

直到数月之前,我发现了API函数 SmsManager.sendDataMessage,显然该函数并没有在其他任何地方使用过(如果你查找它,只能找到少数的几个例子,但没有涉及怎么用自己编码的PDU数据使用该函数)。使用该API函数,我们能够自己编码我们的SMS,而且我们能够指定其中的“port”参数(该参数能标识我们发送的sms的类型)。本文讨论的port是2948,也就是发送WAP PUSH 通知的端口。

WAP PUSH消息是一种以前就有的机制,它主要用于强制远程设备访问SMS负载中编码了的URL,这个特殊的请求被称为“Service Load”(SL)请求,该请求中一个类似如下的XML负载被编码在二进制form中,和PDU一起发送给设备。

<?xml version="1.0"?>  
<!DOCTYPE sl PUBLIC "-//WAPFORUM//DTD SL 1.0//EN"  
                    "www.wapforum.org/DTD/sl.dtd">
<sl href="http://some-evil-site.com/evil-content.html"/>

如今,该协议由于显然的原因没有被处理(之所以说是不处理,而不是不支持,是因为GSM基带任然能够收到它,只是上层软件–os及其组件,不对其进行处理)。例如Android 5.0中,当设备收到这样的负载时,能看到下面的日志(logcat –b radio)

D/WAP PUSH( 1287): Rx: 0a0603...  
D/RILC    (  185): SOCKET RIL_SOCKET_1 REQUEST: SMS_ACKNOWLEDGE length:20  
D/RILC    (  185): RequestComplete, RIL_SOCKET_1  
E/RILC    (  185): Send Response to RIL_SOCKET_1  
D/RILJ    ( 1287): [9277]< SMS_ACKNOWLEDGE  [SUB0]  
V/WAP PUSH( 1287): appid found: 2:application/vnd.wap.slc  
W/WAP PUSH( 1287): wap push manager not found!  
V/WAP PUSH( 1287): fall back to existing handler  
 V/WAP PUSH( 1287): Delivering MMS to: com.google.android.talk com.google.android.apps.hangouts.sms.MmsWapPushDeliverReceiver

因此事件传递给了Google Hangouts应用(作者手机上默认处理SMS/MMS的处理者),如果不是简单的MMS而是其他的(本例中为WAP PUSH),则它会忽略这种类型的负载。

public class MmsWapPushDeliverReceiver extends BroadcastReceiver  
{
  public void onReceive(Context paramContext, Intent paramIntent)
  {
    if (("android.provider.Telephony.WAP_PUSH_DELIVER".equals(paramIntent.getAction())) && ("application/vnd.wap.mms-message".equals(paramIntent.getType())))
      RealTimeChatService.a(paramIntent.getByteArrayExtra("data"));
  }
}

这也就意味着,虽然设备收到了数据,对用户却没有任何提示,数据也不会被系统保存,而是直接丢弃掉。

有个细节对我们来说是很方便的—在传送了WAP PUSH消息后,接收方的BTS会回复我们一个传送端口。仅仅当接收方设备是开着的,并且能接收到该消息时(有足够的GSM网络型号覆盖),我们才会收到该回复。事实上,API函数sendDataMessage 将其最后一个参数作为传送的PendingIntent.换言之,一旦delivery report返回,我们的应用就会收到通知。

我们可以利用这个做到以下几点:

①构造一个WAP PUSH消息,并自己编码;
②将其传递给sendDataMessage API,并注册一个delivery intent;
③WAP PUSH会发送到目标手机上,如果目标手机是开着的,我们就会收到通知。如果目标手机是关机的,只要它一开,我们也会收到通知;
④目标对象不会有任何察觉。

因此,我们可以追踪目标对象的GSM网络活动,知道其设备什么时候是开着的,而又不让其察觉。

一个简单的POC程序

https://github.com/evilsocket/pdusms

*本文作者:living,翻译自evilsocket,转载须注明来自FreeBuf黑客与极客(FreeBuf.COM)

living9 篇文章等级: 4级
|
|
  • 上一篇:网速为什么很慢?是路由器选错加密方式了!
  • 下一篇:利用Teensy进行em410x卡模拟以及暴力破解em410x类门禁系统

这些评论亮了

  • hackbyu(1级)回复
    用短信回执不是更方便吗。。。
    )9(亮了
  • HHH回复
    @ 凯迪么拉克 你连GSM和LTE都分不清,也好意思留言?
    )7(亮了
  • 钻地球的回复
    打个电话不行吗
    )7(亮了
  • 凯迪么拉克回复
    现在都4g了吧,4g应该不算GSM吧
    )6(亮了
  • fage回复
    有这么麻烦吗 ,发个短信,打开短信回执就好了呀,好多年前的诺基亚手机都有这个功能,收到后就有短信回执。
    )6(亮了
发表评论

已有 11 条评论

  • 凯迪么拉克 2015-07-29回复1楼

    现在都4g了吧,4g应该不算GSM吧

    亮了(6)
    • HHH 2015-07-29回复

      @ 凯迪么拉克 你连GSM和LTE都分不清,也好意思留言?

      亮了(7)
  • 钻地球的 2015-07-29回复2楼

    打个电话不行吗

    亮了(7)
  • Rasiel 2015-07-29回复3楼

    有什么用?

    亮了(5)
  • fage 2015-07-29回复4楼

    有这么麻烦吗 ,发个短信,打开短信回执就好了呀,好多年前的诺基亚手机都有这个功能,收到后就有短信回执。

    亮了(6)
    • 1 2015-07-29回复

      @ fage 这样对方就察觉了

      亮了(6)
  • 不明真相滴吃瓜群众 2015-07-30回复5楼

    4G是GSM,属于全球通……

    亮了(6)
  • qvq 2015-07-30回复6楼

    看着怎么实现先吧..

    亮了(6)
  • Rum_Depp 2015-07-30回复7楼

    录音录音赶脚你越来越刁了,咋办

    亮了(5)
  • hackbyu (1级) 2015-08-01回复8楼

    用短信回执不是更方便吗。。。

    亮了(9)
  • 蔡小木 (1级) 2015-09-01回复9楼

    我直接用源码,总是发送失败呢?有人试过吗?

    亮了(5)

必须您当前尚未登录。登陆?注册

必须(保密)

表情插图

取消

living

这家伙太懒,还未填写个人描述!

9 篇文章12 条评论

相关阅读

  • 实时抓取移动设备上的通信包(ADVsock2pipe+Wireshark+nc+tcpdump)
  • 使用CommView for WiFi抓取无线报文
  • 安卓无线渗透利器:Hijacker
  • 伪装成USB充电器的无线键盘嗅探器 – KeySweeper
  • Wi-Fi Hacking

特别推荐

关注我们 分享每日精选文章

不容错过

  • 利用Chakra JIT绕过DEP和CFG腾讯玄武实验室2015-12-15
  • 有史以来最严重:超100万谷歌账户被黑,Android恶意程序Gooligan正极速蔓延孙毛毛2016-12-02
  • 大学那些事:黑客们是如何做到逢考必过的?WF322014-03-31
  • 互联网企业安全建设之路:规划篇SecSky2017-02-08

FREEBUF

  • 免责声明
  • 关于我们
  • 加入我们

广告及服务

  • 寻求报道
  • 广告合作
  • 联系我们
  • 友情链接

关注我们

  • 官方微信
  • 新浪微博
  • 腾讯微博
  • Twitter

赞助商

Copyright © 2013 WWW.FREEBUF.COM All Rights Reserved 沪ICP备13033796号

css.php

正在加载中...

0daybank

标签: 暂无
最后更新:2017年5月24日

小助手

这个人很懒,什么都没留下

点赞
< 上一篇
下一篇 >

文章评论

您需要 登录 之后才可以评论

COPYRIGHT © 2024 www.pdr.cn CVE漏洞中文网. ALL RIGHTS RESERVED.

鲁ICP备2022031030号

联系邮箱:wpbgssyubnmsxxxkkk@proton.me