Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >揭秘:充电宝是如何盗取你的个人隐私的?

揭秘:充电宝是如何盗取你的个人隐私的?

作者头像
FB客服
发布于 2018-02-05 06:16:43
发布于 2018-02-05 06:16:43
2.1K00
代码可运行
举报
文章被收录于专栏:FreeBufFreeBuf
运行总次数:0
代码可运行

中午吃完饭,看到一个微博中别人转的央视新闻《别被改装充电宝盗取隐私》觉得又是啥高大上的东西上了央视,看完后才知道是数字公司的某研究员做的伪装充电宝盗取隐私的玩意。

视频地址:http://video.sina.com.cn/p/tech/mobile/n/v/2014-12-01/160464317397.html

心里豁然开朗,原来这玩意也可以上央视啊!那么问题来了: 这玩意都应用到了哪些技术,并且那个防护神器又是怎么实现的?我们这些天天写脚本的能玩不?还是需要那些玩二进制的牛人帮忙才能完成呢?

那么下面我给大家介绍一种方法,揭秘攻击者是如何低成本快速打造一个伪造的充电宝的,以及我们该如何防御。主要是IOS系统,至于Android的方法我想满大街都是吧这里就不说了,以后说不定会在博客中写下。至于用途吗不关你是进行物理社工还是什么的就自由发挥,本文所提技术并不局限于“充电宝” ,不费话了进入正题。

原理分析

首先,我们来分析下在不了解已有技术情况下假设要从零开始做起,我们是怎么分析和设计这个东西?我估计大多数人第一个想到的应该是iTunes , 苹果手机管理的配套软件,因为在它里面有个功能是备份数据用的,即使刷机后,只要恢复下数据那么所有的通讯录,短信,甚至上网信息等等都会被恢复回去,二进制牛如果看到了应该会说逆下iTunes分析下它通讯协议不就完事了。

嗯,确实可以实现奈何我们脚本小子操起IDA跟看天书的应该差不多,不过这里有一点说的对,那就是通讯协议。如果我们能够模拟iTunes协议,告诉iPhone我需要给你备份数据,那么按照它的接受协议把数据copy到存储单元不就ok了。至于它怎么去打包那些数据,根据它打包的方式解包不就还原所有数据了。上面我们分析的是如何把数据从手机拿到存储单元,那么和充电宝又有什么关系? 看过那个视频的应该注意到,手机查到充电宝上面会提示 “是否信任此电脑” 。回想下,我们自己充电的时候是否会提示?那么在什么情况下会提示?

是的,在手机数据线插到别人电脑上面的时候会提示!这里我们在分析下,在正常充电宝上和电脑上面为什同为USB,一个提示一个却不提示,为后面的防御做个铺垫。

我们先看下下图:

图是网上找来的, 其中黄色部分为四个usb里面的触点, 其中1,4 从图中可以看到是正负极(虽然只有+,-号),2,3 是 “D+ 和D-” 是什么呢?其实就是data+ 和 data- 数据信号的输入和输出。其实从这张图上也能猜到为什么正常充电宝不会提示,而插到陌生电脑上会提示。因为在陌生电脑上面data+和data-上面产生了数据信号,所以导致iPhone会进行询问是否应该信任此设备以进行数据交互,下面看看如何快速实现。

设计实现

上面原理分析了那么多,还是没有进入核心部分 “ 如何快速制造” 估计骂街的已经开始了….

所需材料:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
1. 树莓派 (raspberry pi) 一枚
2. 大号锂电池(至于多大,看你想要多大容量的充电宝)
3. 充电器(为啥要这个?充电宝要充电呗)
4. 小灯 led小灯 3-4 枚 (充电宝充电闪烁效果)

上面这些东西怎么组合? 树莓派USB 对外供电, 锂电池给树莓派供电,充电器拆了(里面的东西)给锂电池充电,至于led小灯,接树莓派GPIO口。让树莓派闪烁小灯的教程网上应该也是一大把了,这里就不详述了请自行查询。

