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
appshark — Plataforma de análisis de taints estático para aplicaciones Android que detecta vulnerabilidades y problemas de cumplimiento mediante escaneo personalizable basado en reglas e informes detallados de resultados. | Kitploit
Herramientas/GitHubGitHub/bytedance/appshark
Seguridad AndroidAnálisis EstáticoAnálisis de VulnerabilidadesAnálisis de Código
GitHubbytedance/appshark

appshark

Plataforma de análisis de taints estático para aplicaciones Android que detecta vulnerabilidades y problemas de cumplimiento mediante escaneo personalizable basado en reglas e informes detallados de resultados.

Ver Repositorio
1.8k179hace 5 mesesRevisado 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

Índice de documentos

  • 1.overview
  • 2.startup
  • 3.how to write rules
  • 4.how to find compliance problems use appshark
  • 5.a path traversal game
  • 6.argument
  • 7.engine config
  • 8.result
  • 9.faq

AppShark

Appshark es una plataforma de análisis estático de flujo de datos (taint analysis) para escanear vulnerabilidades en una aplicación Android.

Requisitos previos

Appshark requiere una versión específica de JDK: -- JDK 11. Tras pruebas, no funciona en otras versiones LTS, JDK 8 y JDK 16, debido a problemas de compatibilidad de dependencias.

Compilación / Construcción de AppShark

Asumimos que trabajas en el directorio raíz del repositorio del proyecto. Puedes construir todo el proyecto con la herramienta gradle.

root@kitploit:~
$ ./gradlew build  -x test 

Después de ejecutar el comando anterior, verás un archivo artefacto AppShark-0.1.2-all.jar en el directorio build/libs.

Ejecución de AppShark

Al igual que en el paso anterior, asumimos que todavía estás en la carpeta raíz del proyecto. Puedes ejecutar la herramienta con:

root@kitploit:~
$ java -jar build/libs/AppShark-0.1.2-all.jar  config/config.json5

El config.json5 tiene el siguiente contenido de configuración.

root@kitploit:~
{
  "apkPath": "/Users/apks/app1.apk"
} 

Cada JSON tiene estos campos básicos:

  • apkPath: la ruta del archivo apk a analizar
  • out: la ruta del directorio de salida
  • rules: especifica las reglas, separadas por ,. Por defecto son todos los archivos *.json en el directorio $rulePath
  • rulePath: especifica el directorio padre de las reglas, por defecto es ./config/rules
  • maxPointerAnalyzeTime: el tiempo de espera en segundos establecido para el análisis iniciado desde un punto de entrada
  • debugRule: especifica el nombre de la regla que habilita el registro para depuración

Para más campos de configuración, visita net.bytedance.security.app.ArgumentConfig

Si proporcionas un archivo de configuración JSON que establece la ruta de salida como out en el directorio raíz del proyecto, encontrarás el archivo de resultado out/results.json después de ejecutar el análisis.

Interpretación de los resultados

A continuación se muestra un ejemplo de results.json.

root@kitploit:~
{
  "AppInfo": {
    "AppName": "test",
    "PackageName": "net.bytedance.security.app",
    "min_sdk": 17,
    "target_sdk": 28,
    "versionCode": 1000,
    "versionName": "1.0.0"
  },
  "SecurityInfo": {
    "FileRisk": {
      "unZipSlip": {
        "category": "FileRisk",
        "detail": "",
        "model": "2",
        "name": "unZipSlip",
        "possibility": "4",
        "vulners": [
          {
            "details": {
              "position": "<net.bytedance.security.app.pathfinder.testdata.ZipSlip: void UnZipFolderFix1(java.lang.String,java.lang.String)>",
              "Sink": "<net.bytedance.security.app.pathfinder.testdata.ZipSlip: void UnZipFolderFix1(java.lang.String,java.lang.String)>->$r31",
              "entryMethod": "<net.bytedance.security.app.pathfinder.testdata.ZipSlip: void f()>",
              "Source": "<net.bytedance.security.app.pathfinder.testdata.ZipSlip: void UnZipFolderFix1(java.lang.String,java.lang.String)>->$r3",
              "url": "/Volumes/dev/zijie/appshark-opensource/out/vuln/1-unZipSlip.html",
              "target": [
                "<net.bytedance.security.app.pathfinder.testdata.ZipSlip: void UnZipFolderFix1(java.lang.String,java.lang.String)>->$r3",
                "pf{obj{<net.bytedance.security.app.pathfinder.testdata.ZipSlip: void UnZipFolderFix1(java.lang.String,java.lang.String)>:35=>java.lang.StringBuilder}(unknown)->@data}",
                "<net.bytedance.security.app.pathfinder.testdata.ZipSlip: void UnZipFolderFix1(java.lang.String,java.lang.String)>->$r11",
                "<net.bytedance.security.app.pathfinder.testdata.ZipSlip: void UnZipFolderFix1(java.lang.String,java.lang.String)>->$r31"
              ]
            },
            "hash": "ec57a2a3190677ffe78a0c8aaf58ba5aee4d2247",
            "possibility": "4"
          },
          {
            "details": {
              "position": "<net.bytedance.security.app.pathfinder.testdata.ZipSlip: void UnZipFolder(java.lang.String,java.lang.String)>",
              "Sink": "<net.bytedance.security.app.pathfinder.testdata.ZipSlip: void UnZipFolder(java.lang.String,java.lang.String)>->$r34",
              "entryMethod": "<net.bytedance.security.app.pathfinder.testdata.ZipSlip: void f()>",
              "Source": "<net.bytedance.security.app.pathfinder.testdata.ZipSlip: void UnZipFolder(java.lang.String,java.lang.String)>->$r3",
              "url": "/Volumes/dev/zijie/appshark-opensource/out/vuln/2-unZipSlip.html",
              "target": [
                "<net.bytedance.security.app.pathfinder.testdata.ZipSlip: void UnZipFolder(java.lang.String,java.lang.String)>->$r3",
                "pf{obj{<net.bytedance.security.app.pathfinder.testdata.ZipSlip: void UnZipFolder(java.lang.String,java.lang.String)>:33=>java.lang.StringBuilder}(unknown)->@data}",
                "<net.bytedance.security.app.pathfinder.testdata.ZipSlip: void UnZipFolder(java.lang.String,java.lang.String)>->$r14",
                "<net.bytedance.security.app.pathfinder.testdata.ZipSlip: void UnZipFolder(java.lang.String,java.lang.String)>->$r34"
              ]
            },
            "hash": "26c6d6ee704c59949cfef78350a1d9aef04c29ad",
            "possibility": "4"
          }
        ],
        "wiki": "",
        "deobfApk": "/Volumes/dev/zijie/appshark-opensource/app.apk"
      }
    }
  },
  "DeepLinkInfo": {
  },
  "HTTP_API": [
  ],
  "JsBridgeInfo": [
  ],
  "BasicInfo": {
    "ComponentsInfo": {
    },
    "JSNativeInterface": [
    ]
  },
  "UsePermissions": [
  ],
  "DefinePermissions": {
  },
  "Profile": "/Volumes/dev/zijie/appshark-opensource/out/vuln/3-profiler.json"
}

Licencia

AppShark está licenciado bajo la APACHE LICENSE, VERSION 2.0

Aviso de seguridad

UI/Server es una herramienta auxiliar de prueba que no debe usarse en entornos de producción y solo puede desplegarse para pruebas locales.

Contáctanos

Lark

Descargar herramienta