首页 > 代码库 > 利用ADB和Settings命令行工具轻松的攻击Android手机

利用ADB和Settings命令行工具轻松的攻击Android手机

从4.2开始,Android提供了一个命令行工具settings。这个工具用于帮助构造SettingProvider的客户端代理,从而可以方便的进行系统设置项的读取和设置。
 但是这个工具和adb配合起来,将对Android的安全构成极大的威胁。因为通过adb来执行settings时的时候,uid是shell,而shell拥有非常多的特权。

当然,问题的根源在于adb的shell权限太高,毕竟即使没有settings这个工具(或者说没有/system/framework/settings.jar文件),adb用户可以自己构造类似这样的程序/脚本。但是现在Android提供了该工具,这样的安全入侵将变得异常简单。

下面用几个例子来说明当用户开启adb后连接电脑,可能对用户手机造成的安全侵害。
注意1:这里针对Nexus手机的原生Android-5.0而言,不同的手机ROM有不同的设置项。
注意2:请先打开手机adb调试模式,并确保adb命令可以正常执行。

1) 修改是否“允许安装来自Play商店之外的其他来源的应用”。
在手机设置项中禁用该选项,操作路径是“设置”->“安全”->“未知来源”
然后执行如下命令:
$ adb shell settings put secure install_non_market_apps1  
退出设置,再次进入,发现“未知来源”已经启用。这样,第三方恶意应用程序就可能被安装成功。

2) 截取用户短信。
从Android 4.4开始,可以由用户设置默认的短信程序用于接管系统短信的收发。对于安装的第三方短信程序,必须用户手工指定才能工作。而利用这个漏洞,adb可以直接指定第三方短信应用程序而无须用户的确认。

在手机设置项中查看短信程序,操作路径是“设置”->“更多”->“默认短信应用”,如果没有修改过,应该是“环聊”。

比如先安装一个短信应用:GoSMSpro。
然后执行如下命令:
$ adb shell settings put secure sms_default_applicationcom.jb.gosms  
退出设置,再次进入,发现“默认短信应用”已经成为“GO SMS Pro”。如果攻击者利用步骤1修改允许未知来源,然后通过ADB在后台偷偷安装一个截取短信或者滥发短信的程序,那么短信的收发都不受用户控制了。
在某些国家和地区,短信截取和诈骗是非常泛滥的事情,这样不得不说是一件非常危险的事情。

另外各种互联网的PC客户端也会经常利用adb监视和操控连接到该电脑的Android手机。即使是最出名的几家互联网公司也是这样,利用这样的工具,它们可以变换很多花样来操控用户的手机。

技术分享


利用ADB和Settings命令行工具轻松的攻击Android手机