近期,由两位安全研究人员,Roberto Paleari及Aristide Fattori,发布了关于三星Galaxy手机设备安全漏洞的技术细节。据称,Galaxy手机可在锁屏状态下被未授权的第三方人员用以进行电话外呼和短信发送。

锁屏绕过概述

根据Roberto Paleari及Aristide Fattori发布的技术细节可知,攻击者可借助对手机设备的临时访问或窃取受害用户手机的方式,通过USB接入手机设备并将之连接到Linux工作平台上,最后发送指令来实现电话呼叫及短信发送。

而该方式并没用利用任何软件的漏洞,即使手机关闭了USB调试功能(ADB, Android调试桥,可帮助用户管理设备或模拟器状态)或者USB网络共享功能,也可以实现上述的电话呼叫及短信发送。

实现工作原理

对于这个漏洞,当前的核心问题是当手机通过USB连接到另外的 Linux系统时,一般情况下都可以通过Linux系统的虚拟USB串行口(主要为/dev/ttyACM0设备),来与手机设备通讯。

根据测试情况,当连接到一个 USB控制器(比如一个普通的笔记本电脑),对于三星Galaxy手机而言,此时会暴露出一个串行接口,而通过利用该接口我们可以与手机的USB modem来进行通信。

” Easy” 模式(针对旧的三星手机和固件版本)

对于旧的三星手机和固件版本,如GT-I9192(三星S4 Mini ,版本序号为I9192XXUBNB1),在将手机接入到Linux主机,确认通过接口连接到USB Modem后,即可尝试发送AT (Attention)命令,据分析,其中一些指令会被传递到基带Modem中,而其他一些指令则被用户空间应用进行处理。

而通过上述的接口来运行及传递简单的AT (Attention)命令,理论上,可让一个技术娴熟的攻击者在手机设备执行各类操作。

小百科

AT ,全称为Attention,由Hayes公司发明的,AT指令集主要使得计算机或终端可以与Modem进行通讯。通过发送AT指令来控制移动台的功能,与GSM网络业务进行交互。用户可以通过AT指令进行呼叫、短信、电话本、数据业务、传真等方面的控制。

”Hard” 模式(针对新的三星手机和固件版本)

而在近期的固件版本(例如最新版本的三星S4和三星S6)中来利用此漏洞相比之下是没那么简单的,因为最近期的固件版本中,其默认配置是,当设备连接到主机,开放給主机的只有MTP接口功能,主要用于文件传输。

但经过测试,我们发现,攻击者仍然可以通过将默认配置切换到第二USB配置,来实现与Modem通讯。因此,假设在这种情况下,攻击者在连接到Modem之前,就需要将默认配置切换到USB 配置 #2 。而这个操作可以通过PC终端来实现,而无需解锁手机设备。以下为默认配置的信息,

$ lsusb -v
...
Bus Device : ID 04e8: Samsung Electronics Co., Ltd Galaxy (MTP)
Device Descriptor:
bLength
bDescriptorType
bcdUSB 2.00
bDeviceClass (Defined at Interface level)
bDeviceSubClass
bDeviceProtocol
bMaxPacketSize0
idVendor 0x04e8 Samsung Electronics Co., Ltd
idProduct 0x6860 Galaxy (MTP)
...
bNumConfigurations
Configuration Descriptor:
...
Interface Descriptor:
bLength
bDescriptorType
bInterfaceNumber
bAlternateSetting
bNumEndpoints
bInterfaceClass Imaging
bInterfaceSubClass Still Image Capture
bInterfaceProtocol Picture Transfer Protocol (PIMA )
iInterface MTP
...
Configuration Descriptor:
bLength
bDescriptorType
wTotalLength
bNumInterfaces
bConfigurationValue
iConfiguration
bmAttributes 0xc0
Self Powered
MaxPower 96mA
...
Interface Descriptor:
bLength
bDescriptorType
bInterfaceNumber
bAlternateSetting
bNumEndpoints
bInterfaceClass Communications
bInterfaceSubClass Abstract (modem)
bInterfaceProtocol AT-commands (v.25ter)
iInterface CDC Abstract Control Model (ACM)
...

