HHIDE_DUMP
Гость
H
HHIDE_DUMP
Гость
Атакующий широковещательный приемник (Broadcast Receiver):
Широковещательный приемник – это компонент системы Андроид, который позволяет вам зарегистрироваться для событий системы или приложений. Мы настоятельно рекомендуем прочитать Тестирование на проникновение Андроид часть 5 для детального ознакомления с широковещательным приемником
Давайте рассмотрим манифест андроида
Широковещательные приемники, в основном, регистрируются в следующем формате. Как мы можем видеть из файла манифеста андроида, экспортированное значение = True (exported value = True) для трансляции.
Кажется, что код небезопасен, т.к. приемник экспортированный.
Параметры, которые переходят к широковещательному приемнику, можно увидеть на ниже приведенном рисунке.
Цель состоит в том, чтобы отправить поддельные трансляции и посмотреть, принимает ли приложение их. Если да, мы будем использовать приложение для отправки SMS на некоторые случайные мобильные номера, используя фальшивые трансляции.
Атака уязвимых широковещательных приемников
Защита приложений
Атака уязвимых широковещательных приемников
Давайте попробуем отправить некоторые поддельные трансляции этому получателю.
Использование инструмента am доступно в adb
Использование adb
1. Получите оболочку adb на устройстве и введите следующую команду для отправки поддельной трансляции.
2. Вернитесь в папку «platform-tools» и введите следующую команду:
. /adb shell
3. Введите следующую команду в оболочку:
am broadcast -a theBroadcast -n com.android.insecurebankv2/com.android.insecurebankv2.MyBroadCastReceiver –es phonenumber 5554 –es newpass Dinesh@123!
4. Вернитесь на эмулятор, перейдите к «Сообщениям». Введенная выше команда автоматически совершает вызов упомянутому широковещательному приемнику и отправляется SMS-текст с паролями.
Теперь широковещательное событие отправляется в фоновом режиме, и поскольку приложение не проверяет исходный источник, на эмулятор-5554 будет отправлено SMS без вмешательства пользователя.
Давайте рассмотрим, как мы можем защитить приложение-
Защита приложений:
- Установка Fндроида: экспортированное значение атрибута - false
Ограничение доступа к разрешениям пользователей.
Мы также можем вводить ограничения на основе разрешений, определяя пользовательские разрешения для каждого получателя. Это полезно, если разработчик хочет ограничить доступ к компонентам своего приложения тем приложениям, у которых есть разрешения.
Это является причиной, почему нам нужно определить “android.permission.RECEIVE_SMS” разрешение в файле AndroidManifest.xml, если какое-либо приложение хочет прослушать событие получения SMS, используя действие «android.provider.Telephony.SMS_RECEIVED».