Android Task Hijacking
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
U Androidu, task je u suštini skup aktivnosti sa kojima korisnici interaguju kako 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.
U Android aplikacijama, task affinity specificira preferirani zadatak aktivnosti, obično usklađen sa imenom paketa aplikacije. Ova postavka je ključna za kreiranje aplikacije za dokazivanje koncepta (PoC) za demonstraciju napada.
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.
Instalacija zlonamerne aplikacije: Žrtva instalira napadačevu aplikaciju na svom uređaju.
Prva aktivacija: Žrtva prvo otvara zlonamernu aplikaciju, pripremajući uređaj za napad.
Pokušaj pokretanja ciljne aplikacije: Žrtva pokušava da otvori ciljnu aplikaciju.
Izvršenje otmice: Zbog podudaranja task affinity, zlonamerna aplikacija se pokreće umesto ciljne aplikacije.
Obmana: Zlonamerna aplikacija prikazuje lažni ekran za prijavu koji podseća na ciljnu aplikaciju, obmanjujući korisnika da unese osetljive informacije.
Za praktičnu implementaciju ovog napada, pogledajte Task Hijacking Strandhogg repozitorijum na GitHub-u: Task Hijacking Strandhogg.
Da bi se sprečili ovakvi napadi, programeri mogu postaviti taskAffinity
na prazan string i odabrati singleInstance
režim pokretanja, osiguravajući izolaciju svoje aplikacije od drugih. Prilagođavanje funkcije onBackPressed()
pruža dodatnu zaštitu protiv otmice zadataka.
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)