Android Task Hijacking
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Android'de, bir görev, kullanıcıların belirli bir işi tamamlamak için etkileşimde bulunduğu aktivitelerin bir setidir ve bir geri yığın içinde organize edilmiştir. Bu yığın, aktiviteleri açıldıkları zamana göre sıralar; en son açılan aktivite en üstte ön plan aktivitesi olarak görüntülenir. Her an, yalnızca bu aktivite ekranda görünür, bu da onu ön plan görevinin bir parçası yapar.
Aktivite geçişlerinin hızlı bir özeti:
Aktivite 1, ön planda tek aktivite olarak başlar.
Aktivite 2'yi başlatmak, Aktivite 1'i geri yığına iterek Aktivite 2'yi ön plana getirir.
Aktivite 3'ü başlatmak, Aktivite 1 ve Aktivite 2'yi yığında daha geriye taşır, Aktivite 3 şimdi ön plandadır.
Aktivite 3'ü kapatmak, Aktivite 2'yi tekrar ön plana getirir ve Android'in akıcı görev navigasyon mekanizmasını sergiler.
Android uygulamalarında, görev bağlılığı, bir aktivitenin tercih edilen görevini belirtir ve genellikle uygulamanın paket adıyla uyumludur. Bu yapı, saldırıyı göstermek için bir kanıt konsepti (PoC) uygulaması oluşturmakta önemlidir.
launchMode
niteliği, görevler içindeki aktivite örneklerinin nasıl işleneceğini yönlendirir. singleTask modu, bu saldırı için kritik öneme sahiptir ve mevcut aktivite örnekleri ile görev bağlılığı eşleşmelerine dayanan üç senaryo belirler. Saldırı, bir saldırganın uygulamasının hedef uygulamanın görev bağlılığını taklit etme yeteneğine dayanır ve Android sistemini saldırganın uygulamasını başlatmaya yönlendirir.
Kötü Amaçlı Uygulama Kurulumu: Kurban, saldırganın uygulamasını cihazına kurar.
İlk Aktivasyon: Kurban, önce kötü amaçlı uygulamayı açarak cihazı saldırıya hazırlar.
Hedef Uygulama Başlatma Girişimi: Kurban, hedef uygulamayı açmaya çalışır.
Kaçırma Uygulaması: Eşleşen görev bağlılığı nedeniyle, kötü amaçlı uygulama hedef uygulamanın yerine başlatılır.
Aldatma: Kötü amaçlı uygulama, hedef uygulamaya benzeyen sahte bir giriş ekranı sunarak kullanıcıyı hassas bilgileri girmeye kandırır.
Bu saldırının pratik bir uygulaması için GitHub'daki Görev Kaçırma Strandhogg deposuna bakın: Görev Kaçırma Strandhogg.
Bu tür saldırıları önlemek için geliştiriciler, taskAffinity
'yi boş bir dize olarak ayarlayabilir ve uygulamalarının diğerlerinden izole olmasını sağlamak için singleInstance
başlatma modunu seçebilir. onBackPressed()
fonksiyonunu özelleştirmek, görev kaçırmaya karşı ek koruma sağlar.
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)