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. Мы предоставляем услуги по аудиту мобильных приложений, проведению пентестов, обучению специалистов и разработке безопасных решений под ключ.