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

98 lines
6.9 KiB
Markdown
Raw Permalink 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/" %}
## **Basiese Inligting**
**Tapjacking** is 'n aanval waar 'n **kwaadwillige** **toepassing** gelanseer word en **op die top van 'n slagoffer toepassing posisioneer**. Sodra dit die slagoffer app sigbaar obscuur, is sy gebruikerskoppelvlak ontwerp om die gebruiker te mislei om met dit te interaksie, terwyl dit die interaksie aan die slagoffer app oorgedra.\
In werklikheid, dit is **blind die gebruiker van die kennis dat hulle eintlik aksies op die slagoffer app uitvoer**.
### Opsporing
Om toepassings wat kwesbaar is vir hierdie aanval te ontdek, moet jy soek na **geëxporteerde aktiwiteite** in die android manifest (let daarop dat 'n aktiwiteit met 'n intent-filter outomaties geëxporteer word as standaard). Sodra jy die geëxporteerde aktiwiteite gevind het, **kyk of hulle enige toestemming vereis**. Dit is omdat die **kwaadwillige toepassing daardie toestemming ook nodig sal hê**.
### Beskerming
2024-02-11 02:07:06 +00:00
#### Android 12 (API 31,32) en hoër
[**Volgens hierdie bron**](https://www.geeksforgeeks.org/tapjacking-in-android/)**,** tapjacking-aanvalle word outomaties deur Android van Android 12 (API 31 & 30) en hoër voorkom. So, selfs al is die toepassing kwesbaar, **sal jy dit nie kan benut nie**.
#### `filterTouchesWhenObscured`
As **`android:filterTouchesWhenObscured`** op **`true`** gestel is, sal die `View` nie aanrakinge ontvang wanneer die venster van die view deur 'n ander sigbare venster obscuur word nie.
#### **`setFilterTouchesWhenObscured`**
Die attribuut **`setFilterTouchesWhenObscured`** wat op true gestel is, kan ook die benutting van hierdie kwesbaarheid voorkom as die Android weergawe laer is.\
As dit op **`true`** gestel is, kan 'n knoppie byvoorbeeld outomaties **gedeaktiveer word as dit obscuur is**:
2024-02-08 03:08:28 +00:00
```xml
<Button android:text="Button"
android:id="@+id/button1"
android:layout_width="wrap_content"
2024-02-11 02:07:06 +00:00
android:layout_height="wrap_content"
android:filterTouchesWhenObscured="true">
</Button>
```
## Exploitation
### Tapjacking-ExportedActivity
Die mees **onlangs Android-toepassing** wat 'n Tapjacking-aanval uitvoer (+ aanroep voor 'n geexporteerde aktiwiteit van die aangevalde toepassing) kan gevind word by: [**https://github.com/carlospolop/Tapjacking-ExportedActivity**](https://github.com/carlospolop/Tapjacking-ExportedActivity).
Volg die **README instruksies om dit te gebruik**.
### FloatingWindowApp
'n Voorbeeldprojek wat **FloatingWindowApp** implementeer, wat gebruik kan word om bo ander aktiwiteite te plaas om 'n clickjacking-aanval uit te voer, kan gevind word by [**FloatingWindowApp**](https://github.com/aminography/FloatingWindowApp) (bietjie oud, goeie geluk met die bou van die apk).
### Qark
{% hint style="danger" %}
Dit lyk of hierdie projek nou nie meer onderhou word nie en hierdie funksionaliteit werk nie meer behoorlik nie
{% endhint %}
Jy kan [**qark**](https://github.com/linkedin/qark) gebruik met die `--exploit-apk` --sdk-path `/Users/username/Library/Android/sdk` parameters om 'n kwaadwillige toepassing te skep om vir moontlike **Tapjacking** kwesbaarhede te toets.\
Die mitigasie is relatief eenvoudig aangesien die ontwikkelaar kan kies om nie aanraakgebeurtenisse te ontvang wanneer 'n weergawe deur 'n ander bedek is nie. Gebruik die [Android Ontwikkelaar se Verwysing](https://developer.android.com/reference/android/view/View#security):
> Soms is dit noodsaaklik dat 'n toepassing in staat is om te verifieer dat 'n aksie uitgevoer word met die volle kennis en toestemming van die gebruiker, soos om 'n toestemming versoek toe te staan, 'n aankoop te doen of op 'n advertensie te klik. Ongelukkig kan 'n kwaadwillige toepassing probeer om die gebruiker te mislei om hierdie aksies uit te voer, sonder dat hulle daarvan bewus is, deur die beoogde doel van die weergawe te verberg. As 'n remedie bied die raamwerk 'n aanraakfiltreringsmeganisme wat gebruik kan word om die sekuriteit van weergawes wat toegang tot sensitiewe funksionaliteit bied, te verbeter.
>
> Om aanraakfiltrering in te skakel, bel [`setFilterTouchesWhenObscured(boolean)`](https://developer.android.com/reference/android/view/View#setFilterTouchesWhenObscured%28boolean%29) of stel die android:filterTouchesWhenObscured uitleg eienskap op waar. Wanneer geaktiveer, sal die raamwerk aanrakings wat ontvang word wanneer die weergawe se venster deur 'n ander sigbare venster bedek is, verwerp. As gevolg hiervan sal die weergawe nie aanrakings ontvang wanneer 'n toast, dialoog of ander venster bo die weergawe se venster verskyn nie.
<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" %}
Leer & oefen 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">\
Leer & oefen 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
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}