APKDeepLens — анализ APK-файлов на Android Termux

APKDeepLens aнализ APK файлов Android Termux

Тема сегодняшней статьи — анализ APK-файлов на Android. Напомню, что мы уже рассказывали про использование MobSF для анализа APK-файлов. Сегодня продолжим эту тему и рассмотрим инструмент APKDeepLens. Я покажу, как установить и запустить его на не рутированном Android устройстве с помощью Termux. Это дает возможность анализировать Android-приложения прямо на устройстве.

Еще по теме: Декомпиляция APK-файлов онлайн

Использование APKDeepLens для анализа APK-файлов

APKDeepLens — это инструмент на базе Python, который используется для сканирования Android-приложений (APK-файлов) с целью выявления потенциальных уязвимостей безопасности, с особым акцентом на OWASP Top 10 уязвимостей мобильных устройств. Он был представлен на Blackhat MEA 2023, а также будет продемонстрирован на Blackhat ASIA 2024. Инструмент разработан для Windows и Linux.

Функционал APKDeepLens

APKDeepLens использует jadx для декомпиляции APK-файла. Используя декомпилированный исходный код, он будет искать определенные строки, разбирая вывод. На выходе вы получите:

  • Название пакета
  • Код версии сборки
  • Версия скомпилированного SDK
  • Разрешения
  • Небезопасные разрешения
  • Активности
  • Экспортируемые активности
  • Сервисы
  • Экспортируемые сервисы
  • Получатели
  • Экспортированные получатели
  • Поставщики
  • Пути к файлам
  • Зашифрованные секреты (IP-адреса, токены, API-ключи, закрытые ключи и т. д.)
  • Небезопасные соединения (http, ftp, smtp, JavaScript).

Результаты сканирования могут привести к выявлению потенциальных точек входа, которые могут привести к обнаружению уязвимостей приложения. Однако без дополнительного ручного анализа сделать это будет очень сложно. По умолчанию результаты сканирования отображаются в консоли, но отчет можно сохранить в json, pdf или html-файл.

Установка APKDeepLens в Termux

Процесс установки для настольных компьютеров довольно легкий. Но вот, процесс установки на Android в Termux немного отличается. Перед установкой нужно установить Termux с GitHub или из магазина F-Droid. Главное — не устанавливать его из Google Play, потому что сборки Termux в магазине Google Play устарели и больше не поддерживаются.

Кроме того, необходимо установить Java Development Kit, задать переменную окружения JAVA_HOME и решить вопрос с библиотекой xhtml2pdf, которая отвечает за генерацию pdf-вывода.

Перед установкой убедитесь, что вы обновились, установили java и задали переменную окружения с помощью команд:

Перезапустите Termux, чтобы применить изменения.

Продолжите установку APKDeepLens с помощью команд:

Установка требований приводит к ошибке, в результате которой модуль xhtml2pdf не будет установлен. Этот модуль отвечает за генерацию отчетов в формате pdf. Мне не удалось устранить эту ошибку, но я смог обойти ее, отредактировав и закомментировав импорт модуля в файле report_gen.py, см. скрин ниже. В результате теперь тулза не может генерировать отчеты в формате pdf.

Комментарий модуля xhtml2pdf в файле report_get.py
Комментарий модуля xhtml2pdf в файле report_get.py

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

Теперь можно запустить APKDeepLens в Termux. Список параметров можно получить с помощью команды:

APKDeepLens в Termux
APKDeepLens в Termux

Чтобы выполнить сканирование приложения, введите путь к файлу приложения Android в качестве параметра -apk. Результат анализа отображается в терминале, как показано ниже.

Результат сканирования
Результат сканирования

Анализ установленных приложений

С помощью APKdeepLens можно анализировать не только загруженные apk-файлы (из альтернативных источников), но и уже установленные приложения. Все, что вам нужно, — это найти путь к файлу анализируемого приложения. Apk-файлы располагаются по произвольному порядке.

Чтобы получить путь к файлу для всех установленных сторонних приложений, можно воспользоваться командой:

В выводе будут указаны пути к apk-файлам и имя пакета, идентифицирующего приложение.

Можно вручную составить список или использовать grep для фильтрации определенных приложений по ключевому слову. В приведенном ниже примере я буду искать приложение Facebook:

Поиск пути к файлу установленного приложения по ключевому слову
Поиск пути к файлу установленного приложения по ключевому слову

Из полученного результата скопируйте путь к приложению и вставьте его в APKDeepLens в качестве аргумента -apk.

Анализ установленного приложения Facebook
Анализ установленного на Android приложения Facebook

Есть один недостаток. Данный инструмент сохраняет результаты сканирования в каталоге apk-имен файлов в app_sources. Это означает, что при сканировании установленных приложений вам всегда нужно удалять или переименовывать декомпилированные исходники, например, каталог:

На скрине ниже я удалил декомпилированные данные, иначе они не будут перезаписаны APKdeepLens.

Удаление директории для вывода base.apk
Удаление директории для вывода base.apk

Заключение

Данный инструмент может предложить возможности анализа разрешений и поиска потенциальных секретов приложения, таких как жестко закодированные токены, ключи API, IP-адреса и т. д. Его цель — помочь пользователям понять поведение приложения.

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

ПОЛЕЗНЫЕ ССЫЛКИ:

QUASAR

Этичный хакер: компьютерный ниндзя и мастер цифровых тайн.

Добавить комментарий