Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
AMDH — Укрепление безопасности мобильных устройств Android | Kitploit
Инструменты/GitHubGitHub/a-yatta/amdh
Безопасность AndroidСтатический анализПентестинг мобильных приложенийАудит конфигурацииФорензикаАнализ вредоносных программМобильная безопасность
GitHuba-yatta/amdh

AMDH

Укрепление безопасности мобильных устройств Android

Репозиторий
22227513 лет назадПроверено Kitploit

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

AMDH

Укрепление мобильных устройств Android, написанное на Python3.

Версия для Android, PObY-A (Privacy Owned by You - Android), с сканированием вредоносных программ и настроек, доступна в Play Store, а исходный код можно найти ЗДЕСЬ

Загрузить в Google Play

Мотивация

AMDH был создан, чтобы помочь автоматизировать сканирование установленных приложений на устройствах Android, обнаруживать некоторые известные вредоносные программы а также защищать конфиденциальность.

Возможности

  • Проверка и укрепление системных настроек на основе некоторых контрольных проверок CIS (Center of Internet Security) для устройств Android и документации настроек ветки Android master (Global settings и Secure settings)
  • Список процессов текущего пользователя и завершение выбранных
  • Анализ текущих установленных приложений на устройстве:
    • вывод опасных разрешений
      и отзыв их
    • сравнение с разрешениями, используемыми вредоносными программами
    • создание отчета в формате JSON
  • Список приложений:
    • удаление/отключение приложения
    • отзыв администраторов приемников
  • Дамп APK установленных приложений
  • Проверка, есть ли ожидающие обновления системы
  • Извлечение упакованных APK, если они есть

Требования

  • Python3
  • Установленный Android Debug Bridge (ADB)
  • androguard
  • pwntools

Установка

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

Использование

Примечание: Для Windows необходимо указать путь к ADB или изменить переменную "adb_windows_path" в "config/main.py".

Внимание: при использовании аргумента -l с включённым параметром приложений '-t e' будут отображены системные приложения. Удаление системных приложений может нарушить работу вашей Android-системы. Для системных приложений рекомендуется использовать 'disable' вместо 'uninstall'.

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

Документация и справка

Тесты и версия CIS

  • Протестировано на Android 7.1.1, 8, 9 и 10
  • Версия CIS: 1.3.0

Обнаружение вредоносных программ

Сравните предоставленные разрешения с разрешениями, описанными в файле malware_perms.json. Файл содержит три узла:

  • malware_only: разрешения, используемые только вредоносными программами
  • all: разрешения, используемые как вредоносными, так и легитимными приложениями
  • combinations: комбинации разрешений, используемые в основном вредоносными программами

Только разрешения вредоносных программ

Разрешения вредоносных программ — это те, которые используются только вредоносными программами. Проанализированные вредоносные программы взяты из репозиториев:

  • 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

Команда "aapt" использовалась для дампа разрешений. Вторая часть заключалась в дампе разрешений легитимных приложений (около 400 приложений). Только разрешения вредоносных программ — это разрешения, которые используются вредоносными программами и никогда не встречаются в проанализированных легитимных приложениях.

Все разрешения

Все разрешения используются как вредоносными, так и легитимными приложениями. Значения указывают процент использования этих разрешений вредоносными программами по сравнению с легитимными приложениями.

Статический анализ

  • Поиск, дамп и список опасных разрешений упакованных APK с помощью androguard
  • Дамп библиотек и сканирование на известные нативные функции вредоносных программ с помощью pwntools

Снимок

Снимок может помочь отслеживать состояние системы и создавать резервные копии данных телефона:

  • приложения и их разрешения
  • системные настройки
  • контакты
  • SMS

Известные проблемы

  • Команда "pm revoke" возвращает успешный код завершения, но не отзывает разрешения для некоторых вредоносных программ.
  • Резервное копирование SMS может не работать на некоторых устройствах, так как оболочка ADB не имеет разрешения на доступ к базе данных SMS. В случае возникновения, пожалуйста, создайте issue.

Примеры

Сканирование

  • Сканирование приложений
root@kitploit:~
(amdh)$ python amdh.py -d SERIAL1,SERIAL2,SERIAL3 -sA -o reports

Для каждого устройства в папке "reports" создаются два файла:

  • SERIAL.log
  • SERIAL_report_apps.json: JSON-файл, содержащий для каждого приложения его предоставленные разрешения и те, которые считаются опасными. Каждая запись выглядит следующим образом:
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,
        }
    }
}
  • Сканирование настроек
root@kitploit:~
(amdh)$ python amdh.py -sS

Отчёт создаётся с именем "SERIAL_report_settings.json" в папке "out" (папка вывода по умолчанию).

Укрепление

  • Укрепление приложений
root@kitploit:~
(amdh)$ python amdh.py -sA -R -rar

Тот же отчёт, что и при сканировании приложений, с добавлением следующих двух ключей:

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

Ключ is_device_admin_revoked не будет в результате, если приложение не является администратором устройства

  • Укрепление настроек
root@kitploit:~
(amdh)$ python amdh.py -sS -H -o reports

Отчёт и файл журнала создаются в каталоге "reports".

Статический анализ и множественное удаление/отключение приложений (интерактивно)

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

Список текущих запущенных процессов пользователя

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

Снимок

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

Папка "out" будет содержать подпапку "SERIAL_DATE-TIME". Где DATE-TIME имеет формат "YYYY-MM-DD-hh:mm:ss".

Сравнение снимков

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": []
}

Восстановление снимка: Приложения

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"
            }
        }
    }
}

Сборка бинарного файла

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

Выходной бинарный файл: dist/amdh.

Участие и идеи

Спасибо за интерес к этому проекту! Если у вас есть идеи по улучшению этого инструмента, пожалуйста, создайте новый issue или отправьте pull request.

Скачать инструмент
  • Статический анализ для обнаружения вредоносных программ. Текущие обнаруженные вредоносные программы:
    • ActionSpy
    • WolfRat
    • Anubis
  • Создание снимка текущего состояния телефона в JSON-файл:
    • Приложения:
      • APK
      • время первой установки
      • время последнего обновления
      • текущие разрешения
      • является ли приложение администратором устройства
    • SMS: текущие SMS-сообщения
    • Контакты: текущий список контактов
    • Резервное копирование приложений, для которых включено резервное копирование
  • Сравнение снимков с текущим состоянием телефона
    • Приложения
    • Настройки
  • Восстановление снимка
    • Приложения
    • Контакты
  • Управление несколькими устройствами одновременно (сравнение снимков и восстановление пока не поддерживаются)
    • Для каждого устройства создается новый поток
  • HTML-отчет