Содержание статьи
Уязвимые приложения
Тестировать программы на реальных приложениях не всегда удобно и этично. Есть специально разработанные приложения для обучения пентесту. Классика — Damn Vulnerable Bank. Это приложение выдуманного банка. У программы проблемы с механизмами защиты, в коде прописаны конфиденциальные данные, есть проблемы с сетевой безопасностью и контролем доступа.
В репозитории Vulnerable Mobile Apps for Penetration Testing собраны сразу три классных приложения для обучения пентесту.

Damn Insecure and Vulnerable App (DIVA) включает 13 челленджей для прокачки навыков пентеста приложений.
Sieve — небезопасный менеджер паролей. Приложение создано для демонстрации уязвимостей, связанных с межпроцессным взаимодействием (IPC), в частности с механизмом Content Provider.
Это вторая версия банковского приложения InsecureBankv2. С ним ты прокачаешь навыки атак на шифрование, аутентификацию и сессии, а также потренишь использование небезопасных Broadcast Receivers и экспортированных Activities. Не забудь скачать и запустить сервер с бэкендом и настроить коннект к нему в приложении.
Запуск сервера:
git clone https://github.com/dineshshetty/Android-InsecureBankv2cd Android-InsecureBankv2/AndroLabServerpip3 install -r requirements.txtpython3 app.pyDamn Vulnerable Android Components (DVAC) — еще один менеджер паролей, но для более современных версий Android. Работает на Android 12 и выше. Приложение поможет тебе разобраться с уязвимостями в Activities, Services, Content Providers и Broadcast Receivers. Оно позволит натренироваться в сниффинге, DDoS-атаках на устройство и атаках на небезопасное хранилище.
Чтобы установить приложения в большинстве эмуляторов, достаточно просто перетащить файл APK на экран «смартфона».
Поиск чувствительных данных
Эта часть утилит декомпилирует APK-файл, чтобы найти какую‑нибудь интересную информацию: токены API (в том числе Google и AWS), адреса и креды платежных шлюзов, эндпоинты API, хосты баз данных. Но не стоит надеяться, что вытащишь данные из твоего любимого приложения. Причин этому несколько.
Приложения, которые разработчики загружают в Google Play, проходят строгий контроль. В Google хорошо понимают риски, с которыми сталкиваются не только разработчики приложений, но и конечные пользователи, и принимают серьезные меры защиты. В том числе сами сканируют файлы на раскрытие чувствительных данных.
Другая причина в том, что схема работы всегда одинакова: декомпиляция, например в JADX, и поиск по регуляркам. Декомпиляторы несовершенны и не всегда могут разобрать файл. Да и разработчики часто используют разные схемы для запутывания кода.
Но это не делает бесполезными утилиты вроде APKLeaks. Просто нужно понимать, как именно их применять. Например, анализ очень старой версии приложения может раскрыть интересные эндпоинты API или IP-адреса серверов. Иногда попадаются креды, которые живут десятилетиями.
Еще один вариант применения — корпоративные приложения: клиент для какой‑то внутренней системы или программа для поддержки пользователей. Такое приложение может стать хорошей точкой входа.
APKLeaks
Это простая и быстрая утилита для поиска секретов. Декомпилирует с помощью JADX, ищет секреты по своим регуляркам. Если JADX не установлен, при первом запуске APKLeaks сама скачает декомпилятор.
Установи APKLeaks командой
pip3 install apkleaks --break-system-packagesПрограмма принимает несколько параметров:
-
-f,--file— файл APK для сканирования; -
-o,--output— файл для сохранения результатов; -
-p,--pattern— свой паттерн для поиска секрета; -
-a,--args— аргументы для декомпилятора JADX. Смотри справку JADX; -
-json— сохранение результатов в JSON.
Пример использования:
apkleaks -f dvba.apk

Утилита неплохо справляется с работой: находит жестко закодированные логины и пароли, токены авторизации Basic, Bearer и JWT. Видит ключи API облачных сервисов вроде AWS и Google Cloud.
TruffleHog
Авторы заявляют, что это утилита для поиска кред, но она разработана не специально для работы с APK. Тулза умеет сканировать огромное количество исходников, в том числе готовые файлы APK. В отличие от APKLeaks и подобных утилит, не декомпилит файлы. TruffleHog знает структуру APK и анализирует по собственным алгоритмам.
Продолжение доступно только участникам
Материалы из последних выпусков становятся доступны по отдельности только через два месяца после публикации. Чтобы продолжить чтение, необходимо стать участником сообщества «Xakep.ru».
Присоединяйся к сообществу «Xakep.ru»!
Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», позволит скачивать выпуски в PDF, отключит рекламу на сайте и увеличит личную накопительную скидку! Подробнее
