hacktricks/mobile-pentesting/android-app-pentesting/android-task-hijacking.md

6.2 KiB

Przechwytywanie Zadań w Androidzie

Nauka hakowania AWS od zera do bohatera z htARTE (HackTricks AWS Red Team Expert)!

Inne sposoby wsparcia HackTricks:

Try Hard Security Group

{% embed url="https://discord.gg/tryhardsecurity" %}


Zadanie, Stos Wsteczny i Aktywności W Pierwszym Planie

W systemie Android zadanie to zbiór aktywności, z którymi użytkownicy współdziałają, aby ukończyć określone zadanie, zorganizowane w stosie wstecznej. Ten stos uporządkowuje aktywności na podstawie ich otwarcia, z najnowszą aktywnością wyświetlaną 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 szybkie omówienie przejść między aktywnościami:

  • Aktywność 1 zaczyna jako jedyna aktywność w pierwszym planie.
  • Uruchomienie Aktywności 2 przesuwa Aktywność 1 na stos wsteczny, przynosząc Aktywność 2 do pierwszego planu.
  • Rozpoczęcie Aktywności 3 przenosi Aktywność 1 i Aktywność 2 dalej w stosie, a teraz Aktywność 3 jest 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 Powinowactwo Zadań

Przegląd Powinowactwa Zadań i Trybów Uruchamiania

W aplikacjach Android powinowactwo zadania określa preferowane zadanie aktywności, zazwyczaj 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, dyktując trzy scenariusze na podstawie istniejących instancji aktywności i dopasowań powinowactwa zadań. Wykorzystanie polega na zdolności aplikacji atakującego do naśladowania powinowactwa zadań aplikacji docelowej, wprowadzając w błąd system Android, aby uruchomił aplikację atakującego zamiast zamierzonej aplikacji.

Szczegółowe Kroki Ataku

  1. Instalacja Złośliwej Aplikacji: Ofiara instaluje aplikację atakującego na swoim urządzeniu.
  2. Początkowe Aktywowanie: Ofiara najpierw otwiera złośliwą aplikację, przygotowując urządzenie do ataku.
  3. Próba Uruchomienia Aplikacji Docelowej: Ofiara próbuje otworzyć aplikację docelową.
  4. Wykonanie Przechwycenia: Ze względu na dopasowanie powinowactwa zadań, złośliwa aplikacja zostaje uruchomiona zamiast aplikacji docelowej.
  5. Oszustwo: Złośliwa aplikacja prezentuje fałszywy ekran logowania przypominający aplikację docelową, wprowadzając użytkownika w błąd, aby wprowadził wrażliwe informacje.

Dla praktycznej implementacji 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 przechwytywaniem zadań.

Referencje

Try Hard Security Group

{% embed url="https://discord.gg/tryhardsecurity" %}

Nauka hakowania AWS od zera do bohatera z htARTE (HackTricks AWS Red Team Expert)!

Inne sposoby wsparcia HackTricks: