Android Task Hijacking
Last updated
Last updated
Lernen & üben Sie AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Lernen & üben Sie GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
In Android ist eine Task im Wesentlichen eine Reihe von Aktivitäten, mit denen Benutzer interagieren, um eine bestimmte Aufgabe abzuschließen, 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 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-Navigationssystem von Android.
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.
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 nachzuahmen, wodurch das Android-System in die Irre geführt wird, die App des Angreifers anstelle der beabsichtigten Ziel-App zu starten.
Installation der bösartigen App: Das Opfer installiert die App des Angreifers auf seinem Gerät.
Erste Aktivierung: Das Opfer öffnet zuerst die bösartige App und bereitet das Gerät für den Angriff vor.
Versuch, die Ziel-App zu starten: Das Opfer versucht, die Ziel-App zu öffnen.
Ausführung der Hijack: Aufgrund der übereinstimmenden Task-Affinität wird die bösartige App anstelle der Ziel-App gestartet.
Täuschung: Die bösartige App zeigt einen gefälschten Anmeldebildschirm, der der Ziel-App ähnelt, und täuscht den Benutzer, sensible Informationen einzugeben.
Für eine praktische Umsetzung dieses Angriffs verweisen Sie auf das Task Hijacking Strandhogg-Repository auf GitHub: Task Hijacking Strandhogg.
Um solche Angriffe zu verhindern, können Entwickler taskAffinity
auf eine leere Zeichenfolge setzen und den singleInstance
-Startmodus wählen, um die Isolation ihrer App von anderen zu gewährleisten. Die Anpassung der Funktion onBackPressed()
bietet zusätzlichen Schutz gegen Task-Hijacking.
Lernen & üben Sie AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Lernen & üben Sie GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)