Android Task Hijacking
Reading time: 4 minutes
tip
Jifunze na fanya mazoezi ya AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Jifunze na fanya mazoezi ya GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Jifunze na fanya mazoezi ya Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Support HackTricks
- Angalia mpango wa usajili!
- Jiunge na 💬 kikundi cha Discord au kikundi cha telegram au tufuatilie kwenye Twitter 🐦 @hacktricks_live.
- Shiriki mbinu za hacking kwa kuwasilisha PRs kwa HackTricks na HackTricks Cloud repos za github.
Task, Back Stack and Foreground Activities
Katika Android, task kimsingi ni seti ya shughuli ambazo watumiaji wanashirikiana nazo ili kukamilisha kazi maalum, zimepangwa ndani ya back stack. Stack hii inaweka shughuli kwa msingi wa wakati zilipofunguliwa, huku shughuli ya hivi karibuni ikionyeshwa juu kama foreground activity. Katika wakati wowote, shughuli hii pekee ndiyo inaonekana kwenye skrini, na kuifanya kuwa sehemu ya foreground task.
Hapa kuna muhtasari wa mabadiliko ya shughuli:
- Activity 1 inaanza kama shughuli pekee katika foreground.
- Kuanzisha Activity 2 kunasukuma Activity 1 kwenye back stack, na kuleta Activity 2 kwenye foreground.
- Kuanzisha Activity 3 kunahamisha Activity 1 na Activity 2 zaidi nyuma kwenye stack, huku Activity 3 ikiwa mbele.
- Kufunga Activity 3 kunarudisha Activity 2 kwenye foreground, ikionyesha mfumo wa urambazaji wa kazi wa Android.
Task affinity attack
Overview of Task Affinity and Launch Modes
Katika programu za Android, task affinity inaelezea kazi inayopendelea shughuli, ikilingana kawaida na jina la pakiti ya programu. Mpangilio huu ni muhimu katika kuunda programu ya mfano (PoC) kwa ajili ya kuonyesha shambulio.
Launch Modes
Attribute ya launchMode
inaelekeza usimamizi wa mifano ya shughuli ndani ya kazi. Modo ya singleTask ni muhimu kwa shambulio hili, ikielekeza hali tatu kulingana na mifano ya shughuli zilizopo na mechi za task affinity. Uhalifu unategemea uwezo wa programu ya mshambuliaji kuiga task affinity ya programu lengwa, ikipotosha mfumo wa Android kuanzisha programu ya mshambuliaji badala ya lengwa lililokusudiwa.
Detailed Attack Steps
- Malicious App Installation: Mwathirika anaweka programu ya mshambuliaji kwenye kifaa chao.
- Initial Activation: Mwathirika kwanza anafungua programu ya uhalifu, akitayarisha kifaa kwa shambulio.
- Target App Launch Attempt: Mwathirika anajaribu kufungua programu lengwa.
- Hijack Execution: Wakati fulani programu inajaribu kufungua mtazamo wa singleTask. Kwa sababu ya mechi ya task affinity, programu ya uhalifu inazinduliwa badala ya programu lengwa.
- Deception: Programu ya uhalifu inaonyesha skrini ya kuingia bandia inayofanana na programu lengwa, ikimdanganya mtumiaji kuingiza taarifa nyeti.
tip
Kumbuka kwamba ili shambulio hili lifanye kazi mtazamo dhaifu hauhitaji kuwa na exported to true wala hauhitaji kuwa shughuli Kuu.
Kwa utekelezaji wa vitendo wa shambulio hili, rejelea hifadhi ya Task Hijacking Strandhogg kwenye GitHub: Task Hijacking Strandhogg.
Prevention Measures
Ili kuzuia mashambulizi kama haya, waendelezaji wanaweza:
- Kuweka
**taskAffinity
ya mtazamo wa singleTask kuwa string tupu (android:taskAffinity=""
) - Kuchagua modo ya
singleInstance
, kuhakikisha kutengwa kwa programu yao kutoka kwa nyingine. - Kubinafsisha kazi ya
onBackPressed()
inatoa ulinzi wa ziada dhidi ya hijacking ya kazi.
References
- https://blog.dixitaditya.com/android-task-hijacking/
- https://blog.takemyhand.xyz/2021/02/android-task-hijacking-with.html
tip
Jifunze na fanya mazoezi ya AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Jifunze na fanya mazoezi ya GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Jifunze na fanya mazoezi ya Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Support HackTricks
- Angalia mpango wa usajili!
- Jiunge na 💬 kikundi cha Discord au kikundi cha telegram au tufuatilie kwenye Twitter 🐦 @hacktricks_live.
- Shiriki mbinu za hacking kwa kuwasilisha PRs kwa HackTricks na HackTricks Cloud repos za github.