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
AMDH — Endurecimiento de Dispositivos Móviles Android | Kitploit
Herramientas/GitHubGitHub/a-yatta/amdh
Seguridad AndroidAnálisis EstáticoPentesting de Apps MóvilesAuditoría de ConfiguraciónAnálisis ForenseAnálisis de MalwareSeguridad Móvil
GitHuba-yatta/amdh

AMDH

Endurecimiento de Dispositivos Móviles Android

Ver Repositorio
222274hace 3 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

AMDH

Endurecimiento de dispositivos móviles Android escrito con python3.

La versión para Android, PObY-A (Privacy Owned by You - Android), con escaneos de malware y configuraciones está disponible en Play Store y el código fuente se puede encontrar AQUÍ

Motivaciones

AMDH fue creado para ayudar a automatizar el escaneo de aplicaciones instaladas en dispositivos Android, detectar algunos malware conocidos y también proteger la privacidad.

Características

  • Verificar y endurecer la configuración del sistema basándose en algunas evaluaciones de referencia CIS (Centro de Seguridad en Internet) para dispositivos Android y la documentación de configuración de la rama maestra de Android (Configuración global y Configuración segura)
  • Listar procesos de usuarios actuales y finalizar los seleccionados
  • Analizar las aplicaciones instaladas actualmente en el dispositivo:
    • listar permisos peligrosos y revocarlos
    • comparar con permisos usados por malware
    • generar informe en formato JSON
  • Listar aplicaciones:
    • desinstalar/deshabilitar aplicación
    • revocar receptores de administrador
  • Extraer APKs de aplicaciones instaladas
  • Verificar si el sistema tiene actualizaciones pendientes
  • Extraer APKs empaquetados si existen

Requisitos

  • Python3
  • Android Debug Bridge (ADB) instalado
  • androguard
  • pwntools

Instalación

root@kitploit:~
$ git clone https://github.com/SecTheTech/AMDH.git; cd AMDH
$ python3 -m venv amdh
$ source amdh/bin/activate
(amdh) $ pip install -r requirement.txt

Uso

Nota: Para Windows debes especificar la ruta de ADB o editar la variable "adb_windows_path" en "config/main.py".

Advertencia: al usar el argumento -l con la opción de aplicación habilitada '-t e', se listarán las aplicaciones del sistema. Desinstalar aplicaciones del sistema puede dañar tu sistema Android. Se recomienda usar 'disable' en lugar de 'uninstall' para las aplicaciones del sistema.

root@kitploit:~
$ python amdh.py -h
usage: amdh.py [-h] [-d DEVICES] [-sS] [-sA] [-H] [-a ADB_PATH] [-t {e,d,3,s}] [-D APKS_DUMP_FOLDER] 
          [-rar] [-R] [-l] [-P] [-S SNAPSHOT_DIR] [-cS SNAPSHOT_REPORT] [-rS SNAPSHOT_TO_RESTORE] [-o OUTPUT_DIR]

Android Mobile Device Hardening

optional arguments:
  -h, --help            show this help message and exit
  -d DEVICES, --devices DEVICES
                        list of devices separated by comma or "ALL" for all connected devices
  -sS                   Scan the system settings
  -sA                   Scan the installed applications
  -H                    Harden system settings /!\ Developer Options and ADB will be disabled /!\ 
  -a ADB_PATH, --adb-path ADB_PATH
                        Path to ADB binary
  -t {e,d,3,s}          Type of applications:
                                e: enabled Apps
                                d: disabled Apps
                                3: Third party Apps
                                s: System Apps
  -D APKS_DUMP_FOLDER, --dump-apks APKS_DUMP_FOLDER
                        Dump APKs from device to APKS_DUMP_FOLDER directory
  -rar                  Remove admin receivers: Remove all admin receivers if the app is not a system App
                        Scan application option "-sA" is required
  -R                    For each app revoke all dangerous permissions
                        Scan application option "-sA" is required
  -l                    List numbered applications to disable, uninstall or analyze
  -P                    List current users processes
  -S SNAPSHOT_DIR, --snapshot SNAPSHOT_DIR
                        Snapshot the current state of the phone to a json file and backup applications into SNAPSHOT_DIR
  -cS SNAPSHOT_REPORT, --cmp-snapshot SNAPSHOT_REPORT
                        Compare SNAPSHOT_REPORT with the current phone state
  -rS SNAPSHOT_TO_RESTORE, --restore-snapshot SNAPSHOT_TO_RESTORE
                        Restore SNAPSHOT_TO_RESTORE
  -o OUTPUT_DIR, --output-dir OUTPUT_DIR
                        Output directory for reports and logs. Default: out

Documentación y Ayuda

Pruebas y versión CIS

  • Probado en Android 7.1.1, 8, 9 y 10
  • Versión CIS: 1.3.0

