hacktricks/mobile-pentesting/android-app-pentesting/android-task-hijacking.md
2024-02-11 01:46:25 +00:00

6.8 KiB

Android Task Hijacking

Naucz się hakować AWS od zera do bohatera z htARTE (HackTricks AWS Red Team Expert)!

Inne sposoby wsparcia HackTricks:

Znajdź najważniejsze podatności, aby szybko je naprawić. Intruder śledzi powierzchnię ataku, wykonuje proaktywne skanowanie zagrożeń, znajduje problemy we wszystkich warstwach technologicznych, od interfejsów API po aplikacje internetowe i systemy chmurowe. Wypróbuj za darmo już dziś.

{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}


Zadanie, stos wsteczny i aktywności w pierwszym planie

W systemie Android zadanie to zestaw aktywności, z którymi użytkownicy współdziałają, aby ukończyć określone zadanie, zorganizowane w stosie wstecznym. Ten stos uporządkowuje aktywności na podstawie czasu ich otwarcia, przy czym najnowsza aktywność jest wyświetlana na górze jako aktywność w pierwszym planie. W każdej chwili tylko ta aktywność jest widoczna na ekranie, co czyni ją częścią zadania w pierwszym planie.

Oto szybki przegląd przejść między aktywnościami:

  • Aktywność 1 rozpoczyna jako jedyna aktywność w pierwszym planie.
  • Uruchomienie aktywności 2 przesuwa aktywność 1 do stosu wstecznego, przynosząc aktywność 2 do pierwszego planu.
  • Rozpoczęcie aktywności 3 przenosi aktywność 1 i aktywność 2 dalej w stosie, a aktywność 3 jest teraz na pierwszym planie.
  • Zamknięcie aktywności 3 przywraca aktywność 2 do pierwszego planu, prezentując zoptymalizowany mechanizm nawigacji zadań w systemie Android.

https://developer.android.com/images/fundamentals/diagram_backstack.png

Atak na powiązanie zadań

Przegląd powiązania zadań i trybów uruchamiania

W aplikacjach Android powiązanie zadań określa preferowane zadanie dla danej aktywności, zwykle zgodne z nazwą pakietu aplikacji. Ta konfiguracja jest istotna przy tworzeniu aplikacji proof-of-concept (PoC) do demonstracji ataku.

Tryby uruchamiania

Atrybut launchMode kieruje obsługą instancji aktywności w zadaniach. Tryb singleTask jest kluczowy dla tego ataku i określa trzy scenariusze na podstawie istniejących instancji aktywności i dopasowania powiązania zadań. Atak polega na zdolności aplikacji atakującego do naśladowania powiązania zadań aplikacji docelowej, wprowadzając w błąd system Android i uruchamiając aplikację atakującego zamiast zamierzonej aplikacji docelowej.

Szczegółowe kroki ataku

  1. Instalacja złośliwej aplikacji: Ofiara instaluje aplikację atakującego na swoim urządzeniu.
  2. Początkowe uruchomienie: Ofiara otwiera po raz pierwszy złośliwą aplikację, przygotowując urządzenie do ataku.
  3. Próba uruchomienia aplikacji docelowej: Ofiara próbuje otworzyć aplikację docelową.
  4. Przechwycenie wykonania: Ze względu na dopasowanie powiązania zadań, zamiast aplikacji docelowej uruchamiana jest złośliwa aplikacja.
  5. Oszustwo: Złośliwa aplikacja prezentuje fałszywy ekran logowania przypominający aplikację docelową, wprowadzając użytkownika w błąd i skłaniając go do podania poufnych informacji.

Aby zobaczyć praktyczną implementację tego ataku, odwołaj się do repozytorium Task Hijacking Strandhogg na GitHubie: Task Hijacking Strandhogg.

Środki zapobiegawcze

Aby zapobiec takim atakom, programiści mogą ustawić taskAffinity na pusty ciąg znaków i wybrać tryb uruchamiania singleInstance, zapewniając izolację swojej aplikacji od innych. Dostosowanie funkcji onBackPressed() oferuje dodatkową ochronę przed przechwyceniem zadań.

Odnośniki

Znajdź najważniejsze podatności, aby szybko je naprawić. Intruder śledzi powierzchnię ataku, wykonuje proaktywne skanowanie zagrożeń, znajduje problemy we wszystkich warstwach technologicznych, od interfejsów API po aplikacje internetowe i systemy chmurowe. Wypróbuj za darmo już dziś.

{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}

Naucz się hakować AWS od zera do bohatera z htARTE (HackTricks AWS Red Team Expert)!

Inne sposoby wsparcia HackTricks: