安卓adb备份存在漏洞

Android在系统备份后还原的处理上存在严重漏洞(CVE-2014-7952),使得攻击者可以注入恶意的apk文件到备份文件中(这样还原的时候恶意的应用也安装上去了)。该漏洞是由Android的命令行工具adb的问题导致的,影响目前所有版本的安卓系统(包括Android L)。目前该漏洞没有修复。
adb备份
ADB 功能预览

ADB (Android debug bridge)可以执行各种各样的功能,可以通过pc向手机发送命令,它也可以对android手机进行全备份,Search-Lab的研究者也正是通过这个功能发现的该漏洞。

Android系统对安装的应用提供了一种通过adb进行备份与还原的机制。默认情况下,应用的完整备份包含存放在/data目录下的私有文件,但是备份行为可以实现BackupAgent类来自定义,这样应用备份的时候就可以提供自定义的一些文件和数据(也就是,能决定备份的东西)。

备份管理器,能调用自定义的BackupAgent并没有对应用程序返回的数据流进行过滤。在BackupAgent在执行备份的时候,可以在用户没有感知的情况下注入其他的apk文件到备份的文件中。BackupAgent并不需要申请android权限。当系统进行还原的时候,系统就安装了注入的android apk。

该漏洞的利用也很直接。攻击者首先需要诱导用户有恶意的BackupAgent类的应用。该应用可以表现为良性应用,因为BackupAgent并不需要申请安卓权限。然后通过adb进行备份,创建含有注入的恶意apk的备份文件,再恢复即可。

POC

Android 4.4.4和Android 5.1.1测试通过

Step 1: 安装ADB_Backup_Injection.apk (com.searchlab.backupagenttest):

这个应用不需任何授权

Step 2: 使用下面的命令建立备

adb backup -f backup.ab -apk com.searchlab.backupagenttest

Step 3 (可选): 如果你希望检查一下刚才建立的备份,可以使用ABE工具

java -jar abe.jar unpack backup.ab backup.tar

在tar文件中你能找到注入的应用 (com.searchlab.wifitest)。

Step 4: 使用下面的命令还原

adb restore backup.ab

因为backup.ab文件已包含注入的应用, file already contains the injected application, it will be restored (installed) as well.

Step 5: 验证WiFi Test应用被安装,这个应用使用android.permission.CHANGE_WIFI_STATE和android.permission.ACCESS_WIFI_STATE证明可权限提升。

地址:https://github.com/irsl/ADB-Backup-APK-Injection/

上一篇:2014年网络诈骗犯罪大数据研究报告

下一篇:OpenSSL(CVE-2015-1793)补丁发布