Detección de malware

Compara los permisos otorgados con los permisos descritos en el archivo malware_perms.json. El archivo contiene tres nodos:

  • malware_only: permisos usados solo por malware
  • all: permisos usados por malware y aplicaciones legítimas
  • combinations: combinaciones de permisos usadas principalmente por malware

permisos solo de malware

Los permisos solo de malware son aquellos que solo usa el malware. El malware analizado proviene de los repositorios:

  • https://github.com/ashishb/android-malware
  • https://github.com/sk3ptre/AndroidMalware_2018
  • https://github.com/sk3ptre/AndroidMalware_2019
  • https://github.com/sk3ptre/AndroidMalware_2020
  • https://github.com/MalwareSamples/Android-Malware-Samples

El comando "aapt" fue usado para volcar los permisos. La segunda parte fue volcar los permisos de aplicaciones legítimas (alrededor de 400 aplicaciones). Los permisos solo de malware son aquellos que usa el malware y nunca aparecen en las aplicaciones legítimas analizadas.

Todos los permisos

Todos los permisos son usados tanto por malware como por aplicaciones legítimas. Los valores son porcentajes de cuánto malware usó estos permisos en comparación con las aplicaciones legítimas.

Análisis estático

  • Encontrar, volcar y listar permisos peligrosos de APKs empaquetados usando androguard
  • Volcar bibliotecas y escanear funciones nativas de malware conocidas usando pwntools

Captura instantánea

La captura instantánea puede ayudar a monitorear el estado del sistema y respaldar los datos del teléfono:

  • aplicaciones y sus permisos
  • configuración del sistema
  • Contactos
  • SMS

Problemas conocidos

  • El comando "pm revoke" devuelve código de éxito pero no revoca permisos para algunos malware.
  • La copia de seguridad de SMS puede fallar en algunos dispositivos ya que el shell de ADB no tiene permiso para acceder a la base de datos de SMS. En caso de que se encuentre, por favor crea un issue.

Ejemplos

Escanear

  • Escanear aplicaciones
root@kitploit:~
(amdh)$ python amdh.py -d SERIAL1,SERIAL2,SERIAL3 -sA -o reports

Se generan dos archivos para cada dispositivo en la carpeta "reports":

  • SERIAL.log
  • SERIAL_report_apps.json: archivo JSON que contiene para cada aplicación sus permisos otorgados, y aquellos considerados peligrosos. Cada entrada es la siguiente:
root@kitploit:~
{
    "com.package.name": {
        "malware": true,
        "permissions": {
            "all_permissions": [
                "com.google.android.finsky.permission.BIND_GET_INSTALL_REFERRER_SERVICE",
                "com.google.android.c2dm.permission.RECEIVE",
                "com.google.android.providers.gsf.permission.READ_GSERVICES",
                "android.permission.WRITE_SYNC_SETTINGS",
                "android.permission.RECEIVE_BOOT_COMPLETED",
                "android.permission.AUTHENTICATE_ACCOUNTS"
            ],
            "dangerous_perms": {
                "android.permission.ACCESS_FINE_LOCATION": "This app can get your location based on GPS or network location sources such as cell towers and Wi-Fi networks. These location services must be turned on and available on your phone for the app to be able to use them. This may increase battery consumption.",
                "android.permission.READ_EXTERNAL_STORAGE": "Allows the app to read the contents of your SD card.",
                "android.permission.ACCESS_COARSE_LOCATION": "This app can get your location based on network sources such as cell towers and Wi-Fi networks. These location services must be turned on and available on your phone for the app to be able to use them.",
                "android.permission.CAMERA": "This app can take pictures and record videos using the camera at any time.",
                "android.permission.WRITE_EXTERNAL_STORAGE": "Allows the app to write to the SD card."
            },
            "is_device_admin": false,
        }
    }
}
  • Escanear configuración
root@kitploit:~
(amdh)$ python amdh.py -sS

Se genera un informe con el nombre "SERIAL_report_settings.json" en la carpeta "out" (carpeta de salida por defecto).

Endurecer

  • endurecimiento de aplicaciones
root@kitploit:~
(amdh)$ python amdh.py -sA -R -rar

Mismo informe que el escaneo de aplicaciones con la adición de estas dos claves:

root@kitploit:~
   "is_device_admin_revoked": true,
   "revoked_dangerous_pemissions": "succeeded"

La clave is_device_admin_revoked no estará en el resultado si la aplicación no es administradora del dispositivo.

  • endurecimiento de configuración
root@kitploit:~
(amdh)$ python amdh.py -sS -H -o reports

Se generan un informe y un archivo de registro en el directorio "reports".

Análisis estático y desinstalación/deshabilitación de múltiples aplicaciones (interactivo)

root@kitploit:~
(amdh)$ python amdh.py -l