在此次PoC中,我们开发了一个简单工具(用C语言编写的),名为usbswitcher。通过该工具,我们可将指定的三星手机设备切换到USB 配置 #2。该工具使用了 libusb 库来实现上述功能。而同样的任务,我们也可以通过使用/sys/bus/usb虚拟文件系统来完成。

我们使用的强制手机切换配置的流程为首先重置 USB设备(通过usb_reset()函数来实现),接着切换配置(通过set_configuration()函数来实现)。而有时候,工具usbswitcher的第一次执行可能不会生效,所以需最好运行两次,确保配置已被切换过来。工具usbswitcher源代码链接地址为:usbswitcher.c

测试结果

我们知道,访问Modem最明显的后果是使拨打电话和发送短信称为了可能。对于前者,即呼出电话,可以通过使用以下命令来实现:

ATD+;

该命令实现的效果主要是在锁屏状态下拨打电话号码123456。如以下PoC视频中介绍的一样。

演示视频

对于有些朋友在询问到,是否可以利用该漏洞来获取访问设备的权限,比如访问其通讯录、照片以及内部存储等?对于这个问题,理论上AT命令是可以被基带处理器直接进行处理的,但如我们之前提到的,AT命令在传递的过程中,可能有些AT指令会被用户空间应用解析,所以这种情况下,基带处理器无法处理指令,所以也无法直接实现上述所说的访问权限。

在这个测试中,我们观察到,S4 mini (固件版本序号为 I9192XXUBNB1) 可以支持某些AT指令,这些指令可以用来控制Android系统的设置。比如,在这其中,AT+USBDEBUG指令允许启用USB 调试功能,AT+WIFIVALUE指令可启用或关闭设备Wi-Fi等等。

在近期的手机固件版本,三星可能意识到了这种命令的相关风险,其开始引入一种基于黑名单的过滤机制(由ddexe二进制应用程序来执行),来过滤掉有威胁的命令。举个例子,在测试过程中传递AT+ UsbDebug指令时,我们可以看到以下信息为被记录到Galaxy S6设备的系统日志中,

D/DataRouter(  ): write [] bytes of data to USB fd[]
D/DataRouter( ): After the usb select
D/DataRouter( ): read usb data[len:]
D/DataRouter( ): read usb data message:AT+USBDEBUG
D/DataRouter( ): Not allowed AT cmd!!#不允许执行AT指令
D/DataRouter( ): Before the usb select

影响范围

目前,就已经测试过且发现可进行前文所述操作的设备类型包含如下:

SM-G920F, 版本序号:G920FXXU2COH2 (Galaxy S6)

SM-N9005, 版本序号:N9005XXUGBOK6 (Galaxy Note )

GT-I9192, 版本序号:9192XXUBNB1 (Galaxy S4 mini)

GT-I9195, 版本序号:I9195XXUCOL1 (Galaxy S4 mini LTE)

GT-I9505, 版本序号:I9505XXUHOJ2 (Galaxy S4)

*参考来源GitHub,Softpedia

