adb backup安全漏洞

版权声明:本文为CSDN博主「dxy1990」的原创文章,遵循CC 4.0 by-sa版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/dxymoon/article/details/37728761

adb backup的安全问题是从2013年中国互联网安全大会上从肖梓航演示的ppt中看来,当时大神在现场演示了如何将手机连上电脑只需一步就能拿到手机中新浪微博的账号密码,觉得很神奇,于是简单地研究了下。

1.adb backup

—adb是androidsdk(Android软件开发工具包。被软件开发工程师用于为特定的软件包、软件框架、硬件平台、操作系统等建立应用软件的开发工具的集合)里的一个工具, 用这个工具可以直接操作管理android模拟器或者真实的andriod设备(如G1手机)。它的主要功能有:运行设备的shell(命令行),管理模拟器或设备的端口映射,—计算机和设备之间上传/下载文件,将本地apk软件安装至模拟器或android设备,备份手机文件等等。

adb backup是adb众多命令中的一个,主要作用是备份手机中的文件,其命令操作如下:
adb backup [-f ] [-apk|-noapk] [-shared|-noshared][-all] [-system|nosystem][<packages…>]

参数简介:

代码 -f设置备份后的文件名和路径。比如"C:\dxy.ab",扩展名是ab。

代码:-apk|-noapk选择是否备份APK程序本身。

代码:-shared|-noshared是否备份SD卡。

代码:-system|-nosystem是否备份系统程序。
代码:<packages…>指定备份具体的应用程序。

adb backup的使用步骤如下:首先在手机的设置中开启开发人员选项,打开USB调试,然后进入开发人员工具设置桌面备份密码,第一次使用原密码为空,紧接着打开电脑命令行,输入adb backup参数命令,最后在手机屏幕上点击确认即可。

2.问题?
备份时并未强制设置密码,因此存在很大的安全问题,当用户备份手机数据到电脑后,无法确定操作电脑的人是不是备份的用户,因此可能存在其他人员对备份出的数据进行窃取或修改的情况。
备份后的文件格式为ab,用二进制文件查看如下:

因此该格式的文件只是头部加了24个字节的字段标识该文件的类型(ANDROID BACKUP 1 1 none,第一个1指目前的格式版本,第二个1指压缩标记,none指未经加密,若经过加密,则显示AES-256.),在标识字段后面是对备份出的文件进行简单加密压缩后的数据,这就使得我们能用简单的命令(跳过该文件头部的24字节然后用openssl中的zlib命令对后面的数据解密)来转换该文件,具体的命令如下:

然后进行解压,得到相关文件,如下:

得到的文件中包含apk,db数据等应用的数据,如果其中存在明文密码、可逆密码、账户cookies/token,或其他任何敏感数据,则会对用户造成安全威胁;同时可以通过修改其中的配置文件,使得手机恢复数据时应用软件的配置改变。

3.攻击条件
攻击条件要满足以下三条:
一是手机要连接电脑;二是手机要开启adb调试模式;三是用户在手机上点击确认备份的操作。
其中第三点可以通过adb sendevent命令模拟用户的点击操作,从而在用户不知情的情况下备份出手机数据!


版权声明:本文为CSDN博主「dxy1990」的原创文章,遵循CC 4.0 by-sa版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/dxymoon/article/details/37728761

发布了33 篇原创文章 · 获赞 29 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/qq_40993864/article/details/99119328
adb