hacktricks/src/mobile-pentesting/ios-pentesting-checklist.md

94 lines
12 KiB
Markdown

# iOS Pentesting Checklist
{{#include ../banners/hacktricks-training.md}}
### Preparation
- [ ] Read [**iOS Basics**](ios-pentesting/ios-basics.md)
- [ ] Prepare your environment reading [**iOS Testing Environment**](ios-pentesting/ios-testing-environment.md)
- [ ] Read all the sections of [**iOS Initial Analysis**](ios-pentesting/index.html#initial-analysis) to learn common actions to pentest an iOS application
### Data Storage
- [ ] [**Plist files**](ios-pentesting/index.html#plist) संवेदनशील जानकारी संग्रहीत करने के लिए उपयोग किए जा सकते हैं।
- [ ] [**Core Data**](ios-pentesting/index.html#core-data) (SQLite डेटाबेस) संवेदनशील जानकारी संग्रहीत कर सकता है।
- [ ] [**YapDatabases**](ios-pentesting/index.html#yapdatabase) (SQLite डेटाबेस) संवेदनशील जानकारी संग्रहीत कर सकता है।
- [ ] [**Firebase**](ios-pentesting/index.html#firebase-real-time-databases) की गलत कॉन्फ़िगरेशन।
- [ ] [**Realm databases**](ios-pentesting/index.html#realm-databases) संवेदनशील जानकारी संग्रहीत कर सकते हैं।
- [ ] [**Couchbase Lite databases**](ios-pentesting/index.html#couchbase-lite-databases) संवेदनशील जानकारी संग्रहीत कर सकते हैं।
- [ ] [**Binary cookies**](ios-pentesting/index.html#cookies) संवेदनशील जानकारी संग्रहीत कर सकते हैं
- [ ] [**Cache data**](ios-pentesting/index.html#cache) संवेदनशील जानकारी संग्रहीत कर सकता है
- [ ] [**Automatic snapshots**](ios-pentesting/index.html#snapshots) दृश्य संवेदनशील जानकारी को सहेज सकते हैं
- [ ] [**Keychain**](ios-pentesting/index.html#keychain) आमतौर पर संवेदनशील जानकारी संग्रहीत करने के लिए उपयोग किया जाता है जो फोन को फिर से बेचते समय छोड़ी जा सकती है।
- [ ] संक्षेप में, केवल **फाइल सिस्टम में एप्लिकेशन द्वारा सहेजी गई संवेदनशील जानकारी की जांच करें**
### Keyboards
- [ ] क्या एप्लिकेशन [**कस्टम कीबोर्ड का उपयोग करने की अनुमति देता है**](ios-pentesting/index.html#custom-keyboards-keyboard-cache)?
- [ ] जांचें कि क्या संवेदनशील जानकारी [**कीबोर्ड कैश फ़ाइलों**](ios-pentesting/index.html#custom-keyboards-keyboard-cache) में सहेजी गई है
### **Logs**
- [ ] जांचें कि क्या [**संवेदनशील जानकारी लॉग की जा रही है**](ios-pentesting/index.html#logs)
### Backups
- [ ] [**Backups**](ios-pentesting/index.html#backups) का उपयोग **फाइल सिस्टम में सहेजी गई संवेदनशील जानकारी** तक पहुँचने के लिए किया जा सकता है (इस चेकलिस्ट के प्रारंभिक बिंदु की जांच करें)
- [ ] इसके अलावा, [**backups**](ios-pentesting/index.html#backups) का उपयोग **एप्लिकेशन की कुछ कॉन्फ़िगरेशन को संशोधित करने** के लिए किया जा सकता है, फिर **फोन पर** बैकअप **पुनर्स्थापित** करें, और जैसे ही **संशोधित कॉन्फ़िगरेशन** **लोड** होती है, कुछ (सुरक्षा) **कार्यात्मकता** को **बायपास** किया जा सकता है
### **Applications Memory**
- [ ] [**एप्लिकेशन की मेमोरी**](ios-pentesting/index.html#testing-memory-for-sensitive-data) के अंदर संवेदनशील जानकारी की जांच करें
### **Broken Cryptography**
- [ ] जांचें कि क्या आप [**क्रिप्टोग्राफी के लिए उपयोग किए जाने वाले पासवर्ड**](ios-pentesting/index.html#broken-cryptography) पा सकते हैं
- [ ] संवेदनशील डेटा भेजने/संग्रहित करने के लिए [**पुराने/कमजोर एल्गोरिदम**](ios-pentesting/index.html#broken-cryptography) के उपयोग की जांच करें
- [ ] [**क्रिप्टोग्राफी फ़ंक्शंस को हुक और मॉनिटर करें**](ios-pentesting/index.html#broken-cryptography)
### **Local Authentication**
- [ ] यदि एप्लिकेशन में [**स्थानीय प्रमाणीकरण**](ios-pentesting/index.html#local-authentication) का उपयोग किया जाता है, तो आपको जांचना चाहिए कि प्रमाणीकरण कैसे काम कर रहा है।
- [ ] यदि यह [**स्थानीय प्रमाणीकरण ढांचे**](ios-pentesting/index.html#local-authentication-framework) का उपयोग कर रहा है तो इसे आसानी से बायपास किया जा सकता है
- [ ] यदि यह [**ऐसी फ़ंक्शन का उपयोग कर रहा है जिसे गतिशील रूप से बायपास किया जा सकता है**](ios-pentesting/index.html#local-authentication-using-keychain) तो आप एक कस्टम फ्रिडा स्क्रिप्ट बना सकते हैं
### Sensitive Functionality Exposure Through IPC
- [**Custom URI Handlers / Deeplinks / Custom Schemes**](ios-pentesting/index.html#custom-uri-handlers-deeplinks-custom-schemes)
- [ ] जांचें कि क्या एप्लिकेशन **किसी प्रोटोकॉल/स्कीम को पंजीकृत कर रहा है**
- [ ] जांचें कि क्या एप्लिकेशन **किसी प्रोटोकॉल/स्कीम का उपयोग करने के लिए पंजीकृत है**
- [ ] जांचें कि क्या एप्लिकेशन **किसी प्रकार की संवेदनशील जानकारी प्राप्त करने की अपेक्षा करता है** कस्टम स्कीम से जिसे **दूसरे एप्लिकेशन द्वारा इंटरसेप्ट** किया जा सकता है जो समान स्कीम को पंजीकृत कर रहा है
- [ ] जांचें कि क्या एप्लिकेशन **कस्टम स्कीम के माध्यम से उपयोगकर्ता इनपुट की जांच और स्वच्छता नहीं कर रहा है** और कुछ **कमजोरी का शोषण किया जा सकता है**
- [ ] जांचें कि क्या एप्लिकेशन **किसी संवेदनशील क्रिया को उजागर करता है** जिसे कस्टम स्कीम के माध्यम से कहीं से भी कॉल किया जा सकता है
- [**Universal Links**](ios-pentesting/index.html#universal-links)
- [ ] जांचें कि क्या एप्लिकेशन **किसी यूनिवर्सल प्रोटोकॉल/स्कीम को पंजीकृत कर रहा है**
- [ ] `apple-app-site-association` फ़ाइल की जांच करें
- [ ] जांचें कि क्या एप्लिकेशन **कस्टम स्कीम के माध्यम से उपयोगकर्ता इनपुट की जांच और स्वच्छता नहीं कर रहा है** और कुछ **कमजोरी का शोषण किया जा सकता है**
- [ ] जांचें कि क्या एप्लिकेशन **किसी संवेदनशील क्रिया को उजागर करता है** जिसे कस्टम स्कीम के माध्यम से कहीं से भी कॉल किया जा सकता है
- [**UIActivity Sharing**](ios-pentesting/ios-uiactivity-sharing.md)
- [ ] जांचें कि क्या एप्लिकेशन UIActivities प्राप्त कर सकता है और क्या इसे विशेष रूप से तैयार की गई गतिविधि के साथ किसी कमजोरी का शोषण करना संभव है
- [**UIPasteboard**](ios-pentesting/ios-uipasteboard.md)
- [ ] जांचें कि क्या एप्लिकेशन **सामान्य पेस्टबोर्ड में कुछ कॉपी कर रहा है**
- [ ] जांचें कि क्या एप्लिकेशन **सामान्य पेस्टबोर्ड से किसी चीज़ के लिए डेटा का उपयोग कर रहा है**
- [ ] देखें कि क्या कोई **संवेदनशील डेटा कॉपी किया गया है** पेस्टबोर्ड की निगरानी करें
- [**App Extensions**](ios-pentesting/ios-app-extensions.md)
- [ ] क्या एप्लिकेशन **कोई एक्सटेंशन का उपयोग कर रहा है**?
- [**WebViews**](ios-pentesting/ios-webviews.md)
- [ ] जांचें कि किस प्रकार के वेबव्यू का उपयोग किया जा रहा है
- [ ] **`javaScriptEnabled`**, **`JavaScriptCanOpenWindowsAutomatically`**, **`hasOnlySecureContent`** की स्थिति की जांच करें
- [ ] जांचें कि क्या वेबव्यू **फाइल प्रोटोकॉल के साथ स्थानीय फ़ाइलों तक पहुँच सकता है** **file://** **(**`allowFileAccessFromFileURLs`, `allowUniversalAccessFromFileURLs`)
- [ ] जांचें कि क्या जावास्क्रिप्ट **नेटीव** **मेथड्स** (`JSContext`, `postMessage`) तक पहुँच सकता है
### Network Communication
- [ ] [**संवाद के लिए MitM करें**](ios-pentesting/index.html#network-communication) और वेब कमजोरियों की खोज करें।
- [ ] जांचें कि क्या [**प्रमाणपत्र का होस्टनाम**](ios-pentesting/index.html#hostname-check) की जांच की जाती है
- [ ] [**प्रमाणपत्र पिनिंग**](ios-pentesting/index.html#certificate-pinning) की जांच/बायपास करें
### **Misc**
- [ ] [**स्वचालित पैचिंग/अपडेटिंग**](ios-pentesting/index.html#hot-patching-enforced-updateing) तंत्र की जांच करें
- [ ] [**दुष्ट तृतीय पक्ष पुस्तकालयों**](ios-pentesting/index.html#third-parties) की जांच करें
{{#include ../banners/hacktricks-training.md}}