文章目录
  1. 1. 一、源码编译安装
    1. 1.1. 1.1 编译环境搭建
      1. 1.1.1. 1.1.1 jdk版本问题
      2. 1.1.2. 1.1.2 安装pip
    2. 1.2. 1.2 安装工具
      1. 1.2.1. 1.2.1 安装msi
      2. 1.2.2. 1.2.2 安装APK
    3. 1.3. 1.3 工具使用
      1. 1.3.1. 1.3.1 启动APK
      2. 1.3.2. 1.3.2 PC连接远程服务
      3. 1.3.3. 1.3.3 执行命令
  2. 2. 二、可执行文件安装

最近在处理公司App的安全问题,跟第三方公司人员沟通,提到有使用drozer工具检测。装了下这个工具,在这里记录一些坑。

drozer是一个python编写的开源工具,在github上面有源码,地址:https://github.com/mwrlabs/drozer。其功能很强大,可以检测App中的四大组件的导出情况、Intent拒绝服务、SQL注入风险以及可以自定义Module等。尤其是自定义Module功能,自己按格式编写一个Module功能,就可以获取终端设备及App的信息。

drozer工具有两部分:一是PC端,另一部分是终端APK。

环境搭建步骤有两种方式,一种是使用github上面的源码自己编译安装;另一种是官方提供了一些常用操作系统的安装包,可以直接安装。 下面以windows环境编译为例:

一、源码编译安装

1.1 编译环境搭建

编译前安装的环境与github上README所说的环境要一致,一定要一致!!!

1.1.1 jdk版本问题

如果JDK版本不一致,编译时会提示以下错误,导致编译APK失败。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
UNEXPECTED TOP-LEVEL EXCEPTION:
com.android.dx.cf.iface.ParseException: bad class file magic (cafebabe) or version (0034.0000)
at com.android.dx.cf.direct.DirectClassFile.parse0(DirectClassFile.java:472)
at com.android.dx.cf.direct.DirectClassFile.parse(DirectClassFile.java:406)
at com.android.dx.cf.direct.DirectClassFile.parseToInterfacesIfNecessary(DirectClassFile.java:388)
at com.android.dx.cf.direct.DirectClassFile.getMagic(DirectClassFile.java:251)
at com.android.dx.command.dexer.Main.processClass(Main.java:665)
at com.android.dx.command.dexer.Main.processFileBytes(Main.java:634)
at com.android.dx.command.dexer.Main.access$600(Main.java:78)
at com.android.dx.command.dexer.Main$1.processFileBytes(Main.java:572)
at com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:170)
at com.android.dx.cf.direct.ClassPathOpener.process(ClassPathOpener.java:144)
at com.android.dx.command.dexer.Main.processOne(Main.java:596)
at com.android.dx.command.dexer.Main.processAllFiles(Main.java:498)
at com.android.dx.command.dexer.Main.runMonoDex(Main.java:264)
at com.android.dx.command.dexer.Main.run(Main.java:230)
at com.android.dx.command.dexer.Main.main(Main.java:199)
at com.android.dx.command.Main.main(Main.java:103)
...while parsing ByteStreamReader.class

目前编译的版本是2.4.3,github网站README说明使用JDK版本为1.7。但官方网站上的说明文档还是老版本,使用的是JDK 1.6。所以这里要注意一下。

1.1.2 安装pip

pip是python库的管理工具,通过它可以很方便下载一些其他库,编译drozer所需要的ProtobufPyopensslTwisted等库都可以通过它来下载。

下载地址是:https://pypi.python.org/pypi/pip#downloads,下载后解压,在命令行cd到解压目录,然后执行python setup.py install即可以安装pip

安装成功后,将C:\Python27\Scripts目录配置到系统的环境变量中。重新启动命令行, 执行pip install protobuf命令就可以安装protobuf库,其他库类似。

1.2 安装工具

上述过程编译成功后,会在dist目录生成msi文件。

1.2.1 安装msi

安装msi文件下一步就可以,但下面这个页面不要选错,否则都不知道上哪儿找drozer.bat文件。如果找到源码中的这个文件,在后面连接成功后,执行list命令会显示空白,即没有命令工具可以使用。

安装选项

1.2.2 安装APK

APK官方直接给出了下载地址:https://github.com/mwrlabs/drozer/releases/download/2.3.4/drozer-agent-2.3.4.apk,下载下来后,直接使用adb install drozer-agent-2.3.4.apk。这一步没什么好说的,只要将adb命令配置到环境变量,就可以直接执行adb命令。

1.3 工具使用

1.3.1 启动APK

工具使用之前,要先启动在终端安装的Appdrozer Agent,点击底部的Embedded Server,进入到新页面后滑动顶部的控件,将其置为Enabled状态。如下图所示:

Enabled状态

1.3.2 PC连接远程服务

这一步按官方说明来:

  • 转发端口
1
adb forward tcp:31415 tcp:31415
  • 连接应用

如果是模拟器,直接执行:

1
drozer.bat console connect

如果是物理机,需要知道连接Wi-Fi的IP地址,启动命令的PC端网络要和物理机的网络在同一内网中。执行命令需要带上IP:

1
drozer.bat console connect --server 192.168.0.10

我用物理机没有连接成功,用模拟就OK,所以如果网络环境复杂,建议使用模拟器。

连接成功如下图所示:

drozer连接成功

执行list命令显示的部分命令列表如下图所示:

drozer list

如果drozer.bat console connect执行失败,出现如下提示:

1
2
3
4
Traceback (most recent call last):
File "bin/drozer", line 30, in
import("drozer.cli.%s" % (sys.argv[1]))
ImportError: No module named drozer.cli.console

则是python找不到drozer.cli.console库,在系统的环境变量中增加PYTHONPATH变量,路径为上面安装msi文件时指定的路径中的子目录site-packages路径。如果环境变量中已经有这个变量,则增加一个路径,中间使用英文逗号分隔。如下所示:

PYTHONPATH环境变量

1.3.3 执行命令

命令执行可以参考利用drozer进行Android渗透测试

二、可执行文件安装

如果不想自己编译,PC端可执行文件以及APK可以从这个官方地址https://labs.mwrinfosecurity.com/tools/drozer下载。其他安装步骤和操作步骤与上面步骤一样,要注意一下编译生成的msi文件的安装路径。

文章目录
  1. 1. 一、源码编译安装
    1. 1.1. 1.1 编译环境搭建
      1. 1.1.1. 1.1.1 jdk版本问题
      2. 1.1.2. 1.1.2 安装pip
    2. 1.2. 1.2 安装工具
      1. 1.2.1. 1.2.1 安装msi
      2. 1.2.2. 1.2.2 安装APK
    3. 1.3. 1.3 工具使用
      1. 1.3.1. 1.3.1 启动APK
      2. 1.3.2. 1.3.2 PC连接远程服务
      3. 1.3.3. 1.3.3 执行命令
  2. 2. 二、可执行文件安装