Drozer Tutorial
Bug bounty tip: зареєструйтесь на Intigriti, преміум платформі для винагород за вразливості, створеній хакерами для хакерів! Приєднуйтесь до нас на https://go.intigriti.com/hacktricks сьогодні та почніть заробляти винагороди до $100,000!
APKs to test
Sieve (від mrwlabs)
Частини цього посібника були витягнуті з Drozer documentation pdf.
Installation
Встановіть Drozer Client на вашому хості. Завантажте його з останніх релізів.
Завантажте та встановіть drozer APK з останніх релізів. На даний момент це цей.
Запуск сервера
Агент працює на порту 31415, нам потрібно перенаправити порт, щоб встановити зв'язок між клієнтом Drozer та агентом, ось команда для цього:
Нарешті, запустіть додаток і натисніть кнопку "УВІМКНУТО"
І підключіться до нього:
Цікаві команди
Команди | Опис |
Help MODULE | Показує допомогу вибраного модуля |
list | Показує список усіх модулів drozer, які можна виконати в поточній сесії. Це приховує модулі, які ви не маєте відповідних прав для виконання. |
shell | Запускає інтерактивну оболонку Linux на пристрої в контексті Агенту. |
clean | Видаляє тимчасові файли, збережені drozer на Android-пристрої. |
load | Завантажує файл, що містить команди drozer, і виконує їх послідовно. |
module | Знаходить і встановлює додаткові модулі drozer з Інтернету. |
unset | Видаляє названу змінну, яку drozer передає будь-яким оболонкам Linux, які він створює. |
set | Зберігає значення в змінній, яка буде передана як змінна середовища будь-яким оболонкам Linux, створеним drozer. |
shell | Запускає інтерактивну оболонку Linux на пристрої в контексті Агенту |
run MODULE | Виконує модуль drozer |
exploit | Drozer може створювати експлойти для виконання на пристрої. |
payload | Експлойти потребують корисного навантаження. |
Пакет
Знайдіть ім'я пакету, фільтруючи за частиною імені:
Основна інформація про пакет:
Прочитайте Manifest:
Атакувальна поверхня пакету:
Дії: Можливо, ви можете запустити дію та обійти якусь авторизацію, яка повинна заважати вам її запускати.
Постачальники контенту: Можливо, ви можете отримати доступ до приватних даних або експлуатувати якусь вразливість (SQL Injection або Path Traversal).
Сервіси:
is debuggable: Дізнатися більше
Дії
Значення “android:exported” компонента експортованої дії встановлено на “true” у файлі AndroidManifest.xml:
Список експортованих активностей:
Запустити активність:
Можливо, ви можете запустити активність і обійти якийсь вид авторизації, яка повинна заважати вам її запустити.
Ви також можете запустити експортовану активність з adb:
PackageName - com.example.demo
Exported ActivityName - com.example.test.MainActivity
Content Providers
Цей пост був занадто великим, щоб бути тут, тому ви можете доступити його на окремій сторінці тут.
Services
Експортована служба оголошується в Manifest.xml:
Всередині коду перевірте функцію **handleMessage
**, яка буде отримувати повідомлення:
Список сервісів
Взаємодіяти з сервісом
Приклад
Подивіться на допомогу drozer для app.service.send
:
Зверніть увагу, що спочатку ви будете надсилати дані всередині "msg.what", потім "msg.arg1" і "msg.arg2", вам слід перевірити в коді яка інформація використовується і де.
Використовуючи опцію --extra
, ви можете надіслати щось, що інтерпретується "msg.replyTo", а використовуючи --bundle-as-obj
, ви створюєте об'єкт з наданими деталями.
У наступному прикладі:
what == 2354
arg1 == 9234
arg2 == 1
replyTo == object(string com.mwr.example.sieve.PIN 1337)
Broadcast Receivers
У розділі основної інформації Android ви можете побачити, що таке Broadcast Receiver.
Після виявлення цих Broadcast Receivers вам слід перевірити код цих компонентів. Зверніть особливу увагу на функцію onReceive
, оскільки вона оброблятиме отримані повідомлення.
Виявити всі broadcast receivers
Перевірте приймачі широкомовлення програми
Взаємодії Broadcast
Відправити повідомлення
У цьому прикладі, зловживаючи FourGoats apk Content Provider, ви можете відправити довільне SMS на будь-який непреміумний номер без запиту дозволу у користувача.
Якщо ви прочитаєте код, параметри "phoneNumber" та "message" повинні бути надіслані до Content Provider.
Чи є можливість налагодження
Продуктова APK ніколи не повинна бути налагоджуваною. Це означає, що ви можете підключити java налагоджувач до запущеного додатку, перевірити його в режимі виконання, встановити точки зупинки, крок за кроком, збирати значення змінних і навіть змінювати їх. InfoSec institute має відмінну статтю про те, як заглибитися, коли ваш додаток є налагоджуваним і інжектувати код під час виконання.
Коли додаток є налагоджуваним, він з'явиться в Маніфесті:
Ви можете знайти всі додатки, які можна налагоджувати, за допомогою Drozer:
Tutorials
More info
Bug bounty tip: зареєструйтесь на Intigriti, преміум платформі для bug bounty, створеній хакерами для хакерів! Приєднуйтесь до нас на https://go.intigriti.com/hacktricks сьогодні та почніть заробляти винагороди до $100,000!
Last updated