Тестирование на проникновение приложения Андроид – часть 10

Joined
Aug 17, 2016
Messages
1,788
Reaction score
826
507c250eb3e9a7b425f93.png

Атакующий широковещательный приемник (Broadcast Receiver):

Широковещательный приемник – это компонент системы Андроид, который позволяет вам зарегистрироваться для событий системы или приложений. Мы настоятельно рекомендуем прочитать Тестирование на проникновение Андроид часть 5 для детального ознакомления с широковещательным приемником



Давайте рассмотрим манифест андроида

Широковещательные приемники, в основном, регистрируются в следующем формате. Как мы можем видеть из файла манифеста андроида, экспортированное значение = True (exported value = True) для трансляции.



Кажется, что код небезопасен, т.к. приемник экспортированный.

f5cc384dd58e9bc4d4dba.png

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

6cdb889f566e0cc382986.png

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

db0ea7f122ff17c4d8cc8.png

Теперь широковещательное событие отправляется в фоновом режиме, и поскольку приложение не проверяет исходный источник, на эмулятор-5554 будет отправлено SMS без вмешательства пользователя.



Давайте рассмотрим, как мы можем защитить приложение-



Защита приложений:

  • Установка Fндроида: экспортированное значение атрибута - false
В файле AndroidManifest.xml нашего приложения нам следует добавить следующий атрибут к приемнику, чтобы защитить его.



Ограничение доступа к разрешениям пользователей.



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



Это является причиной, почему нам нужно определить “android.permission.RECEIVE_SMS” разрешение в файле AndroidManifest.xml, если какое-либо приложение хочет прослушать событие получения SMS, используя действие «android.provider.Telephony.SMS_RECEIVED».
 
Top