mirror of
https://github.com/HackTricks-wiki/hacktricks.git
synced 2025-10-10 18:36:50 +00:00
65 lines
4.4 KiB
Markdown
65 lines
4.4 KiB
Markdown
# Tapjacking
|
|
|
|
{{#include ../../banners/hacktricks-training.md}}
|
|
|
|
## **Basic Information**
|
|
|
|
**Tapjacking** ni shambulio ambapo **programu mbaya** inazinduliwa na **kujiweka juu ya programu ya mwathirika**. Mara inapoificha waziwazi programu ya mwathirika, kiolesura chake cha mtumiaji kimeundwa kwa njia ya kudanganya mtumiaji kuingiliana nayo, wakati inapitisha mwingiliano huo kwa programu ya mwathirika.\
|
|
Kwa hivyo, inafanya **mtumiaji kuwa kipofu na kutokujua kwamba kwa kweli anafanya vitendo kwenye programu ya mwathirika**.
|
|
|
|
### Detection
|
|
|
|
Ili kugundua programu zinazoweza kuathiriwa na shambulio hili unapaswa kutafuta **shughuli zilizotolewa** katika android manifest (kumbuka kwamba shughuli yenye intent-filter inasafirishwa kiotomatiki kwa default). Mara umepata shughuli zilizotolewa, **angalia kama zinahitaji ruhusa yoyote**. Hii ni kwa sababu **programu mbaya itahitaji ruhusa hiyo pia**.
|
|
|
|
Unaweza pia kuangalia toleo la chini la SDK la programu, ukichunguza thamani ya **`android:minSdkVersion`** katika **`AndroidManifest.xml`** faili. Ikiwa thamani ni **chini ya 30**, programu hiyo inahatarishwa kwa Tapjacking.
|
|
|
|
### Protection
|
|
|
|
#### Android 12 (API 31,32) na juu
|
|
|
|
[**Kulingana na chanzo hiki**](https://www.geeksforgeeks.org/tapjacking-in-android/)**,** mashambulizi ya tapjacking yanazuia kiotomatiki na Android kuanzia Android 12 (API 31 & 30) na juu. Hivyo, hata kama programu hiyo inahatarishwa hu **wezi kuitumia**.
|
|
|
|
#### `filterTouchesWhenObscured`
|
|
|
|
Ikiwa **`android:filterTouchesWhenObscured`** imewekwa kuwa **`true`**, `View` haitapokea kugusa wakati dirisha la mtazamo limefichwa na dirisha lingine linaloonekana.
|
|
|
|
#### **`setFilterTouchesWhenObscured`**
|
|
|
|
Sifa **`setFilterTouchesWhenObscured`** iliyowekwa kuwa kweli pia inaweza kuzuia matumizi ya udhaifu huu ikiwa toleo la Android ni la chini.\
|
|
Ikiwa imewekwa kuwa **`true`**, kwa mfano, kitufe kinaweza kuondolewa kiotomatiki **ikiwa kimefichwa**:
|
|
```xml
|
|
<Button android:text="Button"
|
|
android:id="@+id/button1"
|
|
android:layout_width="wrap_content"
|
|
android:layout_height="wrap_content"
|
|
android:filterTouchesWhenObscured="true">
|
|
</Button>
|
|
```
|
|
## Utekelezaji
|
|
|
|
### Tapjacking-ExportedActivity
|
|
|
|
Programu ya **karibuni ya Android** inayofanya shambulio la Tapjacking (+ kuanzisha kabla ya shughuli iliyosafirishwa ya programu iliyoathiriwa) inaweza kupatikana katika: [**https://github.com/carlospolop/Tapjacking-ExportedActivity**](https://github.com/carlospolop/Tapjacking-ExportedActivity).
|
|
|
|
Fuata **maelekezo ya README ili kuitumia**.
|
|
|
|
### FloatingWindowApp
|
|
|
|
Mradi wa mfano unaotekeleza **FloatingWindowApp**, ambayo inaweza kutumika kuweka juu ya shughuli nyingine ili kufanya shambulio la clickjacking, unaweza kupatikana katika [**FloatingWindowApp**](https://github.com/aminography/FloatingWindowApp) (ni ya zamani kidogo, bahati njema katika kujenga apk).
|
|
|
|
### Qark
|
|
|
|
> [!CAUTION]
|
|
> Inaonekana mradi huu sasa hauhifadhiwi na kazi hii haifanyi kazi vizuri tena
|
|
|
|
Unaweza kutumia [**qark**](https://github.com/linkedin/qark) na vigezo `--exploit-apk` --sdk-path `/Users/username/Library/Android/sdk` ili kuunda programu mbaya ya kujaribu uwezekano wa **Tapjacking** udhaifu.\
|
|
|
|
Kuzuia ni rahisi kwa sababu mtengenezaji anaweza kuchagua kutopokea matukio ya kugusa wakati mtazamo umefunikwa na mwingine. Kutumia [Marejeleo ya Wataalamu wa Android](https://developer.android.com/reference/android/view/View#security):
|
|
|
|
> Wakati mwingine ni muhimu kwa programu kuweza kuthibitisha kwamba kitendo kinafanywa kwa maarifa na idhini kamili ya mtumiaji, kama vile kutoa ombi la ruhusa, kufanya ununuzi au kubofya tangazo. Kwa bahati mbaya, programu mbaya inaweza kujaribu kumdanganya mtumiaji kufanya vitendo hivi, bila kujua, kwa kuficha kusudi lililokusudiwa la mtazamo. Kama suluhisho, mfumo unatoa mekanismu ya kuchuja kugusa ambayo inaweza kutumika kuboresha usalama wa mitazamo inayotoa ufikiaji wa kazi nyeti.
|
|
>
|
|
> Ili kuwezesha kuchuja kugusa, piga [`setFilterTouchesWhenObscured(boolean)`](https://developer.android.com/reference/android/view/View#setFilterTouchesWhenObscured%28boolean%29) au weka sifa ya mpangilio ya android:filterTouchesWhenObscured kuwa kweli. Wakati imewezeshwa, mfumo utatupa kugusa ambazo zinapokelewa kila wakati dirisha la mtazamo linapofunikwa na dirisha lingine linaloonekana. Kama matokeo, mtazamo hautapokea kugusa wakati toast, mazungumzo au dirisha lingine linapojitokeza juu ya dirisha la mtazamo.
|
|
|
|
|
|
{{#include ../../banners/hacktricks-training.md}}
|