前言

      今年的又准时乖巧的观看了315晚会,与大家一同学习了各种发财致富的方式...咳.咳..学习防范违法行骗的各种手段。比较感兴趣的两个,一人脸识别,二公共充电桩安全隐患。第一个今天不扯,第二个问题虽是炒冷饭,但咱也炒炒冷饭,就说说这,搞安卓开发哥们如果你给他USB调试权限,分分钟玩到小白你怀疑人生,特别是那些搞手机助手的同学,当然最牛还属搞安全的兄弟。此篇非高深、非深奥,简单讲讲怎么被攻击,然后怎么规避风险。

一、事件回顾

2017年315晚会,在公共免费充电桩的场所做了个实验,对拿着充电桩数据线充电的小白们进行了测试,什么测试?后台窃取照片、发送短信、购买消费等等

2017年315晚会观看地址:http://315.cctv.com/special/video/index.shtml

晚会这个事件应该分两个层次:

  • 初级:无需USB调试,即可轻易(IOS、Android)获得用户手机照片、视频,
  • 高级:有USB调试(Android),可以获取文件,后台发短信,冒充支付消费
下面我们从这两个层次来说说扯扯这个事情。
 

二、初级:USB连接攻击

  • 前提:你手机连接了我的数据线
  • 攻击1:可以获取你所有的媒体文件(Pictures、Movies、Music)

    • 【难度】:无,会用U盘就会攻击。What?这么简单?--不信,哥问你,你手机照片怎么弄到到电脑上的?如下图:

    • 【原因】:手机支持PTP协议,即图片传输协议,只要USB连接就可拷贝你所有的图片文件(Pictures),IOS、Android均支持此协议。

名词解释:PTP是英语“图片传输协议(picture transfer protocol)”的缩写。PTP是最早由柯达公司与微软协商制定的一种标准,符合这种标准的图像设备在接入Windows XP系统之后可以更好地被系统和应用程序所共享,尤其在网络传输方面,系统可以直接访问这些设备用于建立网络相册时图片的上传、网上聊天时图片的传送等。

维基百科:https://en.wikipedia.org/wiki/Picture_Transfer_Protocol

  • 攻击2:可以获取你sdcard所有文件(Android)
    • 【难度】:无,会用U盘就会攻击。

    • 【原因】:手机支持MTP协议,只要USB连接就可拷贝你所有的媒体文件(Pictures、Movies、Music),IOS、Android均支持此协议。当然部分手机一般都会有几个选项:仅充电、传照片(PTP)、传文件(MTP),如图:

名词解释:PTP是被设计用于从数码相机下载照片,媒体传输协议(MTP)则支持数字音频播放器上的音乐文件和便携式媒体播放器上的媒体文件,以及个人数字助理的个人信息的传输。

维基百科:https://en.wikipedia.org/wiki/Media_Transfer_Protocol


So,你明白了没?

这两个协议本来是方便传输文件,足够便利导致大家忽略了它使用的安全性。

  • 风险规避:
  1. 不连接除自己设备的USB线充电。只要想做,充电宝也可以伪装的获取,但技术成本会高不少。
  2. 手机设有密码,充电时不玩手机。一般USB充电前锁屏,充电过程中不解密码,电脑是读取不到照片的,你可以自己试一试。
  3. 照片定期清理,或者文件加密。
  4. 改为仅充电模式(补充).

三、高级:USB调试攻击(Android)

  • 前提:你开启了USB调试,并确认设备允许调试

USB调试模式是 Android 提供的一个用于开发工作的功能,使用该功能可在计算机和 Android 设备之间复制数据、在移动设备上安装应用程序、读取日志数据等等。Google在Android4.2.2中默认关闭了“USB调试”设置。

百度:http://baike.baidu.com/item/USB%E8%B0%83%E8%AF%95%E6%A8%A1%E5%BC%8F

如图:

  • 攻击1:后台偷偷安装APP

这也是要求你开USB调试重要原因之一,安装一个多少RMB,生财之道。

1).装个手机助手APP

通过手机助手合法获取到最大权限,此时可以随意备份APP数据、手机联系人、短信,拦截短信、发送短信、打电话都是小case。当然正常的手机助手只是推荐你安装这APP安装那APP,他赚点小钱,你则使用它软件,各取所需而已。

2).不安装助手,adb命令也可安装APP(静默安装)
adb install findyou.apk
adb shell pm install /sdcard/findyou.apk

说明:这个过程安装助手,手机没有任何提示。当然是否弹窗静还是默安装取决于手机是否有定制。

  • 攻击2:Logcat日志泄露隐私

adb logcat 可以获取安卓日志,在以前很多APP调试开关没关,日志详细到密码明文的程度,非常多的内容,现在比较少了。

  • 攻击3:监控你的所有操作

 1).比如截屏

adb shell screencap -p /sdcard/screenshot.png
adb pulll /sdcard/screenshot.png e:\findyou.png

2).监控你的屏幕,录制你输入的密码

将你的屏幕映射到电脑,监控你的所有操作,很简单不需要root权限,软件非常多,当发现你准备输入密码时,进行录屏

adb shell screenrecord /sdcard/findyou.mp4
adb pulll /sdcard/findyou.mp4 e:\findyou.mp4

3).获取你的input事件

adb shell getevent

4).获取设备上所有APP、服务、通知栏信息等

adb shell dumpsys
adb dumpsys meminfo
adb shell dumpsys activity -h
adb shell dumpsys window
adb shell service list
adb shell pm xxx
.....
  • 攻击4:发短信,打电话

强大的am、pm命令

adb shell am start -a android.intent.action.SENDTO -d sms:10086 --es sms_body "hello" --ez exit_on_sent true
adb shell input keyevent 66 //有手机是在短信内容框中回车,所以这个因输入法、设备而异

上面所说的am命令前台操作发短信,需要非常快才能不被用户所发现,而攻击1则需要安装手机助手,比较麻烦,因此我们还需要更高级的攻击,注入恶意代码。

  • 攻击5: root手机或注入恶意代码

市场上有一堆root工具,通过USB一键root,当然root一般会造成手机重启,这方式也会造成用户感知,但重启用户鬼知道怎么回事,只会骂手机厂商、骂Android系统,卧槽,又死机了......随后你得到了root权限,这手机基本就是你的了,想怎么玩就怎么玩。在外搞过多次USB调试,就不信没有被root过,退一步讲,有些所谓的助手会引导你开启XXX服务(其实就是root手机),管理自启动应用,只是身为小白你不知道。

当然你是大神,也可以自己对现有权限高的应用进行注入恶意代码,比如使用Metasploit等等(没用过只看过,膜拜中)。

百度:http://baike.baidu.com/item/Metasploit


回到事件本身,最后攻击者冒充小白,消费支付消费买了一张电影票,估计应该是安卓手机,有权限拦截电话、拦截银行验证码再后台转发。安装一些恶意APP,监听通话、短信、实时定位等等。

  • 风险规避:

  1. 不连接非自己的陌生设备
  2. 坚决关闭USB调试,不确认调试
  3. 坚决不Root手机
  4. 尽量不安装来路不明的APP 
  5. 重点检查通讯录、短信、电话权限的APP,能关权限则关
  6. 手机设密码,充电不玩手机

四、胡扯

“免费的就是最贵”,免费充个电,搞得身无分文(手机转走你银行卡的钱,透支你信用卡),虽是玩笑话,但其实差不远,当然花钱的充电也不一定安全。IOS越狱后也可以使用不少功能,这玩得少,就不装了。智能家居(万物互联什么的)、人工智能风口,安全测试的发展应该会迎来大的机遇,加油吧测试的骚年们。

--2017-04-06修正MTP、PTP

