drozer 是一个 Android 安全测试框架。
drozer 允许您通过扮演应用程序的角色并与 Android 运行时、其他应用程序的 IPC 端点和底层操作系统交互来搜索应用程序和设备中的安全漏洞。
drozer 提供的工具可帮助您使用、共享和了解公共 Android 漏洞。
drozer 是开源软件,由 WithSecure 维护,可以从以下网址下载:https://labs.withsecure.com/tools/drozer/
这是重写的 drozer 版本的 BETA 版本;该版本已更新以支持python3。
目前,存在以下已知问题:
为了帮助确保 drozer 可以在所有系统上运行,创建了一个包含 drozer 工作版本的 Docker 容器。
您可以使用pip
或pipx
(最好是,如果可用)从 PyPI 安装最新版本的 drozer:
pipx install drozer
或者,您可以从 GitHub 下载单独的版本并运行:
pipx install ./drozer- * .whl
如果您还没有,请考虑运行:
pipx ensurepath
确保pipx
安装的软件包出现在您的PATH
中
要从源代码构建 drozer,您可以运行。
git clone https://github.com/WithSecureLabs/drozer.git
cd drozer
pip install .
要针对特定 SDK 构建 Android 本机组件,您可以将ANDROID_SDK
环境变量设置为路径。例如:
Linux/macOS:
export ANDROID_SDK=/home/drozerUser/Android/Sdk/platforms/android-34/android.jar
Windows - PowerShell:
New-Item - Path Env:ANDROID_SDK - Value ' C:UsersdrozerUserAppDataLocalAndroidsdkplatformsandroid-34android.jar '
Windows-命令:
set ANDROID_SDK = " C:UsersdrozerUserAppDataLocalAndroidsdkplatformsandroid-34android.jar "
所使用的d8
工具的位置也可以通过设置D8
来更改。
可以使用 Android 调试桥 (adb) 安装 drozer。
在这里下载最新的 drozer Agent。
adb install drozer-agent.apk
您现在应该已在 PC 上安装了 drozer 控制台,并在测试设备上运行了代理。现在,您需要将两者连接起来,然后就可以开始探索了。
我们将使用 drozer 代理中嵌入的服务器来执行此操作。首先,启动代理,选择“嵌入式服务器”选项并点击“启用”以启动服务器。您应该看到服务器已启动的通知。
然后,按照以下选项之一进行操作。
默认情况下,drozer 代理会侦听端口 31415 上所有接口上的传入 TCP 连接。要连接到代理,请运行以下命令:
drozer console connect --server <phone's IP address>
如果您使用 Docker 容器,则等效命令为:
docker run --net host -it withsecurelabs/drozer console connect --server <phone's IP address>
在某些情况下,通过网络连接到设备可能不可行。在这些场景中,我们可以利用adb
的端口转发功能通过 USB 建立连接。
首先,您需要设置合适的端口转发,以便您的 PC 可以连接到模拟器内或设备上的代理打开的 TCP 套接字。默认情况下,drozer 使用端口 31415
adb forward tcp:31415 tcp:31415
您现在可以通过连接到localhost
(或者干脆不指定目标 IP)来连接到 drozer 代理
drozer console connect
您应该会看到 drozer 命令提示符:
Selecting ebe9fcc0c47b28da (Google sdk_gphone64_x86_64 12)
.. ..:.
..o.. .r..
..a.. . ....... . ..nd
ro..idsnemesisand..pr
.otectorandroidsneme.
.,sisandprotectorandroids+.
..nemesisandprotectorandroidsn:.
.emesisandprotectorandroidsnemes..
..isandp,..,rotecyayandro,..,idsnem.
.isisandp..rotectorandroid..snemisis.
,andprotectorandroidsnemisisandprotec.
.torandroidsnemesisandprotectorandroid.
.snemisisandprotectorandroidsnemesisan:
.dprotectorandroidsnemesisandprotector.
drozer Console (v3.0.0)
dz>
该提示会确认您已连接的设备的 Android ID,以及制造商、型号和 Android 软件版本。
您现在已准备好开始探索该设备。
命令 | 描述 |
---|---|
跑步 | 执行 drozer 模块 |
列表 | 显示当前会话中可以执行的所有 drozer 模块的列表。这会隐藏您没有适当权限运行的模块。 |
壳 | 在代理进程的上下文中,在设备上启动交互式 Linux shell。 |
光盘 | 将特定名称空间安装为会话的根,以避免重复键入模块的全名。 |
干净的 | 删除 Android 设备上 drozer 存储的临时文件。 |
贡献者 | 显示对系统中使用的 drozer 框架和模块做出贡献的人员列表。 |
回声 | 将文本打印到控制台。 |
出口 | 终止 drozer 会话。 |
帮助 | 显示有关特定命令或模块的帮助。 |
加载 | 加载包含 drozer 命令的文件,并按顺序执行它们。 |
模块 | 从 Internet 查找并安装其他 drozer 模块。 |
权限 | 显示授予 drozer 代理的权限列表。 |
放 | 在变量中存储一个值,该值将作为环境变量传递给由 drozer 生成的任何 Linux shell。 |
未设置 | 删除 drozer 传递给它生成的任何 Linux shell 的命名变量。 |
drozer 是根据 3 条款 BSD 许可证发布的。有关完整详细信息,请参阅许可证。
drozer 是开源软件,得益于社区的贡献。
如需完整源代码、报告错误、建议功能和贡献补丁,请参阅我们的 Github 项目:
https://github.com/WithSecureLabs/drozer
错误报告、功能请求、评论和问题可以在此处提交。