Android Taak Hijacking
Reading time: 4 minutes
tip
Leer & oefen AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Leer & oefen GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Ondersteun HackTricks
- Kyk na die subskripsie planne!
- Sluit aan by die 💬 Discord groep of die telegram groep of volg ons op Twitter 🐦 @hacktricks_live.
- Deel hacking truuks deur PRs in te dien na die HackTricks en HackTricks Cloud github repos.
Taak, Terug Stapel en Voorgrond Aktiwiteite
In Android is 'n taak basies 'n stel aktiwiteite waarmee gebruikers interaksie het om 'n spesifieke werk te voltooi, georganiseer binne 'n terug stapel. Hierdie stapel orden aktiwiteite gebaseer op wanneer hulle geopen is, met die mees onlangse aktiwiteit wat boaan vertoon word as die voorgrond aktiwiteit. Op enige oomblik is slegs hierdie aktiwiteit sigbaar op die skerm, wat dit deel van die voorgrond taak maak.
Hier is 'n vinnige uiteensetting van aktiwiteit oorgange:
- Aktiwiteit 1 begin as die enigste aktiwiteit in die voorgrond.
- Die bekendstelling van Aktiwiteit 2 druk Aktiwiteit 1 na die terug stapel, wat Aktiwiteit 2 na die voorgrond bring.
- Die begin van Aktiwiteit 3 beweeg Aktiwiteit 1 en Aktiwiteit 2 verder terug in die stapel, met Aktiwiteit 3 nou voor.
- Die sluiting van Aktiwiteit 3 bring Aktiwiteit 2 terug na die voorgrond, wat Android se gestroomlynde taak navigasiemeganisme demonstreer.
Taak affiniteit aanval
Oorsig van Taak Affiniteit en Begin Modusse
In Android toepassings spesifiseer taak affiniteit 'n aktiwiteit se verkiesde taak, wat tipies ooreenstem met die app se pakketnaam. Hierdie opstelling is noodsaaklik om 'n bewys-van-konsep (PoC) app te skep om die aanval te demonstreer.
Begin Modusse
Die launchMode
attribuut rig die hantering van aktiwiteit instansies binne take. Die singleTask modus is van kardinale belang vir hierdie aanval, wat drie scenario's bepaal gebaseer op die bestaande aktiwiteit instansies en taak affiniteit ooreenkomste. Die uitbuiting hang af van die vermoë van 'n aanvaller se app om die teiken app se taak affiniteit na te boots, wat die Android stelsel mislei om die aanvaller se app te begin in plaas van die bedoelde teiken.
Gedetailleerde Aanval Stappe
- Kwaadwillige App Installasie: Die slagoffer installeer die aanvaller se app op hul toestel.
- Begin Aktivering: Die slagoffer open eers die kwaadwillige app, wat die toestel vir die aanval voorberei.
- Teiken App Begin Poging: Die slagoffer probeer om die teiken app te open.
- Hijack Uitvoering: Op 'n sekere punt probeer die app om die singleTask weergawe te open. Vanweë die ooreenstemmende taak affiniteit, word die kwaadwillige app begin in plaas van die teiken app.
- Bedrog: Die kwaadwillige app bied 'n vals aanmeldskerm aan wat die teiken app naboots, wat die gebruiker mislei om sensitiewe inligting in te voer.
tip
Let daarop dat vir hierdie aanval om te werk, die kwesbare weergawe nie na true geexporteer hoef te word nie en dit hoef ook nie die Hoof aktiwiteit te wees nie.
Vir 'n praktiese implementering van hierdie aanval, verwys na die Taak Hijacking Strandhogg repository op GitHub: Task Hijacking Strandhogg.
Voorkoming Maatreëls
Om sulke aanvalle te voorkom, kan ontwikkelaars:
- Stel
**taskAffinity
van die singleTask weergawe op 'n leë string (android:taskAffinity=""
) - Kies die
singleInstance
beginmodus, wat verseker dat hul app van ander geïsoleer is. - Pas die
onBackPressed()
funksie aan wat addisionele beskerming teen taak hijacking bied.
Verwysings
- https://blog.dixitaditya.com/android-task-hijacking/
- https://blog.takemyhand.xyz/2021/02/android-task-hijacking-with.html
tip
Leer & oefen AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Leer & oefen GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Ondersteun HackTricks
- Kyk na die subskripsie planne!
- Sluit aan by die 💬 Discord groep of die telegram groep of volg ons op Twitter 🐦 @hacktricks_live.
- Deel hacking truuks deur PRs in te dien na die HackTricks en HackTricks Cloud github repos.