Android Task Hijacking
Reading time: 4 minutes
tip
AWS हैकिंग सीखें और अभ्यास करें:HackTricks Training AWS Red Team Expert (ARTE)
GCP हैकिंग सीखें और अभ्यास करें: HackTricks Training GCP Red Team Expert (GRTE)
HackTricks का समर्थन करें
- सदस्यता योजनाएँ देखें!
- हमारे 💬 Discord समूह या टेलीग्राम समूह में शामिल हों या हमारे Twitter 🐦 @hacktricks_live** का पालन करें।**
- हैकिंग ट्रिक्स साझा करें और HackTricks और HackTricks Cloud गिटहब रिपोजिटरी में PRs सबमिट करें।
Task, Back Stack and Foreground Activities
Android में, एक task मूल रूप से गतिविधियों का एक सेट है जिससे उपयोगकर्ता एक विशिष्ट कार्य पूरा करने के लिए इंटरैक्ट करते हैं, जो एक back stack के भीतर व्यवस्थित होता है। यह स्टैक गतिविधियों को इस आधार पर क्रमबद्ध करता है कि उन्हें कब खोला गया था, सबसे हाल की गतिविधि को शीर्ष पर foreground activity के रूप में प्रदर्शित करता है। किसी भी समय, केवल यह गतिविधि स्क्रीन पर दिखाई देती है, जिससे यह foreground task का हिस्सा बन जाती है।
यहां गतिविधि संक्रमण का एक त्वरित विवरण है:
- Activity 1 केवल foreground में एकमात्र गतिविधि के रूप में शुरू होती है।
- Activity 2 को लॉन्च करने से Activity 1 को back stack में धकेल दिया जाता है, Activity 2 को foreground में लाते हुए।
- Activity 3 शुरू करने से Activity 1 और Activity 2 को स्टैक में और पीछे ले जाया जाता है, Activity 3 अब सामने होती है।
- Activity 3 को बंद करने से Activity 2 फिर से foreground में आ जाती है, जो Android के सुव्यवस्थित कार्य नेविगेशन तंत्र को प्रदर्शित करती है।
Task affinity attack
Overview of Task Affinity and Launch Modes
Android अनुप्रयोगों में, task affinity एक गतिविधि के पसंदीदा कार्य को निर्दिष्ट करता है, जो आमतौर पर ऐप के पैकेज नाम के साथ मेल खाता है। यह सेटअप हमले को प्रदर्शित करने के लिए एक प्रमाण-ऑफ-कॉन्सेप्ट (PoC) ऐप बनाने में महत्वपूर्ण है।
Launch Modes
launchMode
विशेषता कार्यों के भीतर गतिविधि उदाहरणों के प्रबंधन को निर्देशित करती है। singleTask मोड इस हमले के लिए महत्वपूर्ण है, जो मौजूदा गतिविधि उदाहरणों और कार्य संबंधी मेल के आधार पर तीन परिदृश्यों को निर्धारित करता है। यह शोषण हमलावर के ऐप की क्षमता पर निर्भर करता है कि वह लक्षित ऐप के कार्य संबंधी मेल की नकल कर सके, जिससे Android सिस्टम को लक्षित ऐप के बजाय हमलावर के ऐप को लॉन्च करने के लिए भटकाया जा सके।
Detailed Attack Steps
- Malicious App Installation: पीड़ित अपने डिवाइस पर हमलावर का ऐप इंस्टॉल करता है।
- Initial Activation: पीड़ित पहले दुर्भावनापूर्ण ऐप खोलता है, जिससे हमले के लिए डिवाइस सेटअप होता है।
- Target App Launch Attempt: पीड़ित लक्षित ऐप खोलने का प्रयास करता है।
- Hijack Execution: किसी बिंदु पर ऐप singleTask दृश्य खोलने की कोशिश करता है। मेल खाते कार्य संबंध के कारण, लक्षित ऐप के स्थान पर दुर्भावनापूर्ण ऐप लॉन्च होता है।
- Deception: दुर्भावनापूर्ण ऐप लक्षित ऐप के समान एक नकली लॉगिन स्क्रीन प्रस्तुत करता है, उपयोगकर्ता को संवेदनशील जानकारी दर्ज करने के लिए धोखा देता है।
tip
ध्यान दें कि इस हमले के काम करने के लिए कमजोर दृश्य को exported to true होने की आवश्यकता नहीं है और न ही यह मुख्य गतिविधि होनी चाहिए।
इस हमले के व्यावहारिक कार्यान्वयन के लिए, GitHub पर Task Hijacking Strandhogg रिपॉजिटरी देखें: Task Hijacking Strandhogg.
Prevention Measures
ऐसे हमलों को रोकने के लिए, डेवलपर्स कर सकते हैं:
**taskAffinity
को singleTask दृश्य के लिए एक खाली स्ट्रिंग (android:taskAffinity=""
) पर सेट करें।singleInstance
लॉन्च मोड का विकल्प चुनें, यह सुनिश्चित करते हुए कि उनका ऐप दूसरों से अलग है।onBackPressed()
फ़ंक्शन को अनुकूलित करें जो कार्य हाइजैकिंग के खिलाफ अतिरिक्त सुरक्षा प्रदान करता है।
References
- https://blog.dixitaditya.com/android-task-hijacking/
- https://blog.takemyhand.xyz/2021/02/android-task-hijacking-with.html
tip
AWS हैकिंग सीखें और अभ्यास करें:HackTricks Training AWS Red Team Expert (ARTE)
GCP हैकिंग सीखें और अभ्यास करें: HackTricks Training GCP Red Team Expert (GRTE)
HackTricks का समर्थन करें
- सदस्यता योजनाएँ देखें!
- हमारे 💬 Discord समूह या टेलीग्राम समूह में शामिल हों या हमारे Twitter 🐦 @hacktricks_live** का पालन करें।**
- हैकिंग ट्रिक्स साझा करें और HackTricks और HackTricks Cloud गिटहब रिपोजिटरी में PRs सबमिट करें।