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)
W systemie Android, task to zasadniczo zestaw aktywności, z którymi użytkownicy wchodzą w interakcję, aby wykonać określone zadanie, zorganizowane w back stack. Ten stos porządkuje aktywności na podstawie momentu ich otwarcia, z najnowszą aktywnością wyświetlaną na górze jako foreground activity. W każdej chwili tylko ta aktywność jest widoczna na ekranie, co czyni ją częścią foreground task.
Oto szybkie podsumowanie przejść między aktywnościami:
Aktywność 1 zaczyna jako jedyna aktywność na pierwszym planie.
Uruchomienie Aktywności 2 przesuwa Aktywność 1 do back stack, przynosząc Aktywność 2 na pierwszy plan.
Rozpoczęcie Aktywności 3 przesuwa Aktywność 1 i Aktywność 2 dalej w stosie, z Aktywnością 3 teraz na przodzie.
Zamknięcie Aktywności 3 przywraca Aktywność 2 na pierwszy plan, pokazując uproszczony mechanizm nawigacji po zadaniach w Androidzie.
W aplikacjach Android, task affinity określa preferowany task dla aktywności, zazwyczaj zgodny z nazwą pakietu aplikacji. Ta konfiguracja jest kluczowa w tworzeniu aplikacji proof-of-concept (PoC) do demonstrowania ataku.
Atrybut launchMode
kieruje obsługą instancji aktywności w ramach zadań. Tryb singleTask jest kluczowy dla tego ataku, dyktując trzy scenariusze w oparciu o istniejące instancje aktywności i dopasowania task affinity. Wykorzystanie opiera się na zdolności aplikacji atakującego do naśladowania task affinity aplikacji docelowej, wprowadzając system Android w błąd, aby uruchomił aplikację atakującego zamiast zamierzonej.
Instalacja złośliwej aplikacji: Ofiara instaluje aplikację atakującego na swoim urządzeniu.
Początkowa aktywacja: Ofiara najpierw otwiera złośliwą aplikację, przygotowując urządzenie do ataku.
Próba uruchomienia aplikacji docelowej: Ofiara próbuje otworzyć aplikację docelową.
Wykonanie przejęcia: Z powodu dopasowania task affinity, złośliwa aplikacja jest uruchamiana zamiast aplikacji docelowej.
Oszustwo: Złośliwa aplikacja wyświetla fałszywy ekran logowania przypominający aplikację docelową, oszukując użytkownika, aby wprowadził wrażliwe informacje.
Aby uzyskać praktyczną implementację tego ataku, zapoznaj się z repozytorium Task Hijacking Strandhogg na GitHubie: Task Hijacking Strandhogg.
Aby zapobiec takim atakom, deweloperzy mogą ustawić taskAffinity
na pusty ciąg i wybrać tryb uruchamiania singleInstance
, zapewniając izolację ich aplikacji od innych. Dostosowanie funkcji onBackPressed()
oferuje dodatkową ochronę przed przejęciem zadań.
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)