Android Task Hijacking

Support HackTricks

Завдання, стек назад та активності на передньому плані

В Android, завдання - це, по суті, набір активностей, з якими користувачі взаємодіють для виконання конкретної роботи, організованих у стек назад. Цей стек упорядковує активності на основі того, коли вони були відкриті, з найновішою активністю, що відображається на верху як активність на передньому плані. У будь-який момент часу лише ця активність видима на екрані, що робить її частиною завдання на передньому плані.

Ось швидкий огляд переходів між активностями:

  • Активність 1 починається як єдина активність на передньому плані.

  • Запуск Активності 2 переміщує Активність 1 у стек назад, виводячи Активність 2 на передній план.

  • Запуск Активності 3 переміщує Активність 1 та Активність 2 далі назад у стеку, з Активністю 3 тепер попереду.

  • Закриття Активності 3 повертає Активність 2 на передній план, демонструючи спрощений механізм навігації завданнями в Android.

Атака на афінність завдання

Огляд афінності завдання та режимів запуску

В Android-додатках, афінність завдання вказує на переважне завдання активності, зазвичай відповідне назві пакета програми. Ця настройка є важливою для створення демонстраційного додатка (PoC) для демонстрації атаки.

Режими запуску

Атрибут launchMode керує обробкою екземплярів активностей у завданнях. Режим singleTask є ключовим для цієї атаки, визначаючи три сценарії на основі існуючих екземплярів активностей та відповідностей афінності завдання. Експлуатація базується на здатності додатка зловмисника імітувати афінність завдання цільового додатка, вводячи в оману систему Android, щоб запустити додаток зловмисника замість цільового.

Детальні кроки атаки

  1. Встановлення шкідливого додатка: Жертва встановлює додаток зловмисника на своєму пристрої.

  2. Початкова активація: Жертва спочатку відкриває шкідливий додаток, готуючи пристрій до атаки.

  3. Спроба запуску цільового додатка: Жертва намагається відкрити цільовий додаток.

  4. Виконання захоплення: Завдяки відповідності афінності завдання, шкідливий додаток запускається замість цільового додатка.

  5. Оману: Шкідливий додаток показує фальшивий екран входу, що нагадує цільовий додаток, обманюючи користувача на введення чутливої інформації.

Для практичної реалізації цієї атаки зверніться до репозиторію Task Hijacking Strandhogg на GitHub: Task Hijacking Strandhogg.

Заходи запобігання

Щоб запобігти таким атакам, розробники можуть встановити taskAffinity на порожній рядок і вибрати режим запуску singleInstance, забезпечуючи ізоляцію свого додатка від інших. Налаштування функції onBackPressed() пропонує додатковий захист від захоплення завдань.

Посилання

Support HackTricks

Last updated