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 का समर्थन करें

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 के सुव्यवस्थित कार्य नेविगेशन तंत्र को प्रदर्शित करती है।

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

Task affinity attack

Overview of Task Affinity and Launch Modes

Android अनुप्रयोगों में, task affinity एक गतिविधि के पसंदीदा कार्य को निर्दिष्ट करता है, जो आमतौर पर ऐप के पैकेज नाम के साथ मेल खाता है। यह सेटअप हमले को प्रदर्शित करने के लिए एक प्रमाण-ऑफ-कॉन्सेप्ट (PoC) ऐप बनाने में महत्वपूर्ण है।

Launch Modes

launchMode विशेषता कार्यों के भीतर गतिविधि उदाहरणों के प्रबंधन को निर्देशित करती है। singleTask मोड इस हमले के लिए महत्वपूर्ण है, जो मौजूदा गतिविधि उदाहरणों और कार्य संबंधी मेल के आधार पर तीन परिदृश्यों को निर्धारित करता है। यह शोषण हमलावर के ऐप की क्षमता पर निर्भर करता है कि वह लक्षित ऐप के कार्य संबंधी मेल की नकल कर सके, जिससे Android सिस्टम को लक्षित ऐप के बजाय हमलावर के ऐप को लॉन्च करने के लिए भटकाया जा सके।

Detailed Attack Steps

  1. Malicious App Installation: पीड़ित अपने डिवाइस पर हमलावर का ऐप इंस्टॉल करता है।
  2. Initial Activation: पीड़ित पहले दुर्भावनापूर्ण ऐप खोलता है, जिससे हमले के लिए डिवाइस सेटअप होता है।
  3. Target App Launch Attempt: पीड़ित लक्षित ऐप खोलने का प्रयास करता है।
  4. Hijack Execution: किसी बिंदु पर ऐप singleTask दृश्य खोलने की कोशिश करता है। मेल खाते कार्य संबंध के कारण, लक्षित ऐप के स्थान पर दुर्भावनापूर्ण ऐप लॉन्च होता है।
  5. Deception: दुर्भावनापूर्ण ऐप लक्षित ऐप के समान एक नकली लॉगिन स्क्रीन प्रस्तुत करता है, उपयोगकर्ता को संवेदनशील जानकारी दर्ज करने के लिए धोखा देता है।

tip

ध्यान दें कि इस हमले के काम करने के लिए कमजोर दृश्य को exported to true होने की आवश्यकता नहीं है और न ही यह मुख्य गतिविधि होनी चाहिए।

इस हमले के व्यावहारिक कार्यान्वयन के लिए, GitHub पर Task Hijacking Strandhogg रिपॉजिटरी देखें: Task Hijacking Strandhogg.

Prevention Measures

ऐसे हमलों को रोकने के लिए, डेवलपर्स कर सकते हैं:

  • **taskAffinity को singleTask दृश्य के लिए एक खाली स्ट्रिंग (android:taskAffinity="") पर सेट करें।
  • singleInstance लॉन्च मोड का विकल्प चुनें, यह सुनिश्चित करते हुए कि उनका ऐप दूसरों से अलग है।
  • onBackPressed() फ़ंक्शन को अनुकूलित करें जो कार्य हाइजैकिंग के खिलाफ अतिरिक्त सुरक्षा प्रदान करता है।

References

tip

AWS हैकिंग सीखें और अभ्यास करें:HackTricks Training AWS Red Team Expert (ARTE)
GCP हैकिंग सीखें और अभ्यास करें: HackTricks Training GCP Red Team Expert (GRTE)

HackTricks का समर्थन करें