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

100 lines
12 KiB
Markdown

<details>
<summary><strong>जानें AWS हैकिंग को शून्य से हीरो तक</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong> के साथ!</strong></summary>
HackTricks का समर्थन करने के अन्य तरीके:
* अगर आप चाहते हैं कि आपकी **कंपनी HackTricks में विज्ञापित हो** या **HackTricks को PDF में डाउनलोड करें** तो [**सब्सक्रिप्शन प्लान**](https://github.com/sponsors/carlospolop) देखें!
* [**आधिकारिक PEASS और HackTricks स्वैग**](https://peass.creator-spring.com) प्राप्त करें
* हमारा विशेष [**NFTs**](https://opensea.io/collection/the-peass-family) संग्रह, [**The PEASS Family**](https://opensea.io/collection/the-peass-family) खोजें
* **शामिल हों** 💬 [**डिस्कॉर्ड समूह**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) या हमें **ट्विटर** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)** पर फॉलो** करें।
* **अपने हैकिंग ट्रिक्स साझा करें, HackTricks** और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos में PRs सबमिट करके।
</details>
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
iOS उपकरणों पर एप्लिकेशनों के भीतर और उनके बीच डेटा साझा करने की सुविधा [`UIPasteboard`](https://developer.apple.com/documentation/uikit/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 सेकंड में बदलाव करता है:
```javascript
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);
```
## संदर्भ
* [https://mobile-security.gitbook.io/mobile-security-testing-guide/ios-testing-guide/0x06h-testing-platform-interaction#testing-object-persistence-mstg-platform-8](https://mobile-security.gitbook.io/mobile-security-testing-guide/ios-testing-guide/0x06h-testing-platform-interaction#testing-object-persistence-mstg-platform-8)
* [https://hackmd.io/@robihamanto/owasp-robi](https://hackmd.io/@robihamanto/owasp-robi)
* [https://mas.owasp.org/MASTG/tests/ios/MASVS-PLATFORM/MASTG-TEST-0073/](https://mas.owasp.org/MASTG/tests/ios/MASVS-PLATFORM/MASTG-TEST-0073/)
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
<details>
<summary><strong>जीरो से हीरो तक AWS हैकिंग सीखें</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
HackTricks का समर्थन करने के अन्य तरीके:
* यदि आप अपनी **कंपनी का विज्ञापन HackTricks में देखना चाहते हैं** या **HackTricks को PDF में डाउनलोड करना चाहते हैं** तो [**सदस्यता योजनाएं देखें**](https://github.com/sponsors/carlospolop)!
* [**आधिकारिक PEASS & HackTricks स्वैग**](https://peass.creator-spring.com) प्राप्त करें
* हमारे विशेष [**NFTs**](https://opensea.io/collection/the-peass-family) कलेक्शन [**The PEASS Family**](https://opensea.io/collection/the-peass-family) खोजें
* **शामिल हों** 💬 [**डिस्कॉर्ड समूह**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) या हमें **ट्विटर** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)** पर फॉलो** करें।
* **हैकिंग ट्रिक्स साझा करें** हैकट्रिक्स और हैकट्रिक्स क्लाउड github रेपो में PR जमा करके।
</details>