Android Görev Ele Geçirme
Reading time: 3 minutes
tip
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
- abonelik planlarını kontrol edin!
- Bize katılın 💬 Discord grubuna veya telegram grubuna veya bizi takip edin Twitter'da 🐦 @hacktricks_live.
- Hacking ipuçlarını paylaşın, HackTricks ve HackTricks Cloud github reposuna PR göndererek.
Görev, Geri Yığın ve Ön Plan Aktiviteleri
Android'de, bir görev, kullanıcıların belirli bir işi tamamlamak için etkileşimde bulunduğu aktivitelerin bir setidir ve geri yığın içinde organize edilir. 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.
Görev Affinitesi Saldırısı
Görev Affinitesi ve Başlatma Modları Genel Bakış
Android uygulamalarında, görev affinitesi, 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.
Başlatma Modları
launchMode
niteliği, görevler içindeki aktivite örneklerinin nasıl işleneceğini yönlendirir. singleTask modu, mevcut aktivite örnekleri ve görev affinitesi eşleşmelerine dayalı üç senaryo belirleyerek bu saldırı için kritik öneme sahiptir. Saldırı, bir saldırganın uygulamasının hedef uygulamanın görev affinitesini taklit etme yeteneğine dayanır ve Android sistemini saldırganın uygulamasını başlatmaya yönlendirir.
Ayrıntılı Saldırı Adımları
- 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.
- Ele Geçirme Uygulaması: Eşleşen görev affinitesi 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 Ele Geçirme Strandhogg deposuna bakın: Task Hijacking Strandhogg.
Önleme Önlemleri
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 tercih edebilir. onBackPressed()
fonksiyonunu özelleştirmek, görev ele geçirmeye karşı ek koruma sağlar.
Kaynaklar
- https://blog.dixitaditya.com/android-task-hijacking/
- https://blog.takemyhand.xyz/2021/02/android-task-hijacking-with.html
tip
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
- abonelik planlarını kontrol edin!
- Bize katılın 💬 Discord grubuna veya telegram grubuna veya bizi takip edin Twitter'da 🐦 @hacktricks_live.
- Hacking ipuçlarını paylaşın, HackTricks ve HackTricks Cloud github reposuna PR göndererek.