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

7.1 KiB
Raw Blame History

Tapjacking

{% hint style="success" %} Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Support HackTricks
{% endhint %}

{% embed url="https://websec.nl/" %}

Temel Bilgiler

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.
Sonuç olarak, bu durum kullanıcının aslında kurban uygulamasında eylem gerçekleştirdiğini bilmesini engellemektedir.

Tespit

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

Android 12 (API 31,32) ve üzeri

Bu kaynağa göre, tapjacking saldırıları Android 12 (API 31 & 30) ve üzeri sürümlerde otomatik olarak engellenmektedir. Yani, uygulama savunmasız olsa bile onu istismar edemeyeceksiniz.

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.

setFilterTouchesWhenObscured

setFilterTouchesWhenObscured özelliği true olarak ayarlandığında, Android sürümü daha düşükse bu zafiyetin istismarını da engelleyebilir.
Örneğin, true olarak ayarlandığında, bir buton otomatik olarak gizlendiğinde devre dışı bırakılabilir:

<Button android:text="Button"
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:filterTouchesWhenObscured="true">
</Button>

Exploitation

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.

Kullanmak için README talimatlarını takip edin.

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 içinde bulunabilir (biraz eski, apk oluşturma konusunda iyi şanslar).

Qark

{% 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 {% 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 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ı 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.

Dokunma filtrelemeyi etkinleştirmek için setFilterTouchesWhenObscured(boolean) ç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.

{% embed url="https://websec.nl/" %}

{% hint style="success" %} AWS Hacking'i öğrenin ve pratik yapın:HackTricks Training AWS Red Team Expert (ARTE)
GCP Hacking'i öğrenin ve pratik yapın: HackTricks Training GCP Red Team Expert (GRTE)

HackTricks'i Destekleyin
{% endhint %}