hacktricks/mobile-pentesting/android-app-pentesting/tapjacking.md
2024-02-10 18:14:16 +00:00

6.9 KiB
Raw Blame History

Tapjacking

AWS hackleme becerilerini sıfırdan ileri seviyeye öğrenmek için htARTE (HackTricks AWS Kırmızı Takım Uzmanı)'ı öğrenin!

HackTricks'i desteklemenin diğer yolları:

Temel Bilgiler

Tapjacking, bir kötü niyetli 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 engellediğinde, kullanıcı arayüzü, kullanıcıyı yanıltacak şekilde tasarlanırken, etkileşimi kurban uygulamaya iletmektedir.
Bu şekilde, kullanıcıya, gerçekte kurban uygulamada eylemler gerçekleştirdiğini bilmemesi sağlanır.

Tespit

Bu saldırıya karşı savunmasız uygulamaları tespit etmek için android manifestteki dışa aktarılan aktiviteleri aramalısınız (bir intent-filter'a sahip bir aktivite varsayılan olarak otomatik olarak dışa aktarılır). Dışa aktarılan aktiviteleri bulduktan sonra, herhangi bir izin gerekip gerekmediğini kontrol edin. Çünkü kötü niyetli uygulama da o izne ihtiyaç duyacaktır.

Koruma

Android 12 (API 31,32) ve daha yüksek

Bu kaynağa göre, Android 12 (API 31 ve 30) ve daha yüksek sürümlerinden itibaren tapjacking saldırıları otomatik olarak Android tarafından engellenir. Bu nedenle, uygulama savunmasız olsa bile sömürülemezsiniz.

filterTouchesWhenObscured

Eğer android:filterTouchesWhenObscured true olarak ayarlanmışsa, View, görünür başka bir pencere tarafından engellendiğinde dokunmaları almayacaktır.

setFilterTouchesWhenObscured

Eğer Android sürümü daha düşükse, setFilterTouchesWhenObscured özelliği true olarak ayarlanırsa, bu zafiyetin sömürülmesini engelleyebilir.
Örneğin, bir düğme görünür şekilde engellendiğinde otomatik olarak 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>

Sömürü

Tapjacking-ExportedActivity

En son Android uygulaması bir Tapjacking saldırısı gerçekleştiren (+ saldırıya uğrayan uygulamanın dışa aktarılan bir etkinliğini çağırmadan önce) şurada bulunabilir: https://github.com/carlospolop/Tapjacking-ExportedActivity.

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

FloatingWindowApp

Tıklama hırsızlığı saldırısı gerçekleştirmek için diğer etkinliklerin üzerine yerleştirilebilen FloatingWindowApp'i uygulayan bir örnek proje FloatingWindowApp adresinde bulunabilir (biraz eski, apk oluştururken iyi şanslar).

Qark

{% hint style="danger" %} Bu proje artık bakımsız görünüyor ve bu işlevsellik artık düzgün çalışmıyor gibi görünüyor. {% endhint %}

Muhtemel Tapjacking zafiyetlerini test etmek için kötü niyetli bir uygulama oluşturmak için qark aracını --exploit-apk --sdk-path /Users/username/Library/Android/sdk parametreleriyle kullanabilirsiniz.

Bu saldırıyı önlemek 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ı almayı seçmeyebilir. Android Geliştirici Referansı kullanılarak şu şekilde açıklanmıştır:

Bir izin isteği vermek, bir satın alma yapmak veya bir reklama tıklamak gibi bir eylemin kullanıcının tam bilgisi ve onayıyla gerçekleştirildiğini doğrulamanın bazen önemli olduğu durumlar vardır. Ne yazık ki, kötü niyetli bir uygulama, kullanıcının bu eylemleri farkında olmadan gerçekleştirmesini sağlamak için görünümün amaçlanan amacını gizleyebilir. 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) yöntemini çağırın veya android:filterTouchesWhenObscured düzen özniteliğini true olarak ayarlayın. Etkinleştirildiğinde, çerçeve, görünümün penceresinin başka bir görünür pencere tarafından kaplandığı her zaman alınan dokunmaları atar. Sonuç olarak, bir tost, iletişim kutusu veya diğer bir pencere görünümün penceresinin üzerinde göründüğünde görünüm dokunmaları almayacaktır.

AWS hackleme konusunda sıfırdan kahraman olmaya htARTE (HackTricks AWS Red Team Expert) öğrenin!

HackTricks'i desteklemenin diğer yolları: