Translated ['src/mobile-pentesting/ios-pentesting/ios-pentesting-without

This commit is contained in:
Translator 2025-07-11 06:08:01 +00:00
parent e24c46224b
commit aaa0b0f8ef

View File

@ -4,9 +4,9 @@
## मुख्य विचार
ऐप्लिकेशन जो **entitlement `get_task_allow`** के साथ साइन किए गए हैं, तीसरे पक्ष के ऐप्लिकेशनों को **`task_for_pid()`** नामक एक फ़ंक्शन को प्रारंभिक ऐप्लिकेशन के प्रक्रिया आईडी के साथ तर्क के रूप में चलाने की अनुमति देते हैं ताकि उस पर कार्य पोर्ट प्राप्त किया जा सके (इसे नियंत्रित करने और इसकी मेमोरी तक पहुचने में सक्षम होना)।
**entitlement `get_task_allow`** के साथ साइन की गई एप्लिकेशन तीसरे पक्ष की एप्लिकेशनों को **`task_for_pid()`** नामक एक फ़ंक्शन को प्रारंभिक एप्लिकेशन के प्रक्रिया ID के रूप में तर्क के साथ चलाने की अनुमति देती हैं ताकि उस पर कार्य पोर्ट प्राप्त किया जा सके (इसे नियंत्रित करने और इसकी मेमोरी तक पहुचने में सक्षम होना)।
हालांकि, यह केवल IPA को खींचने, इसे entitlement के साथ फिर से साइन करने और इसे अपने डिवाइस पर फ्लैश करने जितना आसान नहीं है। इसका कारण FairPlay सुरक्षा है। जब ऐप का सिग्नेचर बदलता है, तो DRM (Digital Rights Management) कुंजी **अमान्य हो जाती है और ऐप काम नहीं करेगा**
हालांकि, यह केवल IPA को खींचने, इसे entitlement के साथ फिर से साइन करने और इसे अपने डिवाइस पर फ्लैश करने जितना आसान नहीं है। इसका कारण FairPlay सुरक्षा है। जब ऐप का हस्ताक्षर बदलता है, तो DRM (Digital Rights Management) कुंजी **अमान्य हो जाती है और ऐप काम नहीं करेगा**
एक पुराने जेलब्रोकन डिवाइस के साथ, IPA को स्थापित करना संभव है, **इसे अपने पसंदीदा टूल का उपयोग करके डिक्रिप्ट करना** (जैसे Iridium या frida-ios-dump), और इसे डिवाइस से वापस खींचना। हालांकि, यदि संभव हो, तो डिक्रिप्टेड IPA के लिए क्लाइंट से ही पूछना बेहतर है।
@ -14,20 +14,20 @@
### इसे Apple से प्राप्त करें
1. iPhone में pentest करने के लिए ऐप इंस्टॉल करें
2. अपने macos में [Apple Configurator](https://apps.apple.com/au/app/apple-configurator/id1037126344?mt=12) इंस्टॉल और लॉन्च करें
1. iPhone में pentest करने के लिए ऐप स्थापित करें
2. अपने macos में [Apple Configurator](https://apps.apple.com/au/app/apple-configurator/id1037126344?mt=12) स्थापित और लॉन्च करें
3. अपने Mac पर `Terminal` खोलें, और `/Users/[username]/Library/Group\\ Containers/K36BKF7T3D.group.com.apple.configurator/Library/Caches/Assets/TemporaryItems/MobileApps` में cd करें। IPA बाद में इस फ़ोल्डर में दिखाई देगा।
4. आपको अपना iOS डिवाइस दिखाई देना चाहिए। उस पर डबल-क्लिक करें, और फिर शीर्ष मेनू बार से Add + → Apps पर क्लिक करें।
5. Add पर क्लिक करने के बाद, Configurator Apple से IPA डाउनलोड करेगा, और इसे आपके डिवाइस पर पुश करने का प्रयास करेगा। यदि आपने पहले मेरी सिफारिश का पालन किया और IPA पहले से ही इंस्टॉल किया है, तो ऐप को फिर से इंस्टॉल करने के लिए एक प्रॉम्प्ट दिखाई देगा।
5. Add पर क्लिक करने के बाद, Configurator Apple से IPA डाउनलोड करेगा, और इसे आपके डिवाइस पर पुश करने का प्रयास करेगा। यदि आपने पहले मेरी सिफारिश का पालन किया और IPA पहले से ही स्थापित किया है, तो एक प्रॉम्प्ट दिखाई देगा जो आपको ऐप को फिर से स्थापित करने के लिए कहेगा।
6. IPA को `/Users/[username]/Library/Group\\ Containers/K36BKF7T3D.group.com.apple.configurator/Library/Caches/Assets/TemporaryItems/MobileApps` के अंदर डाउनलोड किया जाना चाहिए, जहाँ से आप इसे प्राप्त कर सकते हैं।
इस प्रक्रिया के बारे में अधिक विस्तृत जानकारी के लिए [https://dvuln.com/blog/modern-ios-pentesting-no-jailbreak-needed](https://dvuln.com/blog/modern-ios-pentesting-no-jailbreak-needed) देखें।
### ऐप को डिक्रिप्ट करना
IPA को डिक्रिप्ट करने के लिए हम इसे इंस्टॉल करने जा रहे हैं। हालाँकि, यदि आपके पास एक पुराना जेलब्रोकन iPhone है, तो संभावित रूप से इसका संस्करण ऐप द्वारा समर्थित नहीं होगा क्योंकि आमतौर पर ऐप्स केवल नवीनतम संस्करणों का समर्थन करते हैं।
IPA को डिक्रिप्ट करने के लिए हम इसे स्थापित करने जा रहे हैं। हालाँकि, यदि आपके पास एक पुराना जेलब्रोकन iPhone है, तो संभावित रूप से इसका संस्करण एप्लिकेशन द्वारा समर्थित नहीं होगा क्योंकि आमतौर पर ऐप केवल नवीनतम संस्करणों का समर्थन करते हैं।
तो, इसे इंस्टॉल करने के लिए, बस IPA को अनज़िप करें:
इसलिए, इसे स्थापित करने के लिए, बस IPA को अनज़िप करें:
```bash
unzip redacted.ipa -d unzipped
```
@ -38,7 +38,7 @@ IPA को फिर से ज़िप करें:
cd unzipped
zip -r ../no-min-version.ipa *
```
फिर, उदाहरण के लिए IPA स्थापित करें:
फिर, IPA को उदाहरण के लिए इस तरह इंस्टॉल करें:
```bash
ideviceinstaller -i no-min-version.ipa -w
```
@ -48,24 +48,70 @@ ideviceinstaller -i no-min-version.ipa -w
### पैच अधिकार और फिर से साइन करें
`get-task-allow` अधिकार के साथ एप्लिकेशन को फिर से साइन करने के लिए कई उपकरण उपलब्ध हैं जैसे `app-signer`, `codesign`, और `iResign``app-signer` का एक बहुत उपयोगकर्ता-अनुकूल इंटरफ़ेस है जो एक IPA फ़ाइल को फिर से साइन करने की अनुमति देता है, जिसमें फिर से साइन करने के लिए IPA, **`get-taks-allow`** डालने और उपयोग करने के लिए प्रमाणपत्र और प्रोविजनिंग प्रोफ़ाइल को इंगित करना शामिल है।
`get-task-allow` अधिकार के साथ एप्लिकेशन को फिर से साइन करने के लिए कई उपकरण उपलब्ध हैं जैसे `app-signer`, `codesign`, और `iResign``app-signer` का एक बहुत उपयोगकर्ता-अनुकूल इंटरफ़ेस है जो एक IPA फ़ाइल को फिर से साइन करने की अनुमति देता है, जिसमें फिर से साइन करने के लिए IPA को इंगित करना, **इसे `get-taks-allow` में डालना** और उपयोग करने के लिए प्रमाणपत्र और प्रोविजनिंग प्रोफ़ाइल शामिल है।
प्रमाणपत्र और साइनिंग प्रोफाइल के संबंध में, Apple सभी खातों के लिए Xcode के माध्यम से **मुफ्त डेवलपर साइनिंग प्रोफाइल** प्रदान करता है। बस एक ऐप बनाएं और एक कॉन्फ़िगर करें। फिर, `Settings``Privacy & Security` पर जाकर **iPhone को डेवलपर ऐप्स पर भरोसा करने के लिए कॉन्फ़िगर करें** और `Developer Mode` पर क्लिक करें।
प्रमाणपत्र और साइनिंग प्रोफाइल के संबंध में, Apple सभी खातों के लिए Xcode के माध्यम से **मुफ्त डेवलपर साइनिंग प्रोफाइल** प्रदान करता है। बस एक ऐप बनाएं और एक कॉन्फ़िगर करें। फिर, `Settings``Privacy & Security` पर जाकर **iPhone को डेवलपर ऐप्स पर भरोसा करने के लिए कॉन्फ़िगर करें**, और `Developer Mode` पर क्लिक करें।
फिर से साइन की गई IPA के साथ, इसे डिवाइस में स्थापित करने का समय है ताकि इसे पेंटेस्ट किया जा सके:
```bash
ideviceinstaller -i resigned.ipa -w
```
### Hook
---
आप आसानी से अपने ऐप को सामान्य उपकरणों जैसे frida और objection का उपयोग करके हुक कर सकते हैं:
### डेवलपर मोड सक्षम करें (iOS 16+)
iOS 16 से Apple ने **डेवलपर मोड** पेश किया: कोई भी बाइनरी जो `get_task_allow` ले जाती है *या* एक विकास प्रमाणपत्र के साथ हस्ताक्षरित है, वह तब तक लॉन्च करने से मना कर देगी जब तक कि डिवाइस पर डेवलपर मोड सक्षम नहीं किया गया है। आप Frida/LLDB को भी संलग्न नहीं कर पाएंगे जब तक कि यह ध्वज चालू न हो।
1. फोन पर **कोई भी** डेवलपर-हस्ताक्षरित IPA स्थापित करें या पुश करें।
2. **सेटिंग्स → गोपनीयता और सुरक्षा → डेवलपर मोड** पर जाएं और इसे चालू करें।
3. डिवाइस पुनः प्रारंभ होगा; पासकोड दर्ज करने के बाद आपसे **डेवलपर मोड चालू करें** के लिए कहा जाएगा।
डेवलपर मोड सक्रिय रहता है जब तक आप इसे बंद नहीं करते या फोन को मिटाते नहीं हैं, इसलिए यह कदम प्रति डिवाइस केवल एक बार करना होता है। [Apple दस्तावेज़](https://developer.apple.com/documentation/xcode/enabling-developer-mode-on-a-device) सुरक्षा निहितार्थों को स्पष्ट करता है।
### आधुनिक साइडलोडिंग विकल्प
अब कई परिपक्व तरीके हैं जिनसे बिना जेलब्रेक के साइडलोड और फिर से हस्ताक्षरित IPAs को अद्यतित रखा जा सकता है:
| उपकरण | आवश्यकताएँ | ताकत | सीमाएँ |
|------|--------------|-----------|-------------|
| **AltStore 2 / SideStore** | macOS/Windows/Linux साथी जो हर 7 दिन में IPA को मुफ्त विकास प्रोफ़ाइल के साथ फिर से हस्ताक्षरित करता है | Wi-Fi पर स्वचालित पुनः लोड, iOS 17 तक काम करता है | एक ही नेटवर्क पर कंप्यूटर की आवश्यकता, Apple द्वारा 3-ऐप सीमा लागू |
| **TrollStore 1/2** | CoreTrust बग के प्रति संवेदनशील iOS 14 15.4.1 पर डिवाइस | *स्थायी* हस्ताक्षर (7-दिन की सीमा नहीं); एक बार स्थापित होने के बाद कंप्यूटर की आवश्यकता नहीं | iOS 15.5+ पर समर्थित नहीं (बग पैच किया गया) |
वर्तमान iOS संस्करणों पर नियमित पेंटेस्ट के लिए Alt/Side-Store आमतौर पर सबसे व्यावहारिक विकल्प होते हैं।
### हुकिंग / गतिशील इंस्ट्रुमेंटेशन
आप अपने ऐप को ठीक उसी तरह हुक कर सकते हैं जैसे एक जेलब्रोकन डिवाइस पर जब यह `get_task_allow` के साथ हस्ताक्षरित हो **और** डेवलपर मोड चालू हो:
```bash
objection -g [your app bundle ID] explore
# Spawn & attach with objection
objection -g "com.example.target" explore
# Or plain Frida
frida -U -f com.example.target -l my_script.js --no-pause
```
हाल के Frida रिलीज़ (>=16) स्वचालित रूप से पॉइंटर प्रमाणीकरण और अन्य iOS 17 निवारणों को संभालते हैं, इसलिए अधिकांश मौजूदा स्क्रिप्ट बिना किसी बदलाव के काम करती हैं।
### स्वचालित गतिशील विश्लेषण MobSF के साथ (कोई जेलब्रेक नहीं)
[MobSF](https://mobsf.github.io/Mobile-Security-Framework-MobSF/) एक वास्तविक डिवाइस पर एक डेवलपर-साइन किया हुआ IPA को उसी तकनीक (`get_task_allow`) का उपयोग करके इंस्ट्रूमेंट कर सकता है और एक वेब UI प्रदान करता है जिसमें फ़ाइल प्रणाली ब्राउज़र, ट्रैफ़िक कैप्चर और Frida कंसोल शामिल हैं【turn6view0†L2-L3】। सबसे तेज़ तरीका यह है कि MobSF को Docker में चलाएं और फिर अपने iPhone को USB के माध्यम से कनेक्ट करें:
```bash
docker pull opensecurity/mobile-security-framework-mobsf:latest
docker run -p 8000:8000 --privileged \
-v /var/run/usbmuxd:/var/run/usbmuxd \
opensecurity/mobile-security-framework-mobsf:latest
# Browse to http://127.0.0.1:8000 and upload your resigned IPA
```
MobSF स्वचालित रूप से बाइनरी को तैनात करेगा, ऐप सैंडबॉक्स के अंदर एक Frida सर्वर सक्षम करेगा और एक इंटरैक्टिव रिपोर्ट उत्पन्न करेगा।
### iOS 17 & लॉकडाउन मोड चेतावनियाँ
* **लॉकडाउन मोड** (सेटिंग्स → गोपनीयता और सुरक्षा) अस्वीकृत या बाहरी रूप से हस्ताक्षरित गतिशील पुस्तकालयों को लोड करने से गतिशील लिंक को रोकता है। उन उपकरणों का परीक्षण करते समय जिनमें यह मोड सक्षम हो सकता है, सुनिश्चित करें कि यह **अक्षम** है या आपकी Frida/objection सत्र तुरंत समाप्त हो जाएंगे।
* पॉइंटर ऑथेंटिकेशन (PAC) A12+ उपकरणों पर प्रणाली-व्यापी लागू किया गया है। Frida ≥16 पारदर्शी रूप से PAC स्ट्रिपिंग को संभालता है — बस सुनिश्चित करें कि *frida-server* और Python/CLI टूलचेन नवीनतम हैं जब एक नया प्रमुख iOS संस्करण जारी होता है।
## संदर्भ
- [https://dvuln.com/blog/modern-ios-pentesting-no-jailbreak-needed](https://dvuln.com/blog/modern-ios-pentesting-no-jailbreak-needed)
- Apple डेवलपर दस्तावेज़ एक उपकरण पर डेवलपर मोड सक्षम करना: <https://developer.apple.com/documentation/xcode/enabling-developer-mode-on-a-device>
- मोबाइल सुरक्षा ढांचा (MobSF): <https://mobsf.github.io/Mobile-Security-Framework-MobSF/>
{{#include ../../banners/hacktricks-training.md}}