hacktricks/mobile-pentesting/ios-pentesting/ios-uipasteboard.md

12 KiB

जानें AWS हैकिंग को शून्य से हीरो तक htARTE (HackTricks AWS Red Team Expert) के साथ!

HackTricks का समर्थन करने के अन्य तरीके:

{% embed url="https://websec.nl/" %}

iOS उपकरणों पर एप्लिकेशनों के भीतर और उनके बीच डेटा साझा करने की सुविधा UIPasteboard तंत्र द्वारा सुविधित है, जो दो मुख्य श्रेणियों में विभाजित है:

  • सिस्टम व्यापक पेस्टबोर्ड: यह किसी भी एप्लिकेशन के साथ डेटा साझा करने के लिए उपयोग किया जाता है और डिवाइस पुनरारंभ और ऐप के अनइंस्टॉलेशन के बीच डेटा को स्थायी रूप से बनाए रखने की योजना बनाई गई है, जो iOS 10 से उपलब्ध है।
  • कस्टम / नेम्ड पेस्टबोर्ड: ये एक ऐप के भीतर या एक और एप्लिकेशन के साथ डेटा साझा करने के लिए विशेष रूप से हैं जो एक ही टीम आईडी को साझा करते हैं, और इन्ट्रोड्यूस्ड चेंजेस के अनुसार ये ऐप्लिकेशन प्रक्रिया के जीवन से आगे नहीं बढ़ने के लिए डिज़ाइन किए गए हैं।

सुरक्षा संबंधित विचार का महत्वपूर्ण भूमिका होता है जब पेस्टबोर्ड का उपयोग किया जाता है। उदाहरण के लिए:

  • उपयोगकर्ताओं के लिए पेस्टबोर्ड तक पहुंचने के लिए एप परमिशन का कोई तंत्र नहीं है।
  • पेस्टबोर्ड की गैर-अधिकृत पृष्ठभूमि निगरानी के जोखिम को कम करने के लिए पहुंच को उनके एप्लिकेशन फॉरग्राउंड में होने पर सीमित किया गया है (iOS 9 से).
  • गोपनीयता संबंधित चिंताओं के कारण साझा कंटेनर्स की तुलना में परिस्थितिक नेम्ड पेस्टबोर्ड का उपयोग निषेधित है।
  • iOS 10 के साथ पेश किया गया यूनिवर्सल क्लिपबोर्ड फीचर, जो सामान को सामान्य पेस्टबोर्ड के माध्यम से उपकरणों के बीच साझा करने की अनुमति देता है, उसे डेवलपर्स द्वारा डेटा समाप्ति सेट करने और स्वचालित सामग्री स्थानांतरण को निषेधित करने के लिए प्रबंधित किया जा सकता है।

सुनिश्चित करना कि संवेदनशील जानकारी अनजाने में स्टोर नहीं हो रही है ग्लोबल पेस्टबोर्ड पर महत्वपूर्ण है। इसके अतिरिक्त, एप्लिकेशन को अनजाने कार्रवाई के लिए ग्लोबल पेस्टबोर्ड डेटा का दुरुपयोग रोकने के लिए डिज़ाइन किया जाना चाहिए, और डेवलपर्स को संवेदनशील जानकारी को क्लिपबोर्ड पर कॉपी करने से रोकने के उपाय लेने की सलाह दी जाती है।

स्थैतिक विश्लेषण

स्थैतिक विश्लेषण के लिए, स्रोत कोड या बाइनरी में खोजें:

  • generalPasteboard का उपयोग करने के लिए सिस्टम व्यापक पेस्टबोर्ड की पहचान करने के लिए।
  • pasteboardWithName:create: और pasteboardWithUniqueName के लिए कस्टम पेस्टबोर्ड बनाने के लिए। पुषिष्टि करें कि स्थायित्व सक्षम है, हालांकि यह अप्रचलित है।

गतिशील विश्लेषण

गतिशील विश्लेषण में विशेष विधियों को हुक या ट्रेस करना शामिल है:

  • सिस्टम व्यापक पेस्टबोर्ड के उपयोग के लिए generalPasteboard को मॉनिटर करें।
  • कस्टम अमल के लिए pasteboardWithName:create: और pasteboardWithUniqueName को ट्रेस करें।
  • स्थायित्व सेटिंग्स के लिए डिप्रीकेटेड setPersistent: मेथड कॉल्स की निगरानी के लिए।

मॉनिटर करने के महत्वपूर्ण विवरण शामिल हैं:

  • पेस्टबोर्ड नाम और सामग्री (उदाहरण के लिए, स्ट्रिंग, URL, छवियाँ जांचने के लिए)।
  • मौजूदा आइटमों और डेटा प्रकार की संख्या, मानक और कस्टम डेटा प्रकार जांचों का लाभ उठाएं।
  • setItems:options: मेथड की जांच करके समाप्ति और स्थानीय केवल विकल्प

एक मॉनिटरिंग टूल का उपयोग का उदाहरण है objection's pasteboard monitor, जो हर 5 सेकंड में generalPasteboard को बदलाव के लिए पोल करता है और नए डेटा को आउटपुट करता है।

यहाँ एक सरल जावास्क्रिप्ट स्क्रिप्ट का उदाहरण है, objection के दृष्टिकोण से प्रेरित, जो पेस्टबोर्ड से पाठ पढ़ने और लॉग करने के लिए हर 5 सेकंड में बदलाव करता है:

const UIPasteboard = ObjC.classes.UIPasteboard;
const Pasteboard = UIPasteboard.generalPasteboard();
var items = "";
var count = Pasteboard.changeCount().toString();

setInterval(function () {
const currentCount = Pasteboard.changeCount().toString();
const currentItems = Pasteboard.items().toString();

if (currentCount === count) { return; }

items = currentItems;
count = currentCount;

console.log('[* Pasteboard changed] count: ' + count +
' hasStrings: ' + Pasteboard.hasStrings().toString() +
' hasURLs: ' + Pasteboard.hasURLs().toString() +
' hasImages: ' + Pasteboard.hasImages().toString());
console.log(items);

}, 1000 * 5);

संदर्भ

{% embed url="https://websec.nl/" %}

जीरो से हीरो तक AWS हैकिंग सीखें htARTE (HackTricks AWS Red Team Expert)!

HackTricks का समर्थन करने के अन्य तरीके: