Tapjacking

Reading time: 4 minutes

tip

Вивчайте та практикуйте AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Вивчайте та практикуйте GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Підтримайте HackTricks

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

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

Виявлення

Щоб виявити додатки, вразливі до цієї атаки, ви повинні шукати експортовані активності в маніфесті android (зверніть увагу, що активність з intent-filter автоматично експортується за замовчуванням). Як тільки ви знайдете експортовані активності, перевірте, чи потребують вони будь-яких дозволів. Це пов'язано з тим, що шкідливий додаток також потребуватиме цього дозволу.

Ви також можете перевірити мінімальну версію SDK додатку, перевіряючи значення android:minSdkVersion у файлі AndroidManifest.xml. Якщо значення менше 30, додаток вразливий до Tapjacking.

Захист

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

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

filterTouchesWhenObscured

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

setFilterTouchesWhenObscured

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

xml
<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

caution

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

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

Пом'якшення є відносно простим, оскільки розробник може вибрати не отримувати події дотику, коли видимість перекрита іншим. Використовуючи Android Developer’s Reference:

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

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

tip

Вивчайте та практикуйте AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Вивчайте та практикуйте GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Підтримайте HackTricks