其实树莓派就是一个ARM平台上面可以跑跑Linux, 大家最关心的应该都是在ARM平台上面的Linux怎么模拟数据让iPhone把备份数据给存储到树莓派上面的存储器。看到上面的分析估计很多人心里不自在了,都说了脚本小子为什么又扯到上面的分析,难道又要让我们逆向iTunes了。当然不是了,既然我们能想到模拟数据难道就没有人做过?是的,你又一次猜对了,由开源实现libimobiledevice , 这就是我们今天的主角,看看它介绍(官方介绍):

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
libimobiledevice is a cross-platform software library that talks the protocols to support iPhone®, 
iPod Touch®, iPad® and Apple TV® devices. Unlike other projects, it does not depend on using any 
existing proprietary libraries and does not require jailbreaking. It allows other software to easily 
access the device's filesystem, retrieve information about the device and it's internals, backup/restore
 the device, manage SpringBoard® icons, manage installed applications, retrieve 
 addressbook/calendars/notes and bookmarks and (using libgpod) synchronize music and video to the device.
  The library is in development since August 2007 with the goal to bring support for these devices to the
 Linux Desktop.

上面啰嗦了那么多E文其实就是说它不依赖于第三方库,跨平台的实现了iPhone,iPod Touch, Ipad等苹果设备的通讯协议。

在树莓派上面怎么编译可以看这里所需依赖

https://github.com/libimobiledevice/libimobiledevice

编译后有它的动态库,可以根据它的文档自己实现想要的功能,不过对于仅仅只是需要“窃取”隐私数据,其实自带的tools目录中的工具就已经够用了,在看编译完后的工具都长什么样(图片演示均为笔记本上面的libimobile):

可以看到编译后tools目录自带的这些小工具,比较显眼的几个:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
idevice_id      获取已连接设备ID, idevice_id -l
idevicebackup   ios较低版本用来备份数据的工具
idevicebackup2  ios新版本备份数据工具
idevicesscreenshot  从名字就能看出来是屏幕截图
idevicesyslog   实时显示log信息的,跟adb logcat 一样
ideviceinfo     设备信息
....            其他的看名字基本就知道大概了

好了,我们直接上主角吧,idevicesbackup2。在当前目录建立文件夹bak,当然你愿意放在那里都行只是用来存储备份数据的。usb连接电脑和手机(不是说好的充电宝么,好吧…没啥差吧^_^)

输入命令:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 idevicebackup2 backup ./bak

如果没有配置环境变量就给idevicebackup2 指定当前目录./

运行过程如下图所示:

运行结束后在bak目录下会生成一个由字符串组成的目录,打开我们可以看到一堆不太能够容易理解的文件,其实这些就是备份经过处理的数据,如果所示:

那么拿到这些数据有毛用… 别捉急,既然能拿到肯定有办法解包还原数据

输入命令:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
ideivcesbackup2  unpack ./bak

命令执行完后我们就可以看到bak目录下多了一个_unpack_目录,看看里面有些什么吧。

由于层级太多只显示了3级目录,不过我们先找找数字公司演示的照片是在什么地方存储的可以在var/mobile/Media/DCIM 目录中看到这里存储的都是个人相机拍的照片和视频(没拍摄过所以里面木偶有显示~)如下图:

仅仅只能拿到相片么? 其实细心的读者肯定都看到了Keychains 就应该知道这玩意是啥了。好了再看看能获取到其他信息不? 比如safari或者其他APP的本地遗留数据,例如cookie 、 聊天记录? 看看var/mobile/library下面的sms和cookie信息:

我不会告诉你 var/mobile/Applications 全部是应用的备份文档信息里面包含的账户密码,聊天信息等。这里就不看了,太尼玛冷了,得进被窝了…

防御措施

这会再看结合USB的那个图你应该知道两种防御方法了吧?

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
1. 提示信任信息的时候如果是充电宝,坚决选NO
2. 也就是数字公司的“防御神器”切掉USB的data数据(猜测数字公司这么干的)

