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
AndroPyTool — Un marco para la extracción automatizada de características estáticas y dinámicas de aplicaciones Android | Kitploit
Herramientas/GitHubGitHub/alexmyg/andropytool
Seguridad AndroidAnálisis EstáticoAnálisis Dinámico (Sandboxing)Análisis de MalwareSeguridad Móvil
GitHubalexmyg/andropytool

AndroPyTool

Un marco para la extracción automatizada de características estáticas y dinámicas de aplicaciones Android

Ver Repositorio
38168hace 6 añosRevisado 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

AndroPyTool

¡Actualización! Las imágenes de DroidBox fueron corregidas. El análisis dinámico ya funciona.

Esta es una herramienta para extraer características estáticas y dinámicas de APKs de Android. Combina diferentes herramientas de análisis de aplicaciones Android conocidas como DroidBox, FlowDroid, Strace, AndroGuard o el análisis de VirusTotal. Dado un directorio fuente que contiene archivos APK, AndroPyTool aplica todas estas herramientas para realizar análisis preestáticos, estáticos y dinámicos y genera archivos de características en formatos JSON y CSV, y también permite guardar todos los datos en una base de datos MongoDB.

Para obtener más información, puedes leer los siguientes dos artículos:

  • Martín, A., Lara-Cabrera, R., & Camacho, D. (2018). Android malware detection through hybrid features fusion and ensemble classifiers: the AndroPyTool framework and the OmniDroid dataset. Information Fusion. DOI: 10.1016/j.inffus.2018.12.006

  • Martín, A., Lara-Cabrera, R., & Camacho, D. (2018). A new tool for static and dynamic Android malware analysis. In Data Science and Knowledge Engineering for Sensing Decision Support (pp. 509-516). World Scientific.

Por favor, si usas esta herramienta, cita los trabajos anteriores en tus artículos.

alt text

Cómo instalar

Hay dos formas posibles de instalar y usar AndroPyTool.

MODO A - DOCKER: Descargar un contenedor Docker que contiene todos los archivos necesarios. Esta es la opción recomendada, puedes tener AndroPyTool funcionando en solo dos pasos.

MODO B - CÓDIGO FUENTE: Instalar y configurar todas las bibliotecas necesarias y ejecutar el código fuente de Python.

MODO A - USANDO UN CONTENEDOR DOCKER

Se ha construido un contenedor Docker para proporcionar una versión rápida y confiable de AndroPyTool. Para usar AndroPyTool con Docker solo necesitas:

  • Instalar Docker (si aún no lo has hecho). Sigue las instrucciones aquí. Si no estás usando Ubuntu, cambia al Sistema Operativo correcto.

  • Obtener el contenedor de Docker hub:

    root@kitploit:~
    $ docker pull alexmyg/andropytool
    
  • Ejecutar AndroPyTool lanzando el contenedor:

    root@kitploit:~
    $ docker run --volume=</PATH/TO/FOLDER/WITH/APKS/>:/apks alexmyg/andropytool -s /apks/ <ARGUMENTS>
    

    Necesitas reemplazar </PATH/TO/FOLDER/WITH/APKS/> con una ruta de tu host que contenga los apks a analizar. El argumento "-s" debe proporcionarse como se muestra en la línea anterior, apuntando a /apks/

    NOTA 2: AndroPyTool mueve tus archivos APK a diferentes subcarpetas para generar un directorio de trabajo organizado. Consulta el esquema de estructura de carpetas.

