Tapjacking

AWS hacklemeyi sıfırdan kahraman seviyesine öğrenin htARTE (HackTricks AWS Red Team Expert) ile!

HackTricks'ı desteklemenin diğer yolları:

Temel Bilgiler

Tapjacking, kötü niyetli bir uygulamanın kurban uygulamanın üstüne yerleştiği ve konumlandığı bir saldırıdır. Kurban uygulamayı açıkça engellediğinde, kullanıcı arayüzü kullanıcıyı yanıltacak şekilde tasarlanmıştır ve kullanıcıyı etkileşime girmeye ikna etmeye çalışırken, etkileşimi kurban uygulamaya iletmektedir. Aslında, kullanıcının kurban uygulamada gerçekten eylemler gerçekleştirdiğini bilmemesine neden olur.

Tespit

Bu saldırıya karşı savunmasız uygulamaları tespit etmek için android manifestte 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. Bu, kötü niyetli uygulamanın da o izne ihtiyaç duyacağı anlamına gelir.

Koruma

Android 12 (API 31,32) ve üstü

Bu kaynağa göre, Android 12'den (API 31 ve 30) ve üstünden itibaren tapjacking saldırıları otomatik olarak engellenir. Bu nedenle, uygulama savunmasız olsa bile onu sömüremeyeceksiniz.

filterTouchesWhenObscured

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

setFilterTouchesWhenObscured

Özellik setFilterTouchesWhenObscured true olarak ayarlandığında, bu zafiyetin sömürülmesini önleyebilir, özellikle Android sürümü daha düşükse. Örneğin true olarak ayarlandığında, bir düğme otomatik olarak engellenebilir hale gelir eğer engellenmişse:

<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ştirebilir (+ hedeflenen uygulamanın dışa aktarılan bir aktivitesinden önce çağrı yapabilir) şurada bulunabilir: https://github.com/carlospolop/Tapjacking-ExportedActivity.

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

FloatingWindowApp

Başka aktivitelerin üzerine yerleştirilebilecek FloatingWindowApp'i uygulamak için bir örnek proje FloatingWindowApp içinde bulunabilir (biraz eski, apk oluşturma konusunda iyi şanslar).

Qark

Bu proje artık bakımsız görünüyor ve bu işlev artık düzgün çalışmıyor gibi görünüyor

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

Geliştirici, bir görünüm başka bir şey tarafından kapatıldığında dokunma olaylarını almayı seçebilir, bu nedenle önlem oldukça basittir. Android Geliştirici Referansı kullanarak:

Bazı durumlarda, bir uygulamanın bir izin isteğini kabul eden, bir satın alma yapan veya bir reklama tıklayan kullanıcı tarafından tam bilgi ve onayla gerçekleştirildiğini doğrulaması gerekebilir. Ne yazık ki, kötü niyetli bir uygulama, kullanıcıyı, görünümün amaçlanan amacını gizleyerek, bu eylemleri yapmaya zorlayabilir. 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 penceresi başka bir görünür pencere tarafından kaplandığında alınan dokunuşları reddedecektir. Sonuç olarak, görünüm, bir toast, iletişim kutusu veya başka bir pencere görünümünün penceresinin üzerinde göründüğünde dokunuşları almayacaktır.

Last updated