哎,好久没写文章了有点手生,写了快一个小时就到此打住了,写着文章没有任何恶意,只是想分享一些东西,认识我的人都知道我很乐意分享所掌握的知识并且是无条件的。你会问为啥从始至终都没有看到你的“充电宝”,额没钱买呗,哈哈…

版权信息

原创作品FreeBuf独家首发,我博客都还没发布 weibo: @creturn blog: www.creturn.com

后面有时间了再写个IOS关机窃听的东西,哎,上次吃饭时候说要弄一个,感觉给自己挖了个坑…

[本文由作者creturn原创并投稿FreeBuf,版权属于creturn,转载须注明来自FreeBuf.COM]

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2014-12-02,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 FreeBuf 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
libimobiledevice是一个跨平台软件库,用于讨论与iOS设备交互的协议
libimobiledevice是一个跨平台软件库,用于讨论与iOS设备交互的协议。
云深无际
2021/04/14
3.3K0
libimobiledevice是一个跨平台软件库,用于讨论与iOS设备交互的协议
揭秘奸商的伎俩:利用树莓派自制“恶意充电宝”实验
重温一遍今年的315晚会。看完只想骂一句奸商!晚会上披露了一个可以通过充电控制用户手机的内容,作为离了手机就丢了半条命的现代人,经常会遇到在外手机没电借别人充电器、充电宝的情况。借到了你以为是遇上了好
FB客服
2018/02/28
1.9K0
揭秘奸商的伎俩:利用树莓派自制“恶意充电宝”实验
使用libimobiledevice&ifuse提取iOS沙盒文件
libimobiledevice又称libiphone,是一个开源包,可以让Linux支持连接iPhone/iPod Touch 等iOS设备。由于苹果官方并不支持Linux系统,但是Linux上的高手绝对不能忍受因为要连接iOS设备就换用操作系统这个事儿。因此就有人逆向出iOS设备与Windows/Mac Host接口的通讯协议,最终成就了横跨三大桌面平台的非官方版本USB接口library。经常用Linux系统的人一定对libimobiledevice不陌生,但是许多Windows和Mac用户也许就不知道了。事实上,它同iTools一样,都是可以替代iTunes,进行iOS设备管理的工具。因为源码是开放的,可以自行编译,所以对很多开发者而言可以说更为实用。
用户6094182
2020/08/20
1.8K0
自制RaspberryPi笔记本or移动kali工作站
开始学习树莓派时,虽然了解到这个只有信用卡大小,基于Linux的微型电脑,外表“娇小”,内“心”强大,但是并没有对她有特别的期盼,即便她能做机顶盒、智能小车、飞机等等。但是慢慢意识到,树莓派可以让一直学习数据库、操作系统的我不止在“虚拟”的软件世界与现实隔绝,也可以深入到有趣的“现实”硬件世界,根据生活需要造出有用的东西来,这是件很有趣的事情!
张国平
2020/09/27
1.3K0
这位“华为天才少年”,竟然要我用“充电宝”打《只狼》
边策 萧箫 发自 凹非寺 量子位 报道 | 公众号 QbitAI 他来了他来了,熟悉的B站硬核UP主、“栈溢出”工程师稚晖君,带着他全新的作品又来了! 这次,他打造了一款超级酷炫的充电宝。 不仅自带8000毫安电量,还能直接外接PS4打《只狼》,高分辨低延迟: 给树莓派充电的同时,还能充当它的显示屏: 熟悉稚晖君的同学都知道,自9月初以来,他在B站“沉寂”了将近3个月的时间。 期间除了偶尔冒个泡以外,稚晖君并没有搞出大动静来。 事实上,“硬磕”充电宝可能只是他工作生活的一小部分。 现在的稚晖君(本名彭
量子位
2023/03/10
3870
这位“华为天才少年”,竟然要我用“充电宝”打《只狼》
基于树莓派的多功能USB实现--系统安装
优势:保证功能健全的同时体积不到传统Raspberry Pi尺寸的一半。但是最主要的优势是:
PedroQin
2020/02/12
2.2K0
树莓派新手入门教程
树莓派(Raspberry Pi)是学习计算机知识、架设服务器的好工具,价格低廉,可玩性高。 本文根据我的亲身经验,介绍如何从零开始,搭建一个树莓派服务器,控制 LED 灯。你会看到,树莓派玩起来实在
ruanyf
2018/04/13
2.8K0
树莓派新手入门教程
使用libimobiledevice + ifuse提取iOS沙盒文件
libimobiledevice:一个开源包,可以让Linux支持连接iPhone/iPod Touch等iOS设备。
周希
2019/10/15
3.5K0
使用libimobiledevice + ifuse提取iOS沙盒文件
Python+树莓派制作IoT(物联网)门控设备
因为考虑需要在户外使用这套物联网门控设备,所以利用树莓派完成这个设备有两个问题需要解决, 第一是需要解决树莓派和相关模块的供电问题。 第二就是需要户外没有宽带网络情况下的信号传输问题。 只要解决这两个问题那么剩下来的问题就是编程方面的了,针对以上两个问题,这里我们采用比较大众化的方式解决,设备的供电问题我们使用太阳能配合蓄电池进行实现7X24小时供电,信号的传输问题我们使用一块叫做SIM868的通讯模块来实现。下面来介绍一下设备制作的材料准备、制作过程以及程序的编写和调试。
緣來
2020/01/02
3.3K0
Python+树莓派制作IoT(物联网)门控设备
树莓派远程及文件传输:以呼吸参数测量及获取为例
在组装完树莓派以后,我们需要让我们的树莓派编程“中央空调”,即:让其他电脑都可以通过远程/局域网来访问控制我们的树莓派我们的树莓派。
代码咖啡
2018/08/28
1.8K0
树莓派远程及文件传输:以呼吸参数测量及获取为例
Nordic-nPM1300电源管理
今天说一个PMIC的芯片,我其实以前都不不在乎电源这个事情的,直到有天我做了一个原型机,上面有着几个不同的MCU和执行器的时候,翻箱倒柜的找各种电源来让它们正常工作,电源部分后来占了本体的五分之四。我设计的小体积系统不在小,整个样机不美了。
云深无际
2024/08/21
1740
Nordic-nPM1300电源管理
如何构建一台属于自己的基站?
上周我去特拉维夫(Tel Aviv)探望我的朋友结果有了一些收获,一块崭新的BladeRF(x40),即一个支持USB3.0的SDR平台,这就意味着可以同时发送和接收信息了。而HackRF不同于其他两
FB客服
2018/02/07
2.1K0
如何构建一台属于自己的基站?
【树莓派】树莓派4B新手篇:安装官网Raspbian Buster系统及基础配置
对于很多程序员而言,树莓派如今已经如雷贯耳,对于我一个新入行AI领域研究的新人而言,树莓派激发了我极大的兴趣。最开始知道树莓派,是因为我之前做了一个语音对话机器人,然后在查询有关资料的时候发现有人用树莓派做了一个语音对话机器人,于是乎很惊奇,心中一直想自己动手实验一下。刚好那时候听说树莓派4B新上市,各方面的性能至少提升了3倍以上,好奇心害死猫,所以我决定入坑树莓派了。
全栈程序员站长
2022/07/01
9.7K0
【树莓派】树莓派4B新手篇:安装官网Raspbian Buster系统及基础配置
树莓派折腾记:纯手机+数据线连接树莓派
文章更新:   20161207 初次成文   20170418 针对新版镜像提供新的解决方案 问题提出:   从这篇文章开始小苏会陆陆续续更新一些折腾树莓派的文章,因为小苏手中的树莓派是"3代B型",并且基于官方系统,所以这些文章都是基于树莓派3和官方系统的。   从一代开始。树莓派已经发行了多个版本,并且随着硬件和软件的更新,互联网上的诸多资料已经不适用与最新版的"树莓派3代B型"和最新版的树莓派系统。所以当我们在互联网上寻找资料时,往往会遇到"资料找到了,但并不适用"的尴尬情况。   所以这也正是
美丽应用
2018/07/20
5.7K0
kali操作系统虚拟机安装
树莓派是轻量级的工具 可以充当服务器使用 但是承载能力有限,不适合大型运算的软件 可以安装 msfconsole ettercap 相互配合 达到内网渗透的效果
网e渗透安全部
2019/08/09
1.8K0
kali操作系统虚拟机安装
Hello, Raspberry Pi.
最近在研究自动升级开源项目的时候偶然想到IoT领域的自动升级,突然想起2016年买的树莓派(Raspberry Pi)。那就分享一下如何入门树莓派的教程,我当时一共买了两块一款是Raspberry Pi 3b(2016年价格259元去年以抽奖送给社区小伙伴)另一块Raspberry Pi 3 Model b+(2018年价格221元)。在今年买了一块Raspberry Pico(24元)这些统称为开发板具体的型号如下:
JusterZhu
2022/12/07
3.2K0
Hello, Raspberry Pi.
树莓派自建 NAS 云盘之——树莓派搭建网络存储盘
我将在接下来的这三篇文章中讲述如何搭建一个简便、实用的 NAS 云盘系统。我在这个中心化的存储系统中存储数据,并且让它每晚都会自动的备份增量数据。本系列文章将利用 NFS 文件系统将磁盘挂载到同一网络下的不同设备上,使用 Nextcloud 来离线访问数据、分享数据。
星哥玩云
2022/07/24
6.1K0
树莓派自建 NAS 云盘之——树莓派搭建网络存储盘
树莓派介绍以及FAQ【这是我见过最全的树莓派教程】
树莓派是什么? 树莓派(Raspberry Pi)是尺寸仅有信用卡大小的一个小型电脑,您可以将树莓派连接电视、显示器、键盘鼠标等设备使用。 树莓派能替代日常桌面计算机的多种用途,包括文字处理、电子表格、媒体中心甚至是游戏。并且树莓派还可以播放高至 4K 的高清视频。 我们希望将树莓派推广给全世界的青少年电脑爱好者,用于培养计算机程序设计的兴趣和能力。
全栈程序员站长
2022/11/04
5.2K0
牛人教你DIY!用树莓派 Zero做飞控图传
虽然可以买到商品成品,且会比我们做出来的东西更美观,性能指标更强,但是在折腾中学习,按照自己的需求进行优化改动,享受创造的喜悦,不正是创客精神嘛。 本项目使用手头现有的硬件,旨在将树莓派Zero作为飞控图传使用,本以为会很简单,但是软件适配方面遇到一些问题,困扰了很久。 1. 硬件部分 我们首先来看看硬件列表: Raspberry Pi Zero v1.3 otg table & usb wifi dongle (Xiaomi wifi) Raspberry Pi Camera Module v1.3
机器人网
2018/05/04
6.2K0
牛人教你DIY!用树莓派 Zero做飞控图传
iPhone使用教程_iphone基础使用
大家好,又见面了,我是你们的朋友全栈君。 iPhone史上最全的使用教程 iPhone的解锁、越狱、激活、固件等等是什么意思,有什么分别 这几天看见好多新人问这几个词的含义及区别。我在这儿说说我的看法,不是官方解释,不懂的学习一下,懂的绕道,如有错误,敬请指正! 第一次买来时或恢复官方固件后,iPhone会处于那种只能拨打紧急电话状态,不能使用其它功能,如果要使用其它功能,就必须进行一项操作,那就是“激活”。一般有锁版的只有使用对应运营商的卡(如美国的AT&T卡)或者无锁版使用任何卡,才可以激活。激活之
全栈程序员站长
2022/09/29
14.4K0
推荐阅读
相关推荐
libimobiledevice是一个跨平台软件库,用于讨论与iOS设备交互的协议
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验