Hay diferentes argumentos que se pueden proporcionar a androPyTool:

  • -h: Muestra el mensaje de ayuda y sale.
  • -all, --allsteps: Ejecuta todos los pasos de AndroPyTool (Recomendado). Para obtener un informe de VirusTotal, también se debe proporcionar el argumento -vt seguido de una clave API de VirusTotal. Si no se proporciona la opción -all, entonces solo se ejecuta el último paso más los argumentos proporcionados.
  • -s SOURCE_FOLDER, --source SOURCE_FOLDER: Carpeta que contiene los APK a analizar. Todas las muestras deben incluir la extensión .apk. Si una ejecución anterior de AndroPyTool fue interrumpida, se debe proporcionar el directorio de trabajo anterior.
  • -S, --single: Guardar análisis individuales por separado. Por defecto: Falso.
  • -f, --filter: Filtrar APK válidos e inválidos (Recomendado).
  • -vt VIRUSTOTAL_API_KEY, --virustotal VIRUSTOTAL_API_KEY: Analizar aplicaciones con el servicio VirusTotal. Debe ir seguido de una clave API de VirusTotal.

MODO B - USANDO EL CÓDIGO FUENTE

NOTA: Este procedimiento solo ha sido probado en Ubuntu

0. Requisitos

  • AndroPyTool tiene una serie de dependencias. Puedes instalarlas todas ejecutando:
    root@kitploit:~
    $ sudo apt-get update
    $ sudo apt-get install -y --no-install-recommends software-properties-common wget git lib32gcc1 lib32ncurses5 lib32stdc++6 lib32z1 libc6-i386 libgl1-mesa-dev python-pip python-dev gcc python-tk curl
    $ sudo add-apt-repository ppa:webupd8team/java -y
    $ sudo apt-get update
    $ sudo echo oracle-java8-installer shared/accepted-oracle-license-v1-1 select true | sudo /usr/bin/debconf-set-selections
    $ sudo apt-get install -y oracle-java8-installer
    $ sudo apt-get install -y python-setuptools
    $ sudo apt-get clean
    

1. Necesitas instalar Android SDK (ve al siguiente paso si ya lo tienes) Los siguientes pasos te permitirán instalar Android SDK en modo No-GUI:

  • Descargar y descomprimir Android SDK:

    root@kitploit:~
    $ cd
    $ wget http://dl.google.com/android/android-sdk_r24.2-linux.tgz
    $ tar -xvf android-sdk_r24.2-linux.tgz
    
  • Agregar Android SDK al PATH (si no usas Bash, por ejemplo si prefieres Zsh, recuerda modificar el archivo correcto). Para ello, agrega estas dos líneas a tu archivo ~/.bashrc:

    root@kitploit:~
    export ANDROID_HOME=$HOME/android-sdk-linux/
    export PATH=$PATH:$ANDROID_HOME/tools
    export PATH=$PATH:$ANDROID_HOME/platform-tools
    
  • Cargar las bibliotecas en la sesión actual con:

    root@kitploit:~
    $ source ~/.bashrc
    

2. Tenemos que instalar el paquete Android 16

  • Instalemos Android 16, que es la versión compatible con DroidBox (la plataforma y la imagen del sistema):

    root@kitploit:~
    $ echo y | android update sdk --filter platform-tools --no-ui --force -a
    $ echo y | android update sdk --filter tools --no-ui --force -a
    $ echo y | android update sdk --filter android-16 --no-ui --force -a
    $ echo y | android update sdk --filter sys-img-armeabi-v7a-android-16 --no-ui -a
    

3. Descarguemos los repositorios

  • Ahora podemos descargar el repositorio de AndroPyTool desde GitHub. Tiene algunas dependencias que también se descargarán. En el caso de DroidBox, también se descarga la última versión del repositorio original de DroidBox para copiar las imágenes del sistema y RAM:
    root@kitploit:~
     $ git clone --recursive https://github.com/alexMyG/AndroPyTool.git
     $ wget https://github.com/alexMyG/AndroPyTool/releases/download/droidbox_images_patched/images_droidbox.zip
     $ unzip -o images_droidbox.zip -d AndroPyTool/DroidBox_AndroPyTool/images
     $ touch AndroPyTool/avclass/__init__.py
    

