Тестирование на проникновение приложений для Android - часть 4

  • Автор темы HHIDE_DUMP
  • Дата начала
  • Просмотры 637
  • На форуме работает ручное одобрение пользователей. Это значит, что, если Ваша причина регистрации не соответствует тематике форума, а также Вы используете временную почту, Ваша учётная запись будет отклонена без возможности повторной регистрации. В дальнейшем - пожизненная блокировка обоих аккаунтов за создание мультиаккаунта.
  • Мы обновили Tor зеркало до v3!
    Для входа используйте следующий url: darkv3nw2...bzad.onion/
  • Мы вновь вернули telegram чат форуму, вступайте, общайтесь, задавайте любые вопросы как администрации, так и пользователям!
    Ссылка: https://t.me/chat_dark_time

HHIDE_DUMP

Гость
H

HHIDE_DUMP

Гость

В моих предыдущих статьях мы рассматривали основную структуру и инструменты пентестирования и ADB. Теперь давайте рассмотрим некоторые точки входа для тестирования приложений Android.



С точки зрения безопасности файл манифеста, как правило, является первым, что проверяет пентестер на взаимодействие.



Файл манифеста Android

  • Он предоставляет детальную информацию о приложении android
  • Он называет java пакеты для приложения
  • Он заявляет о полномочиях
  • Он описывает компоненты приложения android
  • Он содержит декларацию минимального уровня API, какое требует приложение
  • Минимальная версия Android, необходимая для запуска программы


Службы

Для демонстрации мы можем использовать приложение insecurebank.apk


Разрешить отладку: «true»
Если приложение помечается как отлаживаемое, то любой злоумышленник может получить доступ к данным приложения, присваивая привилегии этого приложения, или он может запускать произвольный код, пользуясь полномочиями этого разрешения. В случае неотлаживаемого приложения злоумышленнику сначала необходимо использовать root для устройства, чтобы извлечь любые данные.



Java Debug Wire Protocol - это центральная связь между отладчиком и экземпляром JVМ.



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



Перед запуском приложения


После запуска приложения




На вышеприведенном рисунке изображен доступ шел моего персонального телефона, к которому не применялся root.



Разрешить резервное копирование: «true»

Этот параметр определяет, возможно ли резервное копирование и восстановление данных приложения пользователем, который включил отладку usb. Поэтому приложения, которые обрабатывают и хранят конфиденциальную информацию, такую как данные карты, пароли и т. д., должны иметь этот параметр ложным, чтобы предотвратить такие риски.



Откройте терминал



Код:
– Adb backup –apk –shared (apk name)


Код:
Cat backup.ab zlib-flate -uncompress > backup_compressed.tar

Права доступа

Право доступа – это ограничение, которое лимитирует доступ к части кода или данным на устройстве.


Приложения, у которых есть полномочия копировать данные на внешнее хранилище, должны быть пересмотрены, чтобы гарантировать, что на них не хранится особо важная информация.



Все полномочия, запрашиваемые приложением, должны быть пересмотрены, чтобы гарантировать, что они не несут угрозу безопасности.



Существует четыре значения, которые можно использовать с этим атрибутом:

  • Normal (нормальный)
  • Dangerous (опасный)
  • Signature (сигнатура)
  • Signature Or System (сигнатура или система)


Пример -



Код:
<Permission>

Android: protectionLevel=”signature”

</permission>

Значения (Intents)
Это компоненты, которые используются для объединения двух или более различных компонентов Android вместе. Значения могут использоваться для выполнения множества задач, таких как начало действия, действия переключения и запуск служб.



Значения могут использоваться для запуска деятельности, отправки ее любым заинтересованным компонентам вещательного приемника и для связи с фоновой службой. Сообщения о значениях следует пересматривать, чтобы гарантировать, что они не содержат никакой особо важной информации, которую можно перехватить.

Код:
<Intent-filter>

<action android: name=”string” />

<category android: name=”string” />

</intent-filter>

Явные значения подключают одно действие к другому в одном приложении. Эти значения определяют целевой компонент по его имени, и они обычно используются для внутренних сообщений приложения, таких как действие, запускающее сестринскую активность (sister activity), когда пользователь нажимает кнопку.



Скрытые значения не называют цель, а поле для названия компонента остается пустым. Скрытые значения часто используются для активации компонентов в других приложениях. Например, если мы хотим показать пользователю местоположение на карте, мы можем использовать скрытое значение, чтобы запросить другое способное на это приложение отображать указанное местоположение на карте.
 

О нас

  • Наше сообщество существует уже много лет и гордится тем, что предлагает непредвзятое, критическое обсуждение различных тем среди людей разных слоев общества. Мы работаем каждый день, чтобы убедиться, что наше сообщество является одним из лучших.

    Dark-Time 2015 - 2024

    При поддержке: XenForo.Info

Быстрая навигация

Меню пользователя