Tapjacking
Reading time: 5 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 सबमिट करें।
बुनियादी जानकारी
Tapjacking एक हमला है जहाँ एक दुष्ट अनुप्रयोग लॉन्च किया जाता है और यह पीड़ित अनुप्रयोग के ऊपर खुद को स्थिति में रखता है। जब यह स्पष्ट रूप से पीड़ित ऐप को ढक देता है, तो इसका उपयोगकर्ता इंटरफ़ेस इस तरह से डिज़ाइन किया गया है कि उपयोगकर्ता इसके साथ बातचीत करने के लिए धोखा खा जाए, जबकि यह बातचीत को पीड़ित ऐप के पास भेज रहा है।
इसका प्रभाव यह है कि यह उपयोगकर्ता को यह जानने से अंधा कर देता है कि वे वास्तव में पीड़ित ऐप पर क्रियाएँ कर रहे हैं।
पहचान
इस हमले के प्रति संवेदनशील ऐप्स का पता लगाने के लिए, आपको एंड्रॉइड मैनिफेस्ट में निर्यातित गतिविधियों की खोज करनी चाहिए (ध्यान दें कि एक गतिविधि जिसमें एक इरादा-फिल्टर है, डिफ़ॉल्ट रूप से स्वचालित रूप से निर्यातित होती है)। एक बार जब आप निर्यातित गतिविधियों को ढूंढ लेते हैं, तो जांचें कि क्या उन्हें कोई अनुमति चाहिए। इसका कारण यह है कि दुष्ट अनुप्रयोग को भी उस अनुमति की आवश्यकता होगी।
आप ऐप के न्यूनतम SDK संस्करण की भी जांच कर सकते हैं, android:minSdkVersion
के मान की जांच करते हुए AndroidManifest.xml
फ़ाइल में। यदि मान 30 से कम है, तो ऐप Tapjacking के प्रति संवेदनशील है।
सुरक्षा
Android 12 (API 31,32) और उच्चतर
इस स्रोत के अनुसार, Tapjacking हमलों को Android 12 (API 31 & 30) और उच्चतर से स्वचालित रूप से रोका जाता है। इसलिए, भले ही अनुप्रयोग संवेदनशील हो, आप इसे शोषण नहीं कर पाएंगे।
filterTouchesWhenObscured
यदि android:filterTouchesWhenObscured
को true
पर सेट किया गया है, तो View
को तब भी स्पर्श नहीं मिलेगा जब दृश्य की विंडो किसी अन्य दृश्य विंडो द्वारा ढकी हुई हो।
setFilterTouchesWhenObscured
गुण setFilterTouchesWhenObscured
को सत्य पर सेट करने से इस संवेदनशीलता का शोषण रोकने में मदद मिल सकती है यदि Android संस्करण कम है।
यदि इसे true
पर सेट किया गया है, तो उदाहरण के लिए, एक बटन को स्वचालित रूप से अक्षम किया जा सकता है यदि यह ढका हुआ है:
<Button android:text="Button"
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:filterTouchesWhenObscured="true">
</Button>
शोषण
Tapjacking-ExportedActivity
सबसे हाल का Android एप्लिकेशन जो Tapjacking हमला करता है (+ हमले के एप्लिकेशन की निर्यातित गतिविधि से पहले सक्रिय करना) यहाँ पाया जा सकता है: https://github.com/carlospolop/Tapjacking-ExportedActivity.
इसे उपयोग करने के लिए README निर्देशों का पालन करें.
FloatingWindowApp
एक उदाहरण प्रोजेक्ट जो FloatingWindowApp को लागू करता है, जिसे अन्य गतिविधियों के ऊपर क्लिकजैकिंग हमले को करने के लिए रखा जा सकता है, यहाँ पाया जा सकता है FloatingWindowApp (थोड़ा पुराना, apk बनाने में शुभकामनाएँ).
Qark
caution
ऐसा लगता है कि यह प्रोजेक्ट अब बनाए नहीं रखा गया है और यह कार्यक्षमता अब ठीक से काम नहीं कर रही है
आप qark का उपयोग --exploit-apk
--sdk-path /Users/username/Library/Android/sdk
पैरामीटर के साथ एक दुर्भावनापूर्ण एप्लिकेशन बनाने के लिए कर सकते हैं ताकि संभावित Tapjacking कमजोरियों का परीक्षण किया जा सके।\
निवारण अपेक्षाकृत सरल है क्योंकि डेवलपर यह चुन सकता है कि जब एक दृश्य दूसरे द्वारा ढका होता है तो स्पर्श घटनाएँ प्राप्त न करें। Android Developer’s Reference का उपयोग करते हुए:
कभी-कभी यह आवश्यक होता है कि एक एप्लिकेशन यह सत्यापित कर सके कि कोई क्रिया पूरी जानकारी और उपयोगकर्ता की सहमति के साथ की जा रही है, जैसे कि अनुमति अनुरोध को स्वीकार करना, खरीदारी करना या विज्ञापन पर क्लिक करना। दुर्भाग्यवश, एक दुर्भावनापूर्ण एप्लिकेशन उपयोगकर्ता को इन क्रियाओं को करने के लिए धोखा देने की कोशिश कर सकता है, बिना जानें, दृश्य के इरादे को छिपाकर। एक उपाय के रूप में, ढांचा एक स्पर्श फ़िल्टरिंग तंत्र प्रदान करता है जिसका उपयोग संवेदनशील कार्यक्षमता तक पहुँच प्रदान करने वाले दृश्यों की सुरक्षा में सुधार के लिए किया जा सकता है।
स्पर्श फ़िल्टरिंग सक्षम करने के लिए,
setFilterTouchesWhenObscured(boolean)
को कॉल करें या android:filterTouchesWhenObscured लेआउट विशेषता को true पर सेट करें। जब सक्षम किया जाता है, तो ढांचा उन स्पर्शों को अस्वीकार कर देगा जो तब प्राप्त होते हैं जब दृश्य की विंडो किसी अन्य दृश्य विंडो द्वारा ढकी होती है। परिणामस्वरूप, दृश्य तब स्पर्श प्राप्त नहीं करेगा जब भी एक टोस्ट, संवाद या अन्य विंडो दृश्य की विंडो के ऊपर प्रकट होती है।
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 सबमिट करें।