Android手机USB调试安全闲扯(315晚会免费充电桩事件)的更多相关文章

  1. 用代码实现断开Android手机USB连接【转】

    本文转载自:https://blog.csdn.net/phoebe_2012/article/details/47025309 用代码实现断开Android手机USB连接               ...

  2. 华为手机usb调试打开后自动关闭怎么办?华为手机 usb调试为什么自动关闭?usb调试老是自动关闭怎么回事?

    01 解决方法一依次点击“设置”——“系统”——“开发人员选项”先开启“开发者选项”开关. 02 然后在开启“USB调试”开关后,一并将“'仅充电'模式下允许ADB调试”选项开关打开.这样,华为手机u ...

  3. Android 4.2以上的手机USB调试设置

    今天遇到一个问题,我手上有两部手机一部是红米.一部是中兴的青漾QY N986,两部手机的Android系统都是4.2.1的,连接到电脑测试,找了半天没有找到设置开发者选项,后来在网上找了半天,才发现g ...

  4. mac 无法连接android手机进行调试 解决方案

    第一步: 查看usb设备信息 在 终端输入:system_profiler SPUSBDataType     可以查看连接的usb设备的信息 比如我的usb信息如下(部分内容): Android: ...

  5. 魅族手机USB调试无法打开、log无法打印

    MEIZU 在打开usb调试允许时,总提示:because an app is oobscuring a premision request, Setting can't verify your re ...

  6. 不用数据线连接到Android手机进行调试

    这两天USB线丢了,老是找同事借也不方便,于是就网上找各种方法,这里总结个最简单的,当然你的手机需要root: 1 要打开WIFI,手机要和电脑在同一局域网内,这个你可以使用你的开发机共享wifi即可 ...

  7. Android手机WiFi调试

    一.判断手机是否能被电脑所识别: 二.输入adb tcpip 8888 设置连接的端口为8888(可以设置为任意数字,默认为5555, 后面连接的时候若不想输入端口可将端口设置为5555.)如下图所示 ...

  8. oppo手机怎么打开USB调试模式

    OPPO手机USB调试的设置方法:1.ColorOS 3.0版本,进入设置--关于手机,连续点击版本号直到出现“您已处于开发者选项”,再进入设置--其他设置--开发者选项--USB调试进行设置: 2. ...

  9. 解决魅族USB调试无法被电脑识别的问题(含Mac OS X、Win7)

      每次打开豌豆荚或者360手机助手之类手机助手后Eclipse才会检测到mx4(实际上是豌豆荚关闭eclipse的adb使用自己的驱动连接的).解决方法就是在"adb_usb.ini&qu ...

随机推荐

  1. Docker 1.13 管理命令

    1.12 CLI 的问题 Docker1.12 命令行接口(CLI)有40多个顶级命令,这些命令存在以下问题: 没有归类组织,这让docker 新手很难学习: 有些命令没有提供足够的上下文环境,以至于 ...

  2. TCP/IP协议族(二) HTTP报文头解析

    本篇博客我们就来详细的聊一下HTTP协议的常用头部字段,当然我们将其分为请求头和响应头进行阐述.下方是报文头每个字段的格式,首先是头部字段的名称,如Accept,冒号后方紧跟的是该字段名所对应的值,每 ...

  3. Sass与Compass——回顾

    compass 是sass的一个工具库 compass在sass 的基础上封装了一系列有用的模块,用来补充和丰富sass的工能, 安装: compass是用 ruby语言开发的,所以安装它之前必须安装 ...

  4. java注解(基础)

    一.认识注解 1.注解的定义: java提供了一种原程序中的元素关联任何信息和元数据的途径和方法. 2.学习注解的目的: (1)能够读懂别人写的代码,特别是框架相关的代码(框架中使用注解是非常方便的) ...

  5. C/C++中慎用宏(#define)

    宏的定义在程序中是非常有用的,但是使用不当,就会给自身造成很大的困扰.通常这种困扰为:宏使用在计算方面. 本例子主要是在宏的计算方面,很多时候,大家都知道定义一个计算的宏,对于编译和编程是多么的有用. ...

  6. 使用阿里云的Maven仓库加速Spark编译过程

    前言 在国内编译Spark项目需要从Maven源下载很多依赖包,官方源在国内大环境下的下载速度大家都懂得,那个煎熬啊,简直是浪费生命. 如果你的下载速度很快,你现在就可以无视这篇文章了. 阿里云给国内 ...

  7. 如何用Visual Studio 2008 写汇编程序?

    如何用Visual Studio 2008写汇编程序? 最近在上夏季小学期,在学汇编语言,关于用什么编辑环境一直很纠结.很想找到一个比较好的IDE,但是试了几个像RadASM之类的,发现还不是很满意. ...

  8. 测试工作中ADB命令实战

    作者:TT,<测试架构师>微信公众号作者 大家能点击进来,说明还是对ADB有所了解或听说过的,可能也会比较熟练的掌握了这些命令,下面描述如有不对的地方,欢迎指正和交流学习,请多指教! 一. ...

  9. java后端学习流程

    首先,我个人比较推崇的学习方法是:先学java前段,也就是HTML,css,js,因为学习java以后肯定是往java ee方向发展的,学习完前端,在学习后端很多东西比计较容易理解! 其中J2SE是关 ...

  10. [Hadoop] - Hadoop3.0.x编译

    这里仅介绍一种Hadoop3.0.x版本的源码编译方式 编译过程 1. 下载源码 2. 安装依赖环境 3. 源码编译 ========================================= ...