We detected you are likely not from a Russian-speaking region. Would you like to switch to the international version of the site?

  Назад к списку статей

Termux как платформа для тестирования уязвимостей Android‑приложений

Termux – это легковесный эмулятор терминала для Android, предоставляющий полноценный Linux‑окружение без необходимости рутировать устройство. Благодаря широкому набору пакетов и возможности установки сторонних утилит, Termux становится удобной площадкой для проведения тестирования уязвимостей Android‑приложений прямо на мобильном устройстве.

Установка Termux и базовая настройка

Для начала установите Termux из официального репозитория F‑Droid или Google Play. После первого запуска выполните обновление репозиториев и базовых пакетов:

pkg update && pkg upgrade -y

Установите основные инструменты, которые понадобятся в дальнейшем:

pkg install -y git python clang make wget curl unzip zip tar

Создание среды для анализа Android‑приложений

Для работы с APK‑файлами нам потребуются такие инструменты, как apktool, jadx, MobSF и frida. Ниже представлены шаги их установки.

apktool

wget https://raw.githubusercontent.com/iBotPeaches/Apktool/master/scripts/linux/apktool -O $PREFIX/bin/apktool
chmod +x $PREFIX/bin/apktool
wget https://github.com/iBotPeaches/Apktool/releases/download/v2.9.3/apktool_2.9.3.jar -O $PREFIX/bin/apktool.jar

jadx

wget https://github.com/skylot/jadx/releases/download/v1.4.7/jadx-1.4.7.zip -O /tmp/jadx.zip
unzip /tmp/jadx.zip -d $HOME/jadx
ln -s $HOME/jadx/jadx/bin/jadx $PREFIX/bin/jadx

MobSF (Mobile Security Framework)

MobSF требует Python 3 и несколько зависимостей. Выполните:

pkg install -y python clang libffi-dev openssl-dev
pip install -U pip setuptools wheel
git clone https://github.com/MobSF/Mobile-Security-Framework-MobSF.git $HOME/MobSF
cd $HOME/MobSF
pip install -r requirements.txt

Запустить сервер можно командой:

python manage.py runserver 127.0.0.1:8000

Frida

Frida позволяет выполнять динамический анализ и внедрять скрипты в работающие процессы. Установите клиент и серверную часть:

pip install frida-tools
# Установите frida-server, соответствующий архитектуре вашего устройства
wget https://github.com/frida/frida/releases/download/16.2.1/frida-server-16.2.1-android-arm64.xz -O /tmp/frida-server.xz
unxz /tmp/frida-server.xz
chmod +x /tmp/frida-server
mv /tmp/frida-server $PREFIX/bin/

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

Для начала разберём приложение на составляющие:

apktool d target_app.apk -o decoded_app

Полученные ресурсы (манифест, smali‑коды) можно просмотреть вручную или проанализировать скриптами. Для декомпиляции Java‑кода удобно использовать jadx:

jadx -d jadx_output target_app.apk

Если требуется более глубокий анализ, загрузите APK в MobSF через веб‑интерфейс http://127.0.0.1:8000. MobSF автоматически выполнит проверку на известные уязвимости, небезопасные конфигурации и выдаст отчёт.

Динамический анализ с Frida

Для динамического тестирования необходимо запустить целевое приложение и подключить Frida‑сервер к устройству. После этого можно использовать готовые скрипты или написать свои.

# Запуск frida-server в фоне
frida-server &
# Список запущенных процессов
frida-ps -U
# Подключение к процессу и перехват метода
frida -U -f com.example.target -l hook.js --no-pause

Пример простого скрипта hook.js, перехватывающего вызов getDeviceId():

Java.perform(function () {
    var TargetClass = Java.use('com.example.target.DeviceUtils');
    TargetClass.getDeviceId.implementation = function () {
        console.log('getDeviceId called');
        return 'deadbeef';
    };
});

Автоматизация тестов

Для упрощения повторяющихся проверок удобно собрать набор Bash‑скриптов. Ниже пример скрипта, который последовательно выполняет статический и динамический анализ:

#!/data/data/com.termux/files/usr/bin/bash
APK=$1
if [ -z "$APK" ]; then
    echo "Usage: $0 "
    exit 1
fi
# Статический анализ
apktool d "$APK" -o decoded
jadx -d jadx_out "$APK"
# Запуск MobSF (если не запущен)
if ! pgrep -f "manage.py runserver" > /dev/null; then
    (cd $HOME/MobSF && python manage.py runserver 127.0.0.1:8000 &)
    sleep 5
fi
# Динамический анализ (пример с Frida)
frida -U -f $(aapt dump badging "$APK" | grep package:\ name | cut -d"'" -f2) -l hook.js --no-pause

Лучшие практики безопасности при работе в Termux

  • Регулярно обновляйте пакеты: pkg update && pkg upgrade.
  • Не храните чувствительные данные (ключи, токены) в открытом виде; используйте pass или зашифрованные файлы.
  • Запускайте скрипты только из проверенных источников; проверяйте подписи и хеши.
  • При работе с Frida‑server используйте только проверенные версии, совместимые с архитектурой устройства.
  • Ограничьте сетевой доступ Termux, используя iptables или VPN, если требуется изоляция.

Заключение

Termux предоставляет всё необходимое для проведения как статического, так и динамического анализа Android‑приложений без необходимости рутировать устройство. С помощью наборов инструментов apktool, jadx, MobSF и Frida можно быстро выявлять уязвимости, проверять безопасность кода и автоматизировать процесс тестирования. При необходимости масштабировать работу, интегрировать результаты в CI/CD или получать профессиональную оценку, обращайтесь в RybinskLab. Мы предоставляем услуги по аудиту мобильных приложений, проведению пентестов, обучению специалистов и разработке безопасных решений под ключ.

* Текст статьи подготовлен и структурирован с использованием технологий искусственного интеллекта. Проверен экспертом RybinskLab.

Поделиться знанием:

Нужна профессиональная помощь?

Меня зовут Усачёв Денис Евгеньевич. Я оказываю IT-услуги в Рыбинске и Ярославской области: настройка серверов, безопасность, автоматизация бизнеса.

Связаться со мной
Поддержать проект