3. Preparemos DroidBox

  • Necesitamos dar los permisos necesarios a todos los scripts
    root@kitploit:~
    $ chmod 744 AndroPyTool/DroidBox_AndroPyTool/*.sh
    
  • Ahora tenemos que crear el dispositivo Android:
    root@kitploit:~
    $ echo "no" | AndroPyTool/DroidBox_AndroPyTool/createDroidBoxDevice.sh
    

4. Instalemos las bibliotecas de Python requeridas

  • Este repositorio requiere varias bibliotecas de Python. Te recomendamos usar un Entorno Virtual. Si no quieres, ve al siguiente paso: Instalar virtualenv:
    root@kitploit:~
    $ sudo pip install virtualenv
    
    Crear entorno virtual y activarlo:
    root@kitploit:~
    $ virtualenv droidbox_env
    $ source droidbox_env/bin/activate
    
  • Las siguientes bibliotecas de Python son requeridas:
    root@kitploit:~
    $ pip install -r AndroPyTool/requirements.txt
    

5. Ahora podemos ejecutar AndroPyTool

  • Si todo estuvo bien, ahora podemos ejecutar AndroPyTool:
    root@kitploit:~
    $ cd AndroPyTool/
    $ python androPyTool.py -s </PATH/TO/FOLDER/WITH/APKS/>
    
  • Consulta los argumentos disponibles arriba en la sección de Docker

Estructura de carpetas de entrada y salida

ENTRADA: Una carpeta que contiene archivos con extensión ".apk". SALIDA: Una estructura de carpetas que sigue este esquema:

root@kitploit:~
/                      --> carpeta raíz
/samples/              --> muestras, originalmente en la carpeta raíz
/samples/BW/           --> muestras de benignware
/samples/MW/           --> muestras de malware
/invalid_apks/         --> apks inválidos encontrados
/VT_analysis/          --> informes de análisis de VirusTotal
/FlowDroid_outputs/    --> resultados de flowdroid
/FlowDroid_processed/  --> resultados de flowdroid procesados
/DroidBox_outputs/     --> salidas sin procesar de DroidBox
/Dynamic/Droidbox/     --> análisis de Droidbox en JSON
/Dynamic/Strace/       --> análisis de Strace en CSV
/Features_files/       --> archivos de características generados con AndroPyTool

Agradecimientos

  • phamhduy corrigió las imágenes de Droidbox.
Descargar herramienta
  • -cl, --classify: Clasificar aplicaciones entre malware o benignware basándose en los informes de VirusTotal. El argumento --virustotal debe estar configurado.
  • -fw, --flowdroid: Ejecutar flowdroid.
  • -dr, --droidbox: Ejecutar droidbox.
  • -c, --cleanup: Realizar limpieza eliminando archivos temporales de trabajo. Por defecto: Verdadero.
  • -P PACKAGEINDEX, --packgeIndex PACKAGEINDEX: Archivo TXT con todos los paquetes de la API de Android. Por defecto: info/package_index.txt
  • -C CLASSINDEX, --classIndex CLASSINDEX: Archivo TXT con todas las clases de la API de Android. Por defecto: info/class_index.txt
  • -C CLASSINDEX, --classIndex CLASSINDEX: Archivo TXT con todas las clases de la API de Android. Por defecto: info/class_index.txt
  • -SC SYSTEMCOMMANDSINDEX, --systemCommandsIndex SYSTEMCOMMANDSINDEX: Archivo TXT con todos los comandos del sistema. Por defecto: info/system_commands.txt
  • -C CLASSINDEX, --classIndex CLASSINDEX: Archivo TXT con todas las clases de la API de Android. Por defecto: info/class_index.txt
  • -mg MONGODBURI, --mongodbURI MONGODBURI: Exporta el informe generado a una base de datos MongoDB. Requiere dirección de conexión siguiendo el esquema: localhost:27017
  • -csv EXPORTCSV, --cexportCSV EXPORTCSV: Exporta el informe generado a un archivo CSV. Solo se incluyen características estáticas.
  • --color: Permitir colores al imprimir mensajes.
  • --no-color: No usar colores para imprimir mensajes.