Знакомая ситуация: вы запускаете Frida-скрипт с CodeShare, ждёте трафик в Burp Suite — а там пусто. Приложение использует
OkHttp3 с CertificatePinner, плюс кастомную проверку целостности APK при старте. Стандартный скрипт молча отваливается, а вы даже не понимаете почему.Именно так начался один из пентестов e-commerce маркетплейса. Четыре часа ушло на декомпиляцию в jadx, поиск конкретного класса с пиннингом и написание точечного хука. После этого IDOR в платёжном API нашёлся за 15 минут. Вся суть мобильного пентеста в одном примере.
🔧 Вот что ломается чаще всего на старте:
• Версия frida-server не совпадает с frida-tools — причина ошибки «Failed to spawn» в каждом втором обращении на форумах. Проверяйте через
frida --version и качайте сервер строго той же версии.• Образ эмулятора с надписью «Google Play» — production-сборка, root недоступен в принципе. Нужен образ с Google APIs, но без Google Play. Классическая ловушка, в которую попадают все хотя бы раз.
• На Android 7+ пользовательские CA-сертификаты не доверяются приложениями по умолчанию. Даже без SSL pinning трафик не пойдёт через Burp, пока сертификат не окажется в системном хранилище
/system/etc/security/cacerts/.📱 Отдельная боль — эмулятор-детекция. Приложение проверяет
ro.hardware, ro.product.model, ищет QEMU-артефакты и отказывается работать. Решение — физический Pixel с unlocked bootloader и Magisk. На практике удобно держать оба варианта: эмулятор для статического анализа, физическое устройство — когда эмулятор не проходит проверки.Лайфхак с Magisk: вместо десяти команд для установки сертификата Burp в системный раздел — поставьте модуль MagiskTrustUserCerts. Устанавливаете сертификат штатно через настройки безопасности, модуль перемещает его в системное хранилище при перезагрузке. Три клика вместо десяти команд.
🎯 Главное, что стоит помнить: APK — это обёртка, цель — серверное API. Root-detection, anti-tampering, SSL pinning — всё это клиентские защиты категорий MASVS-RESILIENCE и MASVS-NETWORK. Они усложняют тестирование, но серверные уязвимости никуда не деваются. Сервер остаётся дырявым вне зависимости от того, проверяет ли клиент наличие
su-бинаря.В полной статье — пошаговая настройка окружения, конкретные команды для каждого этапа и разбор случаев, когда стандартный tooling молча ломается. Всё, что нужно, чтобы дойти от чистого эмулятора до перехваченного трафика.
https://codeby.net/threads/pentest-android-prilozhenii-ot-nastroiki-okruzheniya-do-obkhoda-root-detection-i-ssl-pinning.93723/