技术解析:锁屏绕过,三星Galaxy系列手机也能“被”呼出电话的更多相关文章

  1. Android 锁屏软件MemoryDebris测试报告

    目 录 项目基本信息 第1章         引言 1.1        编写目的 1.2        项目背景 1.3        参考资料 1.4        术语和缩略语 第2章      ...

  2. iOS10新特性之CallKit开发详解:锁屏接听和来电识别

    国庆节过完了,回家好好休息一天,今天好好分享一下CallKit开发.最近发现好多吃瓜问CallKit的VoIP开发适配,对iOS10的新特性开发和适配也在上个月完成,接下来就分享一下VoIP应用如何使 ...

  3. 【JavaScript 13—应用总结】:锁屏遮罩

    导读:上次说了,当弹出登录框时,由于背景色和弹出框时一样的,这样子,其实比较难聚焦到底该操作哪一块.所以,如果,有了颜色的区分,那么通过屏幕遮罩的效果,就可以将我们希望要被处理的东西突出显示.也就达到 ...

  4. android黑科技系列——修改锁屏密码和恶意锁机样本原理分析

    一.Android中加密算法 上一篇文章已经介绍了Android中系统锁屏密码算法原理,这里在来总结说一下: 第一种:输入密码算法 将输入的明文密码+设备的salt值,然后操作MD5和SHA1之后在转 ...

  5. 重新想象 Windows 8.1 Store Apps (92) - 其他新特性: CoreDispatcher, 日历, 自定义锁屏系列图片

    [源码下载] 重新想象 Windows 8.1 Store Apps (92) - 其他新特性: CoreDispatcher, 日历, 自定义锁屏系列图片 作者:webabcd 介绍重新想象 Win ...

  6. iOS开发——使用技术OC篇&简单九宫格锁屏功能的实现与封装

    简单九宫格锁屏功能的实现与封装 首先来看看最后的实现界面. 在这开始看下面的内容之前希望你能先大概思考活着回顾一下如果 你会怎么做,只要知道大概的思路就可以. 由于iphone5指纹解锁的实现是的这个 ...

  7. WPF技术触屏上的应用系列(六): 视觉冲击、超炫系统主界面、系统入口效果实现

    原文:WPF技术触屏上的应用系列(六): 视觉冲击.超炫系统主界面.系统入口效果实现 去年某客户单位要做个大屏触屏应用,要对档案资源进行展示之用.客户端是Window7操作系统,54寸大屏电脑电视一体 ...

  8. WPF技术触屏上的应用系列(五): 图片列表异步加载、手指进行缩小、放大、拖动 、惯性滑入滑出等效果

    原文:WPF技术触屏上的应用系列(五): 图片列表异步加载.手指进行缩小.放大.拖动 .惯性滑入滑出等效果 去年某客户单位要做个大屏触屏应用,要对档案资源进行展示之用.客户端是Window7操作系统, ...

  9. WPF技术触屏上的应用系列(四): 3D效果图片播放器(图片立体轮放、图片立体轮播、图片倒影立体滚动)效果实现

    原文:WPF技术触屏上的应用系列(四): 3D效果图片播放器(图片立体轮放.图片立体轮播.图片倒影立体滚动)效果实现 去年某客户单位要做个大屏触屏应用,要对档案资源进行展示之用.客户端是Window7 ...

随机推荐

  1. hdu 2102

    简单的3维BFS 大写的YES和NO,这心粗的....唉 #include<iostream> #include<cstdio> #include<queue> u ...

  2. cssText

    cssText 的本质就是设置 HTML 元素的 style 属性值 cssText 的方便之处在于一次可以写很多属性,而且变更 CSS 样式不必变 JS 代码,只需变样式字符串.但它有个缺点,就是它 ...

  3. nodeschool.io 3

    ~~ MY FIRST I/O! ~~ Write a program that uses a single synchronous filesystem operation toread a fil ...

  4. Java GC系列(4):垃圾回收监视和分析

    本文由 ImportNew - lomoxy 翻译自 javapapers. 目录 垃圾回收介绍 垃圾回收是如何工作的? 垃圾回收的类别 垃圾回收监视和分析 在这个Java GC系列教程中,让我们学习 ...

  5. hashtable 实现

    #include <stdlib.h> #include <stdio.h> #include <string.h> typedef struct _hashnod ...

  6. 张艾迪(创始人):AOOOiA.global因梦想而诞生

    AOOOiA.global因梦想而诞生 The World No.1 Girl :Eidyzhang The World No.1 Internet Girl :Eidyzhang AOOOiA.gl ...

  7. Java 集合系列 10 Hashtable详细介绍(源码解析)和使用示例

    java 集合系列目录: Java 集合系列 01 总体框架 Java 集合系列 02 Collection架构 Java 集合系列 03 ArrayList详细介绍(源码解析)和使用示例 Java ...

  8. spring之初识Ioc&Aop

    Spring框架的作用 spring是一个轻量级的企业级框架,提供了ioc容器.Aop实现.dao/orm支持.web集成等功能,目标是使现有的java EE技术更易用,并促进良好的编程习惯. Spr ...

  9. 一份C++线程池的代码,非常实用

    #ifndef _ThreadPool_H_ #define _ThreadPool_H_ #pragma warning(disable: 4530) #pragma warning(disable ...

  10. jQuery制作瀑布流(转)

    “瀑布流布局”随着pinterest网的流行而出名,现在国内使用这种风格布局的网站也越来越多,比如说Mark之,蘑菇街,点点网,哇哦等等.我第一次听到这个布局名称是来自于“乔花写的<瀑布流布局浅 ...