Listar procesos de usuario en ejecución actuales

root@kitploit:~
(amdh)$ python amdh.py -P -d SERIAL1,SERIAL2 

Captura instantánea

root@kitploit:~
(amdh)$ python amdh.py -S out
[-] INFO: Start ...
Unlock device SERIAL and press ENTER key to continue
[-] INFO: Finished

La carpeta "out" contendrá una subcarpeta "SERIAL_DATE-TIME". Donde DATE-TIME tiene el formato "YYYY-MM-DD-hh:mm:ss".

Comparación de capturas

root@kitploit:~
(amdh)$ python amdh.py -cS out/report.json
[-] INFO: Start ...

[-] INFO: Installed Apps after snapshot was taken
{}
[-] INFO: Apps exists in snapshot
{
    "com.package.name1": {
        "firstInstallTime": "2020-07-06 18:53:07",
        "lastUpdateTime": "2020-07-06 18:53:07",
        "grantedPermissions": [
            "com.google.android.c2dm.permission.RECEIVE",
            "android.permission.USE_CREDENTIALS",
            "android.permission.MODIFY_AUDIO_SETTINGS",
            "com.google.android.providers.gsf.permission.READ_GSERVICES",
            "android.permission.MANAGE_ACCOUNTS",
            "android.permission.NFC"
        ],
        "deviceAdmin": false,
        "apk": "com.package.name1.apk"
    },
    "com.package.name2": {
        "firstInstallTime": "2020-07-10 23:57:53",
        "lastUpdateTime": "2020-07-10 23:57:53",
        "grantedPermissions": [
            "android.permission.DOWNLOAD_WITHOUT_NOTIFICATION",
            "com.google.android.c2dm.permission.RECEIVE",
            "android.permission.USE_CREDENTIALS",
            "android.permission.MODIFY_AUDIO_SETTINGS",
            "org.thoughtcrime.securesms.ACCESS_SECRETS",
            "android.permission.ACCESS_NOTIFICATION_POLICY",
            "android.permission.CHANGE_NETWORK_STATE",
            "android.permission.FOREGROUND_SERVICE",
            "android.permission.WRITE_SYNC_SETTINGS"
        ],
        "deviceAdmin": false,
        "backup": "com.package.name2.ab",
        "apk": "com.package.name2.apk"
    }
}
[-] INFO: Uninstalled after snapshot was taken
{
    "com.package.name3": {
        "firstInstallTime": "2020-07-18 07:56:44",
        "lastUpdateTime": "2020-07-18 07:56:44",
        "grantedPermissions": [
            "android.permission.INTERNET",
            "android.permission.ACCESS_NETWORK_STATE"
        ],
        "deviceAdmin": false,
        "backup": "com.package.name3.ab",
        "apk": "com.package.name3.apk"
    }
}
[-] INFO: Changed settings after snapshot was taken
{
    "global": [
        "stay_on_while_plugged_in"
    ],
    "secure": [],
    "system": []
}

Restauración de captura: Aplicaciones

root@kitploit:~
(amdh)$ python amdh.py -d SERIAL -rS out/report.json
[-] INFO: Start ...
Unlock device SERIAL and press ENTER key to continue
[-] INFO: Starting restore
[-] INFO: Restore finished
[-] INFO: Restore report
{
    "apps": {
        {
            "com.package.name1": {
                "install": "success",
                "backup": "restored"
            },
            "com.package.name2": {
                "install": "success",
                "backup": "NOT FOUND"
            },
            "com.package.name3": {
                "install": "success",
                "backup": "restored"
            }
        }
    }
}

Construcción del binario

root@kitploit:~
(amdh) $ pip install pyinstaller 
(amdh) $ pyinstaller --clean amdh.spec

Binario de salida: dist/amdh.

Participación e ideas

¡Gracias por tu interés en este proyecto! Si tienes alguna idea sobre cómo mejorar esta herramienta, por favor crea un nuevo issue o envía un pull request.

Descargar herramienta
  • Análisis estático para detección de malware. Malware actualmente detectado:
    • ActionSpy
    • WolfRat
    • Anubis
  • Capturar el estado actual del teléfono en un archivo JSON:
    • Aplicaciones:
      • APK
      • primera hora de instalación
      • última hora de actualización
      • permisos actuales
      • si la aplicación es administradora del dispositivo
    • SMS: mensajes SMS actuales
    • Contactos: lista actual de contactos
    • Respaldar aplicaciones que tengan habilitada la copia de seguridad
  • Comparación de capturas con el estado actual del teléfono
    • Aplicaciones
    • Configuración
  • Restaurar captura
    • Aplicaciones
    • Contactos
  • Gestionar múltiples dispositivos a la vez (la comparación y restauración de capturas aún no son compatibles)
    • Para cada dispositivo se crea un nuevo hilo
  • Informe HTML