# Tapjacking
Dowiedz się, jak hakować AWS od zera do bohatera zhtARTE (HackTricks AWS Red Team Expert)!
Inne sposoby wsparcia HackTricks:
* Jeśli chcesz zobaczyć swoją **firmę reklamowaną w HackTricks** lub **pobrać HackTricks w formacie PDF**, sprawdź [**PLAN SUBSKRYPCJI**](https://github.com/sponsors/carlospolop)!
* Zdobądź [**oficjalne gadżety PEASS & HackTricks**](https://peass.creator-spring.com)
* Odkryj [**Rodzinę PEASS**](https://opensea.io/collection/the-peass-family), naszą kolekcję ekskluzywnych [**NFT**](https://opensea.io/collection/the-peass-family)
* **Dołącz do** 💬 [**grupy Discord**](https://discord.gg/hRep4RUj7f) lub [**grupy telegramowej**](https://t.me/peass) lub **śledź** nas na **Twitterze** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Podziel się swoimi sztuczkami hakerskimi, przesyłając PR-y do** [**HackTricks**](https://github.com/carlospolop/hacktricks) **i** [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) **repozytoriów GitHub**.
## **Podstawowe informacje**
**Tapjacking** to atak, w którym **złośliwa aplikacja** jest uruchamiana i **umieszcza się na wierzchu aplikacji ofiary**. Gdy widocznie zasłania aplikację ofiary, jej interfejs użytkownika jest zaprojektowany w taki sposób, aby oszukać użytkownika do interakcji z nią, podczas gdy przekazuje interakcję do aplikacji ofiary.\
W efekcie **oszukuje użytkownika, aby nie zdawał sobie sprawy, że faktycznie wykonuje działania na aplikacji ofiary**.
### Wykrywanie
Aby wykryć aplikacje podatne na ten atak, należy wyszukać **eksportowane aktywności** w manifeście Androida (zauważ, że aktywność z filtrem intencji jest automatycznie eksportowana domyślnie). Gdy już znajdziesz eksportowane aktywności, **sprawdź, czy wymagają jakiegoś uprawnienia**. Jest to dlatego, że **złośliwa aplikacja będzie również potrzebować tego uprawnienia**.
### Ochrona
#### Android 12 (API 31,32) i nowsze
[**Według tej źródłowej**](https://www.geeksforgeeks.org/tapjacking-in-android/)**,** ataki tapjacking są automatycznie blokowane przez Androida od wersji 12 (API 31 i 30) i nowszych. Więc nawet jeśli aplikacja jest podatna, **nie będziesz w stanie jej wykorzystać**.
#### `filterTouchesWhenObscured`
Jeśli **`android:filterTouchesWhenObscured`** jest ustawione na **`true`**, `View` nie otrzyma dotknięć, gdy okno widoku będzie zasłonięte przez inne widoczne okno.
#### **`setFilterTouchesWhenObscured`**
Atrybut **`setFilterTouchesWhenObscured`** ustawiony na true może również zapobiec wykorzystaniu tej podatności, jeśli wersja Androida jest niższa.\
Jeśli jest ustawione na **`true`**, na przykład przycisk może być automatycznie **wyłączony, jeśli jest zasłonięty**:
```xml
```
## Eksploatacja
### Tapjacking-ExportedActivity
Najnowszą aplikację na system Android, która wykonuje atak Tapjacking (+ wywołuje przed wyeksportowaną aktywnością atakowanej aplikacji), można znaleźć pod adresem: [**https://github.com/carlospolop/Tapjacking-ExportedActivity**](https://github.com/carlospolop/Tapjacking-ExportedActivity).
Postępuj zgodnie z instrukcjami w pliku README, aby jej użyć.
### FloatingWindowApp
Przykładowy projekt implementujący **FloatingWindowApp**, który można użyć do umieszczenia na wierzchu innych aktywności w celu przeprowadzenia ataku clickjacking, można znaleźć pod adresem [**FloatingWindowApp**](https://github.com/aminography/FloatingWindowApp) (trochę przestarzały, powodzenia przy budowaniu pliku apk).
### Qark
{% hint style="danger" %}
Wygląda na to, że ten projekt jest obecnie nieutrzymywany i ta funkcjonalność nie działa już poprawnie.
{% endhint %}
Możesz użyć [**qark**](https://github.com/linkedin/qark) z parametrami `--exploit-apk` --sdk-path `/Users/username/Library/Android/sdk`, aby utworzyć złośliwą aplikację do testowania możliwych podatności na **Tapjacking**.
Środki zaradcze są stosunkowo proste, ponieważ deweloper może zdecydować, czy otrzymywać zdarzenia dotykowe, gdy widok jest zasłonięty przez inny. Korzystając z [Android Developer’s Reference](https://developer.android.com/reference/android/view/View#security):
> Czasami istotne jest, aby aplikacja mogła zweryfikować, czy działanie jest wykonywane z pełną wiedzą i zgodą użytkownika, na przykład udzielenie żądania uprawnienia, dokonanie zakupu lub kliknięcie w reklamę. Niestety złośliwa aplikacja może próbować podszyć się pod użytkownika, aby wykonał te czynności, nieświadomy, ukrywając zamierzony cel widoku. Jako środek zaradczy, framework oferuje mechanizm filtrowania dotyku, który można użyć do poprawy bezpieczeństwa widoków, które zapewniają dostęp do funkcji ochrony prywatności.
>
> Aby włączyć filtrowanie dotyku, należy wywołać [`setFilterTouchesWhenObscured(boolean)`](https://developer.android.com/reference/android/view/View#setFilterTouchesWhenObscured%28boolean%29) lub ustawić atrybut układu android:filterTouchesWhenObscured na true. Po włączeniu framework odrzuci dotknięcia, które są odbierane, gdy okno widoku jest zasłonięte przez inne widoczne okno. W rezultacie widok nie otrzyma dotknięć, gdy powyżej okna widoku pojawi się toast, okno dialogowe lub inne okno.
Naucz się hakować AWS od zera do bohatera zhtARTE (HackTricks AWS Red Team Expert)!
Inne sposoby wsparcia HackTricks:
* Jeśli chcesz zobaczyć **reklamę swojej firmy w HackTricks** lub **pobrać HackTricks w formacie PDF**, sprawdź [**PLAN SUBSKRYPCJI**](https://github.com/sponsors/carlospolop)!
* Zdobądź [**oficjalne gadżety PEASS & HackTricks**](https://peass.creator-spring.com)
* Odkryj [**Rodzinę PEASS**](https://opensea.io/collection/the-peass-family), naszą kolekcję ekskluzywnych [**NFT**](https://opensea.io/collection/the-peass-family)
* **Dołącz do** 💬 [**grupy Discord**](https://discord.gg/hRep4RUj7f) lub [**grupy telegramowej**](https://t.me/peass) lub **śledź** nas na **Twitterze** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Podziel się swoimi sztuczkami hakerskimi, przesyłając PR-y do** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.