Android Task Hijacking

Reading time: 3 minutes

tip

Učite i vežbajte AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Učite i vežbajte GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Podržite HackTricks

Task, Back Stack and Foreground Activities

U Androidu, task je u suštini skup aktivnosti sa kojima korisnici interaguju da bi završili određeni posao, organizovan unutar back stack. Ova stog organizuje aktivnosti na osnovu vremena kada su otvorene, pri čemu je najnovija aktivnost prikazana na vrhu kao foreground activity. U bilo kojem trenutku, samo je ova aktivnost vidljiva na ekranu, čineći je delom foreground task.

Evo brzog pregleda prelaza između aktivnosti:

  • Activity 1 počinje kao jedina aktivnost u foreground-u.
  • Pokretanje Activity 2 pomera Activity 1 u back stack, dovodeći Activity 2 u foreground.
  • Pokretanje Activity 3 pomera Activity 1 i Activity 2 dalje nazad u stogu, pri čemu je Activity 3 sada ispred.
  • Zatvaranje Activity 3 vraća Activity 2 nazad u foreground, prikazujući Androidov pojednostavljeni mehanizam navigacije kroz zadatke.

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

Task affinity attack

Overview of Task Affinity and Launch Modes

U Android aplikacijama, task affinity specificira preferirani task aktivnosti, obično usklađen sa imenom paketa aplikacije. Ova postavka je ključna za kreiranje aplikacije za dokazivanje koncepta (PoC) za demonstraciju napada.

Launch Modes

Atribut launchMode usmerava rukovanje instancama aktivnosti unutar zadataka. singleTask režim je ključan za ovaj napad, određujući tri scenarija na osnovu postojećih instanci aktivnosti i podudaranja task affinity. Eksploatacija se oslanja na sposobnost napadačeve aplikacije da imitira task affinity ciljne aplikacije, obmanjujući Android sistem da pokrene napadačevu aplikaciju umesto nameravane mete.

Detailed Attack Steps

  1. Instalacija zlonamerne aplikacije: Žrtva instalira napadačevu aplikaciju na svom uređaju.
  2. Prva aktivacija: Žrtva prvo otvara zlonamernu aplikaciju, pripremajući uređaj za napad.
  3. Pokušaj pokretanja ciljne aplikacije: Žrtva pokušava da otvori ciljnu aplikaciju.
  4. Izvršenje otmice: U nekom trenutku aplikacija pokušava da otvori singleTask prikaz. Zbog podudaranja task affinity, zlonamerna aplikacija se pokreće umesto ciljne aplikacije.
  5. Obmana: Zlonamerna aplikacija prikazuje lažni ekran za prijavu koji podseća na ciljnu aplikaciju, obmanjujući korisnika da unese osetljive informacije.

tip

Imajte na umu da za ovaj napad da bi funkcionisao, ranjivi prikaz ne mora imati exported na true niti mora biti glavna aktivnost.

Za praktičnu implementaciju ovog napada, pogledajte Task Hijacking Strandhogg repozitorijum na GitHub-u: Task Hijacking Strandhogg.

Prevention Measures

Da bi sprečili takve napade, programeri mogu:

  • Postaviti **taskAffinity za singleTask prikaz na prazan string (android:taskAffinity="")
  • Odabrati singleInstance režim pokretanja, osiguravajući izolaciju svoje aplikacije od drugih.
  • Prilagoditi funkciju onBackPressed() koja nudi dodatnu zaštitu protiv otmice zadataka.

References

tip

Učite i vežbajte AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Učite i vežbajte GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Podržite HackTricks