但是這個工具和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手機。即使是最出名的幾家互聯網公司也是這樣,利用這樣的工具,它們可以變換很多花樣來操控用戶的手機。