5.7 KiB
Przechwytywanie zadań w Androidzie
Nauka hakowania AWS od zera do bohatera z htARTE (HackTricks AWS Red Team Expert)!
Inne sposoby wsparcia HackTricks:
- Jeśli chcesz zobaczyć swoją firmę reklamowaną w HackTricks lub pobrać HackTricks w formacie PDF, sprawdź PLANY SUBSKRYPCYJNE!
- Zdobądź oficjalne gadżety PEASS & HackTricks
- Odkryj Rodzinę PEASS, naszą kolekcję ekskluzywnych NFT
- Dołącz do 💬 grupy Discord lub grupy telegramowej lub śledź nas na Twitterze 🐦 @carlospolopm.
- Podziel się swoimi sztuczkami hakowania, przesyłając PR-y do HackTricks i HackTricks Cloud na GitHubie.
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 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 Aktywność 3 jest teraz na pierwszym miejscu.
- Zamknięcie Aktywności 3 przywraca Aktywność 2 do pierwszego planu, prezentując zoptymalizowany mechanizm nawigacji zadań w systemie Android.
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 Androida i uruchamiając aplikację atakującego zamiast zamierzonej aplikacji docelowej.
Szczegółowe kroki ataku
- Instalacja złośliwej aplikacji: Ofiara instaluje aplikację atakującego na swoim urządzeniu.
- Początkowe uruchomienie: 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 przechwycenia: Ze względu na dopasowanie powinowactwa zadań, złośliwa aplikacja zostaje uruchomiona zamiast aplikacji docelowej.
- 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 do podania poufnych informacji.
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
- https://blog.dixitaditya.com/android-task-hijacking/
- https://blog.takemyhand.xyz/2021/02/android-task-hijacking-with.html
Nauka hakowania AWS od zera do bohatera z htARTE (HackTricks AWS Red Team Expert)!
Inne sposoby wsparcia HackTricks:
- Jeśli chcesz zobaczyć swoją firmę reklamowaną w HackTricks lub pobrać HackTricks w formacie PDF, sprawdź PLANY SUBSKRYPCYJNE!
- Zdobądź oficjalne gadżety PEASS & HackTricks
- Odkryj Rodzinę PEASS, naszą kolekcję ekskluzywnych NFT
- Dołącz do 💬 grupy Discord lub grupy telegramowej lub śledź nas na Twitterze 🐦 @carlospolopm.
- Podziel się swoimi sztuczkami hakowania, przesyłając PR-y do HackTricks i HackTricks Cloud na GitHubie.