Skip to content
KitploitKITPLOIT
工具漏洞利用博客
Log in
提交
工具漏洞利用博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

订阅源联系隐私© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
mariana-trench — 一个专注于安全的 Android 和 Java 应用程序静态分析工具。 | Kitploit
工具/GitHubGitHub/facebook/mariana-trench
Android安全静态分析漏洞分析代码分析移动安全
GitHubfacebook/mariana-trench

mariana-trench

一个专注于安全的 Android 和 Java 应用程序静态分析工具。

查看仓库
1.2k156202天前Kitploit 审核通过

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享
网站

Mariana Trench

logo

MIT License .github/workflows/tests.yml

Mariana Trench 是一个针对 Android 的专注于安全性的静态分析平台。

本指南将带你完成在机器上设置 Mariana Trench 的过程,并让你在一个小型示例应用中找到第一个远程代码执行漏洞。这些说明也可以在我们的网站上找到。

先决条件

Mariana Trench 需要最新版本的 Python。在 MacOS 上,你可以通过 homebrew 获取当前版本:

$ brew install python3

在 Debian 风格的 Linux(Ubuntu、Mint、Debian)上,你可以使用 apt-get:

$ sudo apt-get install python3 python3-pip python3-venv

本指南还假设你已经安装了 Android SDK,并且环境变量 $ANDROID_SDK 指向 SDK 的位置。

在本指南的其余部分,我们假设你在一个虚拟环境中工作。你可以通过以下命令设置:

$ python3 -m venv ~/.venvs/mariana-trench
$ source ~/.venvs/mariana-trench/bin/activate
(mariana-trench)$

Shell 提示符前的虚拟环境名称表示虚拟环境已激活。

安装 Mariana Trench

在你的虚拟环境中,安装 Mariana Trench 就像运行以下命令一样简单:

(mariana-trench)$ pip install mariana-trench

注意:目前 pip 安装不支持 Apple 芯片的 Mac,你可以按照开发者指南中的说明从源代码构建。

运行 Mariana Trench

我们将使用一个作为文档一部分的小型应用。你可以通过以下命令获取它:

(mariana-trench)$ git clone https://github.com/facebook/mariana-trench
(mariana-trench)$ cd mariana-trench/

现在我们可以运行分析了:

(mariana-trench)$ mariana-trench \
  --system-jar-configuration-path=configuration/default_system_jar_paths.json \
  --model-generator-configuration-paths=configuration/default_generator_config.json \
  --lifecycles-paths=configuration/lifecycles.json \
  --rules-paths=configuration/rules.json \
  --apk-path=documentation/sample-app/app/build/outputs/apk/debug/app-debug.apk \
  --source-root-directory=documentation/sample-app/app/src/main/java \
  --model-generator-search-paths=configuration/model-generators/

# ...
INFO Analyzed 68937 models in 7.47s. Found 9 issues!
# ...

分析在我们的示例应用中发现了 9 个问题。分析的输出是每个应用程序方法的一组规范。

后处理

这些规范本身并不适合人类阅读。我们需要额外的处理步骤来使结果更易呈现。我们通过已为我们安装的 PyPi 包 SAPP 来实现:

(mariana-trench)$ sapp --tool=mariana-trench analyze .
(mariana-trench)$ sapp --database-name=sapp.db server --source-directory=documentation/sample-app/app/src/main/java
# ...
2021-05-12 12:27:22,867 [INFO]  * Running on http://localhost:13337/ (Press CTRL+C to quit)

输出的最后一行告诉我们 SAPP 启动了一个本地 Web 服务器,让我们查看结果。打开链接,你将看到分析发现的 4 个问题。

探索结果

让我们关注示例应用中发现的远程代码执行问题。你可以通过其问题代码 1(针对所有远程代码执行)和可调用项 void MainActivity.onCreate(Bundle) 来识别它。只有 4 个问题需要查看,手动识别问题很容易,但一旦运行更多规则,页面右上角的筛选功能就会派上用场。

单一问题展示

该问题告诉你,Mariana Trench 在 MainActivity.onCreate 中发现了一个远程代码执行,数据来自 Activity.getIntent(相隔 1 个调用),并流入 ProcessBuilder 的构造函数(相隔 3 个调用)。点击问题右上角的 "Traces" 查看示例跟踪。

Mariana Trench 揭示的跟踪由三部分组成。

Source 跟踪 表示数据的来源。在我们的示例中,跟踪非常短:Activity.getIntent 直接在 MainActivity.onCreate 中被调用。 跟踪来源

跟踪根 表示 source 跟踪与 sink 跟踪汇合的地方。在我们的示例中,这是活动的 onCreate 方法。 跟踪根

跟踪的最后一部分是 sink 跟踪:这是数据从 source 流向 sink 的地方。在我们的示例中,从 onCreate 到 onClick,再到 execute,最后进入 ProcessBuilder 的构造函数。 跟踪 Sink

配置 Mariana Trench

你可能会问自己:"这个工具如何知道什么是用户控制的数据,什么是 sink?" 本指南旨在让你快速上手一个小型应用。我们没有介绍如何配置 Mariana Trench。你可以在我们的网站上阅读配置了解更多信息。

贡献

要深入了解如何从源代码构建以及 Mariana Trench 的开发,请参见我们网站的开发者指南。

许可

Mariana Trench 采用 MIT 许可。

下载工具