mirror of
https://github.com/HackTricks-wiki/hacktricks.git
synced 2025-10-10 18:36:50 +00:00
54 lines
3.9 KiB
Markdown
54 lines
3.9 KiB
Markdown
# Android Task Hijacking
|
|
|
|
{{#include ../../banners/hacktricks-training.md}}
|
|
|
|
## Task, Back Stack und Vordergrundaktivitäten
|
|
|
|
In Android ist eine **Task** im Wesentlichen eine Gruppe von Aktivitäten, mit denen Benutzer interagieren, um eine bestimmte Aufgabe zu erledigen, organisiert innerhalb eines **Back Stacks**. Dieser Stack ordnet Aktivitäten basierend darauf, wann sie geöffnet wurden, wobei die aktuellste Aktivität oben als **Vordergrundaktivität** angezeigt wird. Zu jedem Zeitpunkt ist nur diese Aktivität auf dem Bildschirm sichtbar, was sie Teil der **Vordergrund-Task** macht.
|
|
|
|
Hier ist eine kurze Übersicht über Aktivitätsübergänge:
|
|
|
|
- **Aktivität 1** beginnt als die einzige Aktivität im Vordergrund.
|
|
- Das Starten von **Aktivität 2** schiebt **Aktivität 1** in den Back Stack und bringt **Aktivität 2** in den Vordergrund.
|
|
- Das Starten von **Aktivität 3** verschiebt **Aktivität 1** und **Aktivität 2** weiter nach hinten im Stack, wobei **Aktivität 3** jetzt vorne ist.
|
|
- Das Schließen von **Aktivität 3** bringt **Aktivität 2** zurück in den Vordergrund und zeigt das optimierte Task-Navigationsmechanismus von Android.
|
|
|
|
.png>)
|
|
|
|
## Task-Affinitätsangriff
|
|
|
|
### Übersicht über Task-Affinität und Startmodi
|
|
|
|
In Android-Anwendungen gibt die **Task-Affinität** die bevorzugte Task einer Aktivität an, die typischerweise mit dem Paketnamen der App übereinstimmt. Diese Einrichtung ist entscheidend für die Erstellung einer Proof-of-Concept (PoC) App zur Demonstration des Angriffs.
|
|
|
|
### Startmodi
|
|
|
|
Das Attribut `launchMode` steuert die Handhabung von Aktivitätsinstanzen innerhalb von Tasks. Der **singleTask**-Modus ist für diesen Angriff entscheidend und diktiert drei Szenarien basierend auf den vorhandenen Aktivitätsinstanzen und Übereinstimmungen der Task-Affinität. Der Exploit beruht auf der Fähigkeit der App des Angreifers, die Task-Affinität der Ziel-App zu imitieren, wodurch das Android-System in die Irre geführt wird, die App des Angreifers anstelle der beabsichtigten Ziel-App zu starten.
|
|
|
|
### Detaillierte Angriffs Schritte
|
|
|
|
1. **Installation der bösartigen App**: Das Opfer installiert die App des Angreifers auf seinem Gerät.
|
|
2. **Erste Aktivierung**: Das Opfer öffnet zuerst die bösartige App und bereitet das Gerät für den Angriff vor.
|
|
3. **Versuch, die Ziel-App zu starten**: Das Opfer versucht, die Ziel-App zu öffnen.
|
|
4. **Ausführung der Hijack**: Zu einem bestimmten Zeitpunkt versucht die App, die **singleTask**-Ansicht zu öffnen. Aufgrund der übereinstimmenden Task-Affinität wird die bösartige App anstelle der Ziel-App gestartet.
|
|
5. **Täuschung**: Die bösartige App zeigt einen gefälschten Anmeldebildschirm, der der Ziel-App ähnelt, und täuscht den Benutzer, sensible Informationen einzugeben.
|
|
|
|
> [!TIP]
|
|
> Beachten Sie, dass für diesen Angriff die verwundbare Ansicht **nicht auf exported true** gesetzt sein muss, noch muss sie die Hauptaktivität sein.
|
|
|
|
Für eine praktische Implementierung dieses Angriffs verweisen Sie auf das Task Hijacking Strandhogg-Repository auf GitHub: [Task Hijacking Strandhogg](https://github.com/az0mb13/Task_Hijacking_Strandhogg).
|
|
|
|
### Präventionsmaßnahmen
|
|
|
|
Um solche Angriffe zu verhindern, können Entwickler:
|
|
- **`taskAffinity`** der **singleTask**-Ansicht auf eine leere Zeichenfolge setzen (`android:taskAffinity=""`)
|
|
- Den **`singleInstance`**-Startmodus wählen, um die Isolation ihrer App von anderen zu gewährleisten.
|
|
- Die Funktion **`onBackPressed()`** anpassen, um zusätzlichen Schutz gegen Task-Hijacking zu bieten.
|
|
|
|
## **Referenzen**
|
|
|
|
- [**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}}
|