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

6.1 KiB

Przechwytywanie zadań w systemie Android

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

Inne sposoby wsparcia HackTricks:

Grupa Try Hard Security

{% 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 wykonać określone zadanie, zorganizowane w stosie wstecznej. Ten stos uporządkowuje aktywności na podstawie czasu 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 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 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 zadań 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 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 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ł poufne 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

Grupa Try Hard Security

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

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

Inne sposoby wsparcia HackTricks: