mirror of
https://github.com/carlospolop/hacktricks
synced 2024-11-22 04:33:28 +00:00
Translated ['mobile-pentesting/android-app-pentesting/tapjacking.md'] to
This commit is contained in:
parent
e4ed43a211
commit
92b5113571
1 changed files with 15 additions and 15 deletions
|
@ -20,16 +20,16 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
|
||||||
{% embed url="https://websec.nl/" %}
|
{% embed url="https://websec.nl/" %}
|
||||||
|
|
||||||
|
|
||||||
## **Temel Bilgiler**
|
## **Basic Information**
|
||||||
|
|
||||||
**Tapjacking**, **kötü niyetli** bir **uygulamanın** başlatıldığı ve **bir kurban uygulamanın üzerine yerleştiği** bir saldırıdır. Kurban uygulamayı görünür bir şekilde gizlediğinde, kullanıcı arayüzü, kullanıcının onunla etkileşimde bulunmasını sağlamak için tasarlanmıştır, bu sırada etkileşim kurban uygulamaya iletilmektedir.\
|
**Tapjacking**, kötü niyetli bir **uygulamanın** başlatıldığı ve **bir kurban uygulamanın üzerine yerleştiği** bir saldırıdır. Kurban uygulamayı görünür şekilde gizlediğinde, kullanıcı arayüzü, kullanıcının onunla etkileşimde bulunmasını sağlamak için tasarlanmıştır, bu sırada etkileşim kurban uygulamaya iletilmektedir.\
|
||||||
Sonuç olarak, bu durum **kullanıcının aslında kurban uygulamasında eylem gerçekleştirdiğini bilmesini engellemektedir**.
|
Sonuç olarak, bu durum **kullanıcının aslında kurban uygulamasında eylem gerçekleştirdiğini bilmesini engellemektedir**.
|
||||||
|
|
||||||
### Tespit
|
### Detection
|
||||||
|
|
||||||
Bu saldırıya karşı savunmasız uygulamaları tespit etmek için, android manifestinde **dışa aktarılan aktiviteleri** aramalısınız (bir intent-filter ile bir aktivitenin varsayılan olarak otomatik olarak dışa aktarıldığını unutmayın). Dışa aktarılan aktiviteleri bulduktan sonra, **herhangi bir izin gerektirip gerektirmediğini kontrol edin**. Bunun nedeni, **kötü niyetli uygulamanın da o izne ihtiyaç duymasıdır**.
|
Bu saldırıya karşı savunmasız uygulamaları tespit etmek için, android manifestinde **dışa aktarılan aktiviteleri** aramalısınız (bir intent-filter ile bir aktivitenin varsayılan olarak otomatik olarak dışa aktarıldığını unutmayın). Dışa aktarılan aktiviteleri bulduktan sonra, **herhangi bir izin gerektirip gerektirmediğini kontrol edin**. Bunun nedeni, **kötü niyetli uygulamanın da o izne ihtiyaç duymasıdır**.
|
||||||
|
|
||||||
### Koruma
|
### Protection
|
||||||
|
|
||||||
#### Android 12 (API 31,32) ve üzeri
|
#### Android 12 (API 31,32) ve üzeri
|
||||||
|
|
||||||
|
@ -37,11 +37,11 @@ Bu saldırıya karşı savunmasız uygulamaları tespit etmek için, android man
|
||||||
|
|
||||||
#### `filterTouchesWhenObscured`
|
#### `filterTouchesWhenObscured`
|
||||||
|
|
||||||
Eğer **`android:filterTouchesWhenObscured`** **`true`** olarak ayarlandıysa, `View`, görünümün penceresi başka bir görünür pencere tarafından gizlendiğinde dokunuşları almayacaktır.
|
Eğer **`android:filterTouchesWhenObscured`** **`true`** olarak ayarlandıysa, `View`, görünür bir pencere tarafından gizlendiğinde dokunuşları almayacaktır.
|
||||||
|
|
||||||
#### **`setFilterTouchesWhenObscured`**
|
#### **`setFilterTouchesWhenObscured`**
|
||||||
|
|
||||||
**`setFilterTouchesWhenObscured`** özelliği true olarak ayarlandığında, Android sürümü daha düşükse bu zafiyetin istismarını da engelleyebilir.\
|
**`setFilterTouchesWhenObscured`** özelliği true olarak ayarlandığında, Android sürümü daha düşükse bu açığın istismarını da engelleyebilir.\
|
||||||
Örneğin, **`true`** olarak ayarlandığında, bir buton otomatik olarak **gizlendiğinde devre dışı bırakılabilir**:
|
Örneğin, **`true`** olarak ayarlandığında, bir buton otomatik olarak **gizlendiğinde devre dışı bırakılabilir**:
|
||||||
```xml
|
```xml
|
||||||
<Button android:text="Button"
|
<Button android:text="Button"
|
||||||
|
@ -55,42 +55,42 @@ android:filterTouchesWhenObscured="true">
|
||||||
|
|
||||||
### Tapjacking-ExportedActivity
|
### Tapjacking-ExportedActivity
|
||||||
|
|
||||||
En **son Android uygulaması** olan Tapjacking saldırısını gerçekleştiren (+ saldırıya uğrayan uygulamanın dışa aktarılan bir aktivitesinden önce çağırma) bulmak için: [**https://github.com/carlospolop/Tapjacking-ExportedActivity**](https://github.com/carlospolop/Tapjacking-ExportedActivity).
|
En son **Android uygulaması** olan Tapjacking saldırısını gerçekleştiren (+ saldırıya uğrayan uygulamanın dışa aktarılan bir aktivitesinden önce çağırma) uygulama şu adreste bulunabilir: [**https://github.com/carlospolop/Tapjacking-ExportedActivity**](https://github.com/carlospolop/Tapjacking-ExportedActivity).
|
||||||
|
|
||||||
**Kullanmak için README talimatlarını takip edin**.
|
**Kullanmak için README talimatlarını takip edin**.
|
||||||
|
|
||||||
### FloatingWindowApp
|
### FloatingWindowApp
|
||||||
|
|
||||||
**FloatingWindowApp**'i uygulayan bir örnek proje, tıklama saldırısı gerçekleştirmek için diğer aktivitelerin üzerine yerleştirilebilecek bir proje [**FloatingWindowApp**](https://github.com/aminography/FloatingWindowApp) içinde bulunabilir (biraz eski, apk oluşturma konusunda iyi şanslar).
|
Diğer aktivitelerin üzerine yerleştirilerek bir clickjacking saldırısı gerçekleştirmek için kullanılabilecek **FloatingWindowApp**'i uygulayan bir örnek proje [**FloatingWindowApp**](https://github.com/aminography/FloatingWindowApp) adresinde bulunabilir (biraz eski, apk oluşturma konusunda iyi şanslar).
|
||||||
|
|
||||||
### Qark
|
### Qark
|
||||||
|
|
||||||
{% hint style="danger" %}
|
{% hint style="danger" %}
|
||||||
Bu projenin artık bakımsız olduğu ve bu işlevselliğin düzgün çalışmadığı görünüyor
|
Bu projenin artık bakımı yapılmıyor gibi görünüyor ve bu işlevsellik düzgün çalışmıyor.
|
||||||
{% endhint %}
|
{% endhint %}
|
||||||
|
|
||||||
Olası **Tapjacking** zafiyetlerini test etmek için kötü niyetli bir uygulama oluşturmak üzere `--exploit-apk` --sdk-path `/Users/username/Library/Android/sdk` parametreleri ile [**qark**](https://github.com/linkedin/qark) kullanabilirsiniz.\
|
Olası **Tapjacking** zafiyetlerini test etmek için `--exploit-apk` --sdk-path `/Users/username/Library/Android/sdk` parametreleri ile [**qark**](https://github.com/linkedin/qark) kullanabilirsiniz.\
|
||||||
|
|
||||||
Zayıflatma oldukça basittir, çünkü geliştirici bir görünüm başka bir görünüm tarafından kaplandığında dokunma olaylarını almamayı seçebilir. [Android Geliştirici Referansı](https://developer.android.com/reference/android/view/View#security) kullanarak:
|
Zafiyetin giderilmesi oldukça basittir, çünkü geliştirici bir görünüm başka bir görünüm tarafından kaplandığında dokunma olaylarını almamayı seçebilir. [Android Geliştirici Referansı](https://developer.android.com/reference/android/view/View#security) kullanarak:
|
||||||
|
|
||||||
> Bazen bir uygulamanın, bir izin isteği verme, bir satın alma yapma veya bir reklama tıklama gibi bir eylemin kullanıcının tam bilgisi ve rızasıyla gerçekleştirildiğini doğrulaması önemlidir. Ne yazık ki, kötü niyetli bir uygulama, görünümün amaçlanan amacını gizleyerek kullanıcının bu eylemleri bilmeden gerçekleştirmesini sağlamaya çalışabilir. Bir çözüm olarak, çerçeve, hassas işlevselliğe erişim sağlayan görünümlerin güvenliğini artırmak için kullanılabilecek bir dokunma filtreleme mekanizması sunar.
|
> Bazen bir uygulamanın, bir izin isteği verme, bir satın alma yapma veya bir reklama tıklama gibi bir eylemin kullanıcının tam bilgisi ve rızasıyla gerçekleştirildiğini doğrulaması önemlidir. Ne yazık ki, kötü niyetli bir uygulama, görünümün amaçlanan amacını gizleyerek kullanıcının bu eylemleri bilmeden gerçekleştirmesini sağlamaya çalışabilir. Bir çözüm olarak, çerçeve, hassas işlevselliğe erişim sağlayan görünümlerin güvenliğini artırmak için kullanılabilecek bir dokunma filtreleme mekanizması sunar.
|
||||||
>
|
>
|
||||||
> Dokunma filtrelemeyi etkinleştirmek için [`setFilterTouchesWhenObscured(boolean)`](https://developer.android.com/reference/android/view/View#setFilterTouchesWhenObscured%28boolean%29) çağrısını yapın veya android:filterTouchesWhenObscured düzenleme özniteliğini true olarak ayarlayın. Etkinleştirildiğinde, çerçeve, görünümün penceresi başka bir görünür pencere tarafından kaplandığında alınan dokunmaları atlayacaktır. Sonuç olarak, bir toast, diyalog veya başka bir pencere görünümün penceresinin üzerinde belirdiğinde görünüm dokunmaları almayacaktır.
|
> Dokunma filtrelemeyi etkinleştirmek için [`setFilterTouchesWhenObscured(boolean)`](https://developer.android.com/reference/android/view/View#setFilterTouchesWhenObscured%28boolean%29) çağrısını yapın veya android:filterTouchesWhenObscured düzenleme özniteliğini true olarak ayarlayın. Etkinleştirildiğinde, çerçeve, görünümün penceresi başka bir görünür pencere tarafından kaplandığında alınan dokunmaları yok sayacaktır. Sonuç olarak, görünüm, bir toast, diyalog veya başka bir pencere görünümün penceresinin üzerinde belirdiğinde dokunma almayacaktır.
|
||||||
|
|
||||||
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
|
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
|
||||||
|
|
||||||
{% embed url="https://websec.nl/" %}
|
{% embed url="https://websec.nl/" %}
|
||||||
|
|
||||||
{% hint style="success" %}
|
{% hint style="success" %}
|
||||||
AWS Hacking'i öğrenin ve pratik yapın:<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">\
|
AWS Hacking öğrenin ve pratik yapın:<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'i öğrenin ve pratik yapın: <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)
|
GCP Hacking öğrenin ve pratik yapın: <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>
|
<details>
|
||||||
|
|
||||||
<summary>HackTricks'i Destekleyin</summary>
|
<summary>HackTricks'i Destekleyin</summary>
|
||||||
|
|
||||||
* [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin!
|
* [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin!
|
||||||
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter'da** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**'i takip edin.**
|
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter**'da **bizi takip edin** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||||
* **Hacking ipuçlarını paylaşmak için [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.**
|
* **Hacking ipuçlarını paylaşmak için [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.**
|
||||||
|
|
||||||
</details>
|
</details>
|
||||||
|
|
Loading…
Reference in a new issue