ReversecLabs/drozer

GitHub: ReversecLabs/drozer

一款面向 Android 的开源安全测试框架,通过代理与控制台交互帮助发现应用与设备安全漏洞。

Stars: 4499 | Forks: 832

# drozer drozer 是用于 Android 的安全测试框架。 drozer 允许你通过扮演一个应用的角色来搜索应用和设备的安全漏洞,并与 Android 运行时、其他应用的 IPC 端点以及底层操作系统进行交互。 drozer 提供工具,帮助你使用、共享和理解公开的 Android 漏洞利用。 drozer 是开源软件,由 Reversec 维护。入门用户指南可在 [Reversec Labs](https://labs.reversec.com/tools/drozer/) 找到。 ## NOTE 这是一个被重写的 drozer 版本的 BETA 发布;此版本已更新以支持 python3。 目前存在以下已知问题: - 构建自定义代理的功能会导致 drozer 客户端崩溃。此功能在复活的 drozer 项目的 BETA 发布版本中属于范围之外。 ## Docker 容器 为了确保 drozer 可以在所有系统上运行,我们创建了一个包含可用 drozer 构建的 Docker 容器。 * Docker 容器和基本设置说明可以在[这里](https://hub.docker.com/r/drozerdocker/drozer)找到。 * 构建你自己的 Docker 容器的说明可以在[这里](https://github.com/ReversecLabs/drozer/tree/develop/docker)找到。 ## 手动构建和安装 ### 软件前置条件 1. [Python3.8](https://www.python.org/downloads/) 2. [Protobuf](https://pypi.python.org/pypi/protobuf) 4.25.2 或更高版本 3. [Pyopenssl](https://pypi.python.org/pypi/pyOpenSSL) 22.0.0 或更高版本 4. [Twisted](https://pypi.python.org/pypi/Twisted) 18.9.0 或更高版本 5. [Distro](https://pypi.org/project/distro/) 1.8.0 或更高版本 6. [Java Development Kit](https://adoptopenjdk.net/releases.html) 11 或更高版本 ### 安装 你可以使用 `pip` 或 `pipx`(如果可用,优先使用)从 PyPI 安装最新版本的 drozer: ``` pipx install drozer ``` 或者,你可以从 GitHub 下载各个 [版本](https://github.com/ReversecLabs/drozer/releases/) 并运行: ``` pipx install ./drozer-*.whl ``` 如果尚未考虑过,建议运行: ``` pipx ensurepath ``` 以确保 `pipx` 安装的程序包出现在你的 `PATH` 中 ## 构建 要从源代码构建 drozer,可以运行: ``` git clone https://github.com/ReversecLabs/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:\Users\drozerUser\AppData\Local\Android\sdk\platforms\android-34\android.jar' ``` **Windows - cmd:** ``` set ANDROID_SDK = "C:\Users\drozerUser\AppData\Local\Android\sdk\platforms\android-34\android.jar" ``` 使用的 `d8` 工具的位置也可以通过设置 `D8` 来更改。 ## 用法 ### 安装代理 drozer 可以通过 Android Debug Bridge (adb) 安装。 下载最新的 drozer 代理 [这里](https://github.com/ReversecLabs/drozer-agent/releases/latest)。 ``` adb install drozer-agent.apk ``` ### 会话设置 你现在应该已经在 PC 上安装了 drozer 控制台,并在测试设备上运行了代理。现在,你需要将两者连接起来,就可以开始探索了。 我们将使用 drozer 代理中内置的服务器来实现这一点。首先,启动代理,选择“嵌入式服务器”选项,然后点击“启用”以启动服务器。你应该会看到服务器已启动的通知。 然后,按照以下选项之一操作。 #### 选项 1:通过网络连接到设备 默认情况下,drozer 代理监听所有接口上的 31415 端口上的传入 TCP 连接。为了连接到代理,请运行以下命令: ``` drozer console connect --server ``` 如果你使用的是 Docker 容器,则等效命令为: ``` docker run --net host -it drozerdocker/drozer console connect --server ``` #### 选项 2:通过 USB 连接到设备 在某些情况下,通过网络连接到设备可能不可行。在这些场景中,我们可以利用 `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 软件版本。 现在你可以开始探索设备了。 ### 命令参考 | 命令 | 描述 | | ------------- |:-------------| | run | 执行一个 drozer 模块 | list | 显示当前会话中可以执行的所有 drozer 模块列表。这会隐藏你没有合适权限运行的模块。 | | shell | 在设备上的代理进程上下文中启动交互式 Linux shell。 | | cd | 将一个命名空间挂载为会话的根目录,以避免反复输入模块的完整名称。 | | clean | 移除存储在 Android 设备上的 drozer 临时文件。 | | contributors | 显示对 drozer 框架和你系统上使用的模块有贡献的人员列表。 | | echo | 在控制台打印文本。 | | exit | 终止 drozer 会话。 | | help | 显示特定命令或模块的帮助信息。 | | load | 加载包含 drozer 命令的文件,并按顺序执行它们。 | | module | 在互联网上查找并安装额外的 drozer 模块。 | | permissions | 显示授予 drozer 代理的权限列表。 | | set | 存储一个值作为变量,该变量将作为环境变量传递给 drozer 生成的任何 Linux shell。 | | unset | 移除 drozer 传递给其生成的任何 Linux shell 的命名变量。 | ## 许可证 drozer 在 3-clause BSD License 下发布。完整细节请参见 LICENSE。 ## 联系项目 drozer 是开源软件,由社区的贡献使其变得优秀。 要获取完整的源代码、报告错误、提出功能建议和贡献补丁,请访问我们的 Github 项目: 错误报告、功能请求、评论和问题可以[提交到这里](https://github.com/ReversecLabs/drozer/issues)。
标签:Android Runtime, Android安全评估, AppSec, BETA版本, Docker容器, Drozer, IPC, JS文件枚举, Pipx, Protobuf, PyOpenSSL, Python3, Reversec Labs, Twisted, 云资产清单, 公开漏洞利用, 兼容Python3, 多语言支持, 安全测试工具, 安全测试框架, 安全漏洞搜索, 开源安全工具, 手动安装, 攻击面发现, 目录枚举, 移动安全, 移动应用安全, 逆向工具, 逆向工程, 逆向工程平台