前言
一、事件回顾
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,你明白了没?
这两个协议本来是方便传输文件,足够便利导致大家忽略了它使用的安全性。
- 风险规避:
- 不连接除自己设备的USB线充电。只要想做,充电宝也可以伪装的获取,但技术成本会高不少。
- 手机设有密码,充电时不玩手机。一般USB充电前锁屏,充电过程中不解密码,电脑是读取不到照片的,你可以自己试一试。
- 照片定期清理,或者文件加密。
- 改为仅充电模式(补充).
三、高级: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,监听通话、短信、实时定位等等。
-
风险规避:
- 不连接非自己的陌生设备
- 坚决关闭USB调试,不确认调试
- 坚决不Root手机
- 尽量不安装来路不明的APP
- 重点检查通讯录、短信、电话权限的APP,能关权限则关
- 手机设密码,充电不玩手机
四、胡扯
“免费的就是最贵”,免费充个电,搞得身无分文(手机转走你银行卡的钱,透支你信用卡),虽是玩笑话,但其实差不远,当然花钱的充电也不一定安全。IOS越狱后也可以使用不少功能,这玩得少,就不装了。智能家居(万物互联什么的)、人工智能风口,安全测试的发展应该会迎来大的机遇,加油吧测试的骚年们。
--2017-04-06修正MTP、PTP