Drozer Tutorial
Підказка щодо багів у винагороду: зареєструйтеся на Intigriti, преміальній платформі для пошуку багів, створеній хакерами для хакерів! Приєднуйтесь до нас на https://go.intigriti.com/hacktricks сьогодні, і почніть заробляти винагороди до $100,000!
APK для тестування
Sieve (від mwrlabs)
Деякі частини цього посібника були взяті з PDF-документації Drozer.
Установка
Встановіть клієнт Drozer всередині вашого хоста. Завантажте його з останніх релізів.
Завантажте та встановіть drozer APK з останніх релізів. На даний момент це цей.
Запуск сервера
Агент працює на порту 31415, нам потрібно перенаправити порт, щоб встановити зв'язок між клієнтом Drozer та агентом, ось команда для цього:
Нарешті, запустіть додаток та натисніть "ON" унизу
І підключіться до нього:
Цікаві Команди
Команда | Опис |
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 | Експлойти потребують навантаження. |
Пакет
Знайдіть назву пакету, фільтруючи за частиною назви:
Основна інформація пакету:
Прочитайте Маніфест:
Поверхня атаки пакету:
Дії: Можливо, ви можете запустити дію та обійти якийсь вид авторизації, який повинен вас зупинити від запуску.
Постачальники контенту: Можливо, ви можете отримати доступ до приватних даних або використати деякі вразливості (SQL-ін'єкція або обхід шляху).
Служби:
is debuggable: Дізнатися більше
Дії
Значення "android:exported" експортованого компонента дії встановлено на "true" в файлі AndroidManifest.xml:
Перелік експортованих активностей:
Запуск діяльності:
Можливо, ви можете запустити діяльність та обійти якийсь вид авторизації, яка повинна запобігти вам запуску її.
Ви також можете запустити експортовану активність з adb:
PackageName - це com.example.demo
Ім'я активності для експорту - com.example.test.MainActivity
Постачальники контенту
Цей пост був настільки великим, що ви можете отримати доступ до нього на окремій сторінці тут.
Сервіси
Експортований сервіс оголошується всередині 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)
Приймачі трансляцій
У розділі основної інформації про Android ви можете побачити, що таке Приймач трансляцій.
Після виявлення цих Приймачів трансляцій вам слід перевірити код їх. Зверніть особливу увагу на функцію onReceive
, оскільки вона буде обробляти отримані повідомлення.
Виявлення всіх приймачів трансляцій
Перевірка приймачів трансляцій додатка
Трансляції Взаємодії
Надіслати повідомлення
У цьому прикладі, зловживаючи FourGoats apk Content Provider, ви можете надіслати довільне SMS на будь-який не-преміум номер без запиту дозволу від користувача.
Якщо ви прочитаєте код, параметри "phoneNumber" та "message" повинні бути надіслані до Content Provider.
Чи можна налагоджувати
Виробничий APK ніколи не повинен бути налагоджуваним. Це означає, що ви можете прикріпити відлагоджувач Java до запущеної програми, інспектувати її в режимі виконання, встановлювати точки зупинки, переходити крок за кроком, збирати значення змінних і навіть змінювати їх. Інститут InfoSec має відмінну статтю про розкриття глибин, коли ваша програма може бути налагоджуваною та впроваджувати код в режимі виконання.
Коли програма може бути налагоджуваною, це буде вказано в Маніфесті:
Ви можете знайти всі програми, які можна налагоджувати за допомогою Drozer:
Посібники
Додаткова інформація
Підказка щодо багів: зареєструйтесь на Intigriti, преміальній платформі для пошуку багів, створеній хакерами для хакерів! Приєднуйтесь до нас на https://go.intigriti.com/hacktricks сьогодні, і почніть заробляти винагороди до $100,000!
Last updated