Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
mariana-trench — Una herramienta de análisis estático centrada en la seguridad para aplicaciones Android y Java. | Kitploit
Herramientas/GitHubGitHub/facebook/mariana-trench
Seguridad AndroidAnálisis EstáticoAnálisis de VulnerabilidadesAnálisis de CódigoSeguridad Móvil
GitHubfacebook/mariana-trench

mariana-trench

Una herramienta de análisis estático centrada en la seguridad para aplicaciones Android y Java.

Ver Repositorio
1.2k156hace 18h 15mRevisado por Kitploit

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir
Sitio web

Mariana Trench

logo

MIT License .github/workflows/tests.yml

Mariana Trench es una plataforma de análisis estático enfocada en seguridad dirigida a Android.

Esta guía te guiará a través de la configuración de Mariana Trench en tu máquina y te llevará a encontrar tu primera vulnerabilidad de ejecución remota de código en una pequeña aplicación de ejemplo. Estas instrucciones también están disponibles en nuestro sitio web.

Requisitos previos

Mariana Trench requiere una versión reciente de Python. En MacOS puedes obtener una versión actual a través de homebrew:

root@kitploit:~
$ brew install python3

En un Linux con sabor Debian (Ubuntu, Mint, Debian), puedes usar apt-get:

root@kitploit:~
$ sudo apt-get install python3 python3-pip python3-venv

Esta guía también asume que tienes instalado el Android SDK y una variable de entorno $ANDROID_SDK apuntando a la ubicación del SDK.

Para el resto de esta guía, asumimos que estás trabajando dentro de un entorno virtual. Puedes configurarlo con

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

El nombre del entorno virtual al frente del símbolo del sistema indica que el entorno virtual está activo.

Instalando Mariana Trench

Dentro de tu entorno virtual, instalar Mariana Trench es tan fácil como ejecutar

root@kitploit:~
(mariana-trench)$ pip install mariana-trench

Nota: pip install no es compatible actualmente con Macs con Apple Silicon; puedes compilar desde la fuente usando las instrucciones en la Guía del Desarrollador.

Ejecutando Mariana Trench

Usaremos una pequeña aplicación que es parte de nuestra documentación. Puedes obtenerla ejecutando

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

Ahora estamos listos para ejecutar el análisis

root@kitploit:~
(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!
# ...

El análisis ha encontrado 9 problemas en nuestra aplicación de ejemplo. La salida del análisis es un conjunto de especificaciones para cada método de la aplicación.

Postprocesamiento

Las especificaciones en sí no están diseñadas para ser leídas por humanos. Necesitamos un paso de procesamiento adicional para hacer los resultados más presentables. Hacemos esto con SAPP instalado vía PyPi para nosotros:

root@kitploit:~
(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)

La última línea de la salida nos dice que SAPP inició un servidor web local que nos permite ver los resultados. Abre el enlace y verás los 4 problemas encontrados por el análisis.

Explorando Resultados

Enfoquémonos en el problema de ejecución remota de código encontrado en la aplicación de ejemplo. Puedes identificarlo por su código de problema 1 (para todas las ejecuciones remotas de código) y el invocable void MainActivity.onCreate(Bundle). Con solo 4 problemas para ver, es fácil identificar el problema manualmente, pero una vez que se ejecuten más reglas, la funcionalidad de filtro en la parte superior derecha de la página resulta útil.

Single Issue Display

El problema te dice que Mariana Trench encontró una ejecución remota de código en MainActivity.onCreate donde los datos provienen de Activity.getIntent a una llamada de distancia, y fluyen hacia el constructor de ProcessBuilder a 3 llamadas de distancia. Haz clic en "Traces" en la esquina superior derecha del problema para ver un ejemplo de traza.

La traza descubierta por Mariana Trench consta de tres partes.

La traza fuente representa de dónde provienen los datos. En nuestro ejemplo, la traza es muy corta: Activity.getIntent se llama directamente en MainActivity.onCreate. Trace Source

La raíz de la traza representa donde la traza fuente se encuentra con la traza sumidero. En nuestro ejemplo, este es el método onCreate de la actividad. Trace Root

La parte final de la traza es la traza sumidero: aquí es donde los datos de la fuente fluyen hacia un sumidero. En nuestro ejemplo desde onCreate, a onClick, a execute, y finalmente al constructor de ProcessBuilder. Trace Sink

Configurando Mariana Trench

Puede que te estés preguntando: "¿cómo sabe la herramienta qué son datos controlados por el usuario y qué es un sumidero?". Esta guía está pensada para que empieces rápidamente con una aplicación pequeña. No cubrimos cómo configurar Mariana Trench. Puedes leer más sobre eso en nuestro sitio web en Configuración.

Contribuciones

Para una guía detallada sobre compilar desde la fuente y desarrollo en Mariana Trench, consulta la Guía del Desarrollador en nuestro sitio web.

Licencia

Mariana Trench está licenciado bajo la licencia MIT.

Descargar herramienta