mirror of
https://github.com/HackTricks-wiki/hacktricks.git
synced 2025-10-10 18:36:50 +00:00
54 lines
3.8 KiB
Markdown
54 lines
3.8 KiB
Markdown
# Android Görev Ele Geçirme
|
||
|
||
{{#include ../../banners/hacktricks-training.md}}
|
||
|
||
## 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 bir **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örevi**nin 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.
|
||
|
||
.png>)
|
||
|
||
## Görev bağlılığı saldırısı
|
||
|
||
### Görev Bağlılığı ve Başlatma Modları Genel Bakış
|
||
|
||
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.
|
||
|
||
### 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 bağlılığı eşleşmelerine dayanan üç senaryo belirleyerek bu saldırı için kritik öneme sahiptir. 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.
|
||
|
||
### Ayrıntılı Saldırı Adımları
|
||
|
||
1. **Kötü Amaçlı Uygulama Kurulumu**: Kurban, saldırganın uygulamasını cihazına kurar.
|
||
2. **İlk Aktivasyon**: Kurban, önce kötü amaçlı uygulamayı açarak cihazı saldırıya hazırlar.
|
||
3. **Hedef Uygulama Başlatma Girişimi**: Kurban, hedef uygulamayı açmaya çalışır.
|
||
4. **Ele Geçirme Uygulaması**: Bir noktada uygulama **singleTask** görünümünü açmaya çalışır. Eşleşen görev bağlılığı nedeniyle, kötü amaçlı uygulama hedef uygulamanın yerine başlatılır.
|
||
5. **Aldatma**: Kötü amaçlı uygulama, hedef uygulamaya benzeyen sahte bir giriş ekranı sunarak kullanıcıyı hassas bilgileri girmeye kandırır.
|
||
|
||
> [!TIP]
|
||
> Bu saldırının çalışması için, savunmasız görünümün **true olarak dışa aktarılmış olması gerekmez** ve ana aktivite olması da gerekmez.
|
||
|
||
Bu saldırının pratik bir uygulaması için GitHub'daki Görev Ele Geçirme Strandhogg deposuna bakın: [Görev Ele Geçirme Strandhogg](https://github.com/az0mb13/Task_Hijacking_Strandhogg).
|
||
|
||
### Önleme Önlemleri
|
||
|
||
Bu tür saldırıları önlemek için geliştiriciler:
|
||
- **`**taskAffinity`**'yi **singleTask** görünümü için boş bir dize olarak ayarlayabilir (`android:taskAffinity=""`)
|
||
- Uygulamalarının diğerlerinden izole olmasını sağlamak için **`singleInstance`** başlatma modunu tercih edebilir.
|
||
- Görev ele geçirmeye karşı ek koruma sağlayan **`onBackPressed()`** fonksiyonunu özelleştirebilir.
|
||
|
||
## **Kaynaklar**
|
||
|
||
- [**https://blog.dixitaditya.com/android-task-hijacking/**](https://blog.dixitaditya.com/android-task-hijacking/)
|
||
- [**https://blog.takemyhand.xyz/2021/02/android-task-hijacking-with.html**](https://blog.takemyhand.xyz/2021/02/android-task-hijacking-with.html)
|
||
|
||
{{#include ../../banners/hacktricks-training.md}}
|