hacktricks/mobile-pentesting/android-app-pentesting/tapjacking.md

98 lines
8.9 KiB
Markdown
Raw Normal View History

# Tapjacking
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary>Support HackTricks</summary>
2024-01-03 10:43:38 +00:00
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
2024-03-29 18:49:46 +00:00
## **Основна інформація**
**Tapjacking** — це атака, коли **шкідлива** **додаток** запускається і **розташовується поверх додатку жертви**. Як тільки він видимо закриває додаток жертви, його інтерфейс користувача спроектований таким чином, щоб обманути користувача взаємодіяти з ним, в той час як він передає взаємодію до додатку жертви.\
Таким чином, він **осліплює користувача, не даючи йому знати, що він насправді виконує дії в додатку жертви**.
2024-03-29 18:49:46 +00:00
### Виявлення
Щоб виявити додатки, вразливі до цієї атаки, ви повинні шукати **експортовані активності** в маніфесті android (зверніть увагу, що активність з intent-filter автоматично експортується за замовчуванням). Як тільки ви знайдете експортовані активності, **перевірте, чи потребують вони будь-яких дозволів**. Це пов'язано з тим, що **шкідливий додаток також потребуватиме цього дозволу**.
2024-03-29 18:49:46 +00:00
### Захист
2024-03-29 18:49:46 +00:00
#### Android 12 (API 31,32) та вище
[**Згідно з цим джерелом**](https://www.geeksforgeeks.org/tapjacking-in-android/)**,** атаки tapjacking автоматично запобігаються Android з Android 12 (API 31 & 30) та вище. Тож, навіть якщо додаток вразливий, ви **не зможете його експлуатувати**.
#### `filterTouchesWhenObscured`
Якщо **`android:filterTouchesWhenObscured`** встановлено на **`true`**, `View` не буде отримувати дотики, коли вікно перегляду закрите іншим видимим вікном.
#### **`setFilterTouchesWhenObscured`**
Атрибут **`setFilterTouchesWhenObscured`**, встановлений на true, також може запобігти експлуатації цієї вразливості, якщо версія Android нижча.\
Якщо встановлено на **`true`**, наприклад, кнопку можна автоматично **відключити, якщо вона закрита**:
2024-02-08 03:08:28 +00:00
```xml
<Button android:text="Button"
android:id="@+id/button1"
android:layout_width="wrap_content"
2024-03-29 18:49:46 +00:00
android:layout_height="wrap_content"
android:filterTouchesWhenObscured="true">
</Button>
```
## Використання
### Tapjacking-ExportedActivity
Найбільш **остання Android програма**, що виконує атаку Tapjacking (+ виклик перед експортованою активністю атакованої програми) можна знайти за адресою: [**https://github.com/carlospolop/Tapjacking-ExportedActivity**](https://github.com/carlospolop/Tapjacking-ExportedActivity).
Слідуйте **інструкціям README для використання**.
### FloatingWindowApp
Приклад проекту, що реалізує **FloatingWindowApp**, який можна використовувати для накладення на інші активності для виконання атаки clickjacking, можна знайти в [**FloatingWindowApp**](https://github.com/aminography/FloatingWindowApp) (трохи старий, удачі в створенні apk).
### Qark
{% hint style="danger" %}
Схоже, що цей проект зараз не підтримується, і ця функціональність більше не працює належним чином
{% endhint %}
Ви можете використовувати [**qark**](https://github.com/linkedin/qark) з параметрами `--exploit-apk` --sdk-path `/Users/username/Library/Android/sdk`, щоб створити шкідливу програму для перевірки можливих вразливостей **Tapjacking**.\
Пом'якшення є відносно простим, оскільки розробник може вибрати не отримувати події дотику, коли вид покритий іншим. Використовуючи [Довідник розробника Android](https://developer.android.com/reference/android/view/View#security):
> Іноді важливо, щоб програма могла перевірити, що дія виконується з повним усвідомленням і згодою користувача, наприклад, надання запиту на дозвіл, здійснення покупки або натискання на рекламу. На жаль, шкідлива програма може спробувати обманути користувача, змусивши його виконати ці дії, не усвідомлюючи цього, приховуючи справжню мету виду. Як засіб вирішення, фреймворк пропонує механізм фільтрації дотиків, який можна використовувати для покращення безпеки видів, що надають доступ до чутливої функціональності.
>
> Щоб увімкнути фільтрацію дотиків, викликайте [`setFilterTouchesWhenObscured(boolean)`](https://developer.android.com/reference/android/view/View#setFilterTouchesWhenObscured%28boolean%29) або встановіть атрибут макета android:filterTouchesWhenObscured в true. Коли це увімкнено, фреймворк відкине дотики, які отримуються, коли вікно виду закрите іншим видимим вікном. В результаті вид не отримає дотики, коли над вікном виду з'являється тост, діалог або інше вікно.
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
{% hint style="success" %}
Вчіться та практикуйте AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Вчіться та практикуйте GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary>Підтримати HackTricks</summary>
* Перевірте [**плани підписки**](https://github.com/sponsors/carlospolop)!
* **Приєднуйтесь до** 💬 [**групи Discord**](https://discord.gg/hRep4RUj7f) або [**групи telegram**](https://t.me/peass) або **слідкуйте** за нами в **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Діліться хакерськими трюками, надсилаючи PR до** [**HackTricks**](https://github.com/carlospolop/hacktricks) та [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) репозиторіїв на github.
</details>
{% endhint %}