Tapjacking

Вивчайте хакінг AWS від нуля до героя з htARTE (HackTricks AWS Red Team Expert)!

Інші способи підтримки HackTricks:

Основна інформація

Тапджекінг - це атака, при якій зловмисний додаток запускається і розміщується поверх додатку жертви. Після того, як він візуально затемнює додаток жертви, його інтерфейс користувача розроблений таким чином, щоб обманом змусити користувача взаємодіяти з ним, передаючи взаємодію додатку жертви. Фактично, це приховує користувача від знання того, що вони фактично виконують дії в додатку жертви.

Виявлення

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

Захист

Android 12 (API 31,32) та вище

Згідно з цим джерелом, атаки тапджекінгу автоматично запобігаються Android починаючи з Android 12 (API 31 та 30) та вище. Таким чином, навіть якщо додаток вразливий, ви не зможете його використати.

filterTouchesWhenObscured

Якщо android:filterTouchesWhenObscured встановлено в true, View не отримуватиме дотики, коли вікно видиме відсутнє через інше видиме вікно.

setFilterTouchesWhenObscured

Атрибут setFilterTouchesWhenObscured, встановлений в значення true, також може запобігти використанню цієї вразливості, якщо версія Android нижча. Якщо встановлено в true, наприклад, кнопка може бути автоматично вимкнена, якщо вона прихована:

<Button android:text="Button"
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:filterTouchesWhenObscured="true">
</Button>

Експлуатація

Tapjacking-ExportedActivity

Найбільш остання Android-додаток, який виконує атаку Tapjacking (+ виклик до експортованої діяльності атакованого додатка), можна знайти за посиланням: https://github.com/carlospolop/Tapjacking-ExportedActivity.

Дотримуйтесь інструкцій README для використання.

FloatingWindowApp

Приклад проекту, який реалізує FloatingWindowApp, який можна використовувати для розміщення поверх інших дій для виконання атаки clickjacking, можна знайти за посиланням FloatingWindowApp (дещо застарілий, бажаємо успіху у побудові apk).

Qark

Здається, що цей проект зараз не підтримується, і ця функціональність більше не працює належним чином

Ви можете використовувати qark з параметрами --exploit-apk --sdk-path /Users/username/Library/Android/sdk для створення зловмисного додатка для тестування можливих вразливостей Tapjacking.

Мітігація досить проста, оскільки розробник може вибрати не отримувати події дотику, коли вид заслонений іншим. Використовуючи Довідник розробника Android:

Іноді важливо, щоб додаток міг перевірити, що дія виконується з повним знанням та згодою користувача, такі як надання запиту на дозвіл, здійснення покупки або клік на рекламу. Незважаючи на це, зловмисний додаток може намагатися підробити користувача на виконання цих дій, не підозрюючи, приховуючи призначення виду. Як засіб виправлення, фреймворк пропонує механізм фільтрації дотику, який можна використовувати для покращення безпеки видів, які надають доступ до чутливої функціональності.

Щоб увімкнути фільтрацію дотику, викличте setFilterTouchesWhenObscured(boolean) або встановіть атрибут макету android:filterTouchesWhenObscured в значення true. При увімкненні фреймворк відкине дотики, які отримані, коли вікно виду заслонене іншим видимим вікном. В результаті вид не отримає дотиків, коли вище вікна виду з'явиться сповіщення, діалогове вікно або інше вікно.

Last updated