hacktricks/mobile-pentesting/ios-pentesting/basic-ios-testing-operations.md

194 lines
22 KiB
Markdown
Raw Normal View History

# iOS मूल टेस्टिंग ऑपरेशन्स
2022-04-28 16:01:33 +00:00
<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>
2022-04-28 16:01:33 +00:00
HackTricks का समर्थन करने के अन्य तरीके:
2022-04-28 16:01:33 +00:00
* यदि आप अपनी **कंपनी का विज्ञापन 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/carlospolopm)** पर फॉलो** करें।
* **हैकिंग ट्रिक्स साझा करें** द्वारा **PRs सबमिट** करके [**HackTricks**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos में।
</details>
## **iOS डिवाइस पहचान और एक्सेस का सारांश**
### **iOS डिवाइस की UDID की पहचान**
iOS डिवाइस की पहचान के लिए एक 40-अंकीय अनुक्रम को UDID के रूप में उपयोग किया जाता है। macOS Catalina या नए वर्शन पर, यह **Finder ऐप** में पाया जा सकता है, क्योंकि iTunes अब और मौजूद नहीं है। डिवाइस, जब USB के माध्यम से कनेक्ट किया जाता है और फाइंडर में चयनित किया जाता है, तो जब उसके नाम के नीचे दिए गए विवरण पर क्लिक किया जाता है, तो अपना UDID दिखाता है।
Catalina से पहले macOS के संस्करणों के लिए, iTunes UDID की खोज करने में मदद करता है। विस्तृत निर्देश यहाँ पाए जा सकते हैं [यहाँ](http://www.iclarified.com/52179/how-to-find-your-iphones-udid)।
कमांड-लाइन टूल्स UDID प्राप्त करने के लिए वैकल्पिक विधियाँ प्रदान करते हैं:
* **I/O रजिस्ट्री एक्सप्लोरर टूल `ioreg` का उपयोग करना:**
2023-11-06 08:38:02 +00:00
```bash
$ ioreg -p IOUSB -l | grep "USB Serial"
```
* **मैकओएस (और लिनक्स) के लिए `ideviceinstaller` का उपयोग:**
2023-11-06 08:38:02 +00:00
```bash
$ brew install ideviceinstaller
$ idevice_id -l
```
* **`system_profiler` का उपयोग करना:**
2023-11-06 08:38:02 +00:00
```bash
$ system_profiler SPUSBDataType | sed -n -e '/iPad/,/Serial/p;/iPhone/,/Serial/p;/iPod/,/Serial/p' | grep "Serial Number:"
```
* **उपकरणों की सूची बनाने के लिए `उपकरण` का उपयोग करना:**
2023-11-06 08:38:02 +00:00
```bash
$ instruments -s devices
```
### **डिवाइस शैल तक पहुंचना**
**SSH एक्सेस** को **OpenSSH पैकेज** को इंस्टॉल करके जेलब्रेक के बाद सक्षम किया जाता है, जिससे `ssh root@<device_ip_address>` के माध्यम से कनेक्शन स्थापित किया जा सकता है। उपयोगकर्ताओं `root` और `mobile` के लिए डिफ़ॉल्ट पासवर्ड (`alpine`) को सुरक्षित बनाना महत्वपूर्ण है।
**USB के माध्यम से SSH** की आवश्यकता होती है जब वाई-फाई की अनुपस्थिति में, `iproxy` का उपयोग करके डिवाइस पोर्ट को मैप करने के लिए। यह सेटअप USB के माध्यम से SSH एक्सेस सक्षम करता है जिसे निम्नलिखित को चलाकर प्रारंभ किया जा सकता है:
```bash
$ iproxy 2222 22
$ ssh -p 2222 root@localhost
```
**ऑन-डिवाइस शैल एप्लिकेशन**, जैसे NewTerm 2, सीधे डिवाइस इंटरेक्शन को सुविधाजनक बनाते हैं, विशेष रूप से समस्या निवारण के लिए उपयोगी। **रिवर्स SSH शैल** भी होस्ट कंप्यूटर से रिमोट एक्सेस के लिए स्थापित किए जा सकते हैं।
### **भूले गए पासवर्ड रीसेट करना**
भूले गए पासवर्ड को डिफ़ॉल्ट (`alpine`) पर रीसेट करने के लिए, `/private/etc/master.passwd` फ़ाइल को संपादित करना आवश्यक है। इसमें मौजूदा हैश को `root` और `mobile` उपयोगकर्ता एंट्री के बगल में `alpine` के लिए हैश के साथ पुनः स्थानांतरण करना शामिल है।
## **डेटा स्थानांतरण तकनीकें**
### **एप्लिकेशन डेटा फ़ाइलों को स्थानांतरित करना**
**SSH और SCP के माध्यम से संग्रहण और पुनर्प्राप्ति:** एप्लिकेशन के डेटा निर्देशिका को `tar` का उपयोग करके संग्रहीत करना और फिर इसे `scp` का उपयोग करके स्थानांतरित करना सरल है। नीचे दिया गया कमांड डेटा निर्देशिका को .tgz फ़ाइल में संग्रहित करता है, जिसे फिर डिवाइस से खींचा जाता है:
```bash
tar czvf /tmp/data.tgz /private/var/mobile/Containers/Data/Application/8C8E7EB0-BC9B-435B-8EF8-8F5560EB0693
exit
scp -P 2222 root@localhost:/tmp/data.tgz .
```
### **ग्राफिकल उपयोगकर्ता इंटरफेस उपकरण**
**iFunbox और iExplorer का उपयोग:** ये GUI उपकरण iOS डिवाइस पर फ़ाइलों को प्रबंधित करने के लिए उपयोगी हैं। हालांकि, iOS 8.4 के साथ शुरू होकर, Apple ने इन उपकरणों का पहुंच को एप्लिकेशन सैंडबॉक्स तक प्रतिबंधित कर दिया है जब तक डिवाइस जेलब्रोकन न हो।
2021-05-15 12:48:28 +00:00
### **फ़ाइल प्रबंधन के लिए Objection का उपयोग**
**Objection के साथ इंटरैक्टिव शैल:** Objection को लॉन्च करने से एक ऐप के Bundle निर्देशिका तक पहुंच मिलती है। यहाँ से, आप ऐप के दस्तावेज़ निर्देशिका तक नेविगेट कर सकते हैं और फ़ाइलों को प्रबंधित कर सकते हैं, जिसमें iOS डिवाइस से फ़ाइलें डाउनलोड और अपलोड करना शामिल है।
```bash
objection --gadget com.apple.mobilesafari explorer
cd /var/mobile/Containers/Data/Application/72C7AAFB-1D75-4FBA-9D83-D8B4A2D44133/Documents
file download <filename>
```
## **ऐप्स प्राप्त करना और निकालना**
### **IPA फ़ाइल प्राप्त करना**
**ओवर-द-एयर (OTA) वितरण लिंक:** OTA के माध्यम से टेस्टिंग के लिए वितरित ऐप्स को ITMS सेवाओं एसेट डाउनलोडर टूल का उपयोग करके डाउनलोड किया जा सकता है, जो npm के माध्यम से स्थापित किया गया है और उपयोग किया जाता है ताकि IPA फ़ाइल को स्थानीय रूप से सहेजा जा सके।
```bash
npm install -g itms-services
itms-services -u "itms-services://?action=download-manifest&url=https://s3-ap-southeast-1.amazonaws.com/test-uat/manifest.plist" -o - > out.ipa
```
### **ऐप बाइनरी निकालना**
1. **आईपीए से:** आईपीए को अनज़िप करें ताकि डिक्रिप्ट किया गया ऐप बाइनरी तक पहुंचा जा सके।
2. **जेलब्रोकन डिवाइस से:** ऐप को इंस्टॉल करें और मेमोरी से डिक्रिप्ट किया गया बाइनरी निकालें।
### **डिक्रिप्शन प्रक्रिया**
**मैनुअल डिक्रिप्शन अवलोकन:** iOS ऐप बाइनरी को Apple द्वारा FairPlay का उपयोग करके एन्क्रिप्ट किया जाता है। रिवर्स-इंजीनियरिंग करने के लिए, किसी को मेमोरी से डिक्रिप्ट किया गया बाइनरी डंप करना होगा। डिक्रिप्शन प्रक्रिया में PIE फ्लैग की जांच करना, मेमोरी फ्लैग को समायोजित करना, एन्क्रिप्टेड सेक्शन की पहचान करना, और फिर इस सेक्शन को उसके डिक्रिप्टेड रूप में डंप और पुनः स्थानांतरित करना शामिल है।
**PIE फ्लैग की जांच और संशोधन:**
```bash
otool -Vh Original_App
python change_macho_flags.py --no-pie Original_App
otool -Vh Hello_World
```
**एन्क्रिप्टेड सेक्शन की पहचान और मेमोरी डंप करना:**
`otool` का उपयोग करके एन्क्रिप्टेड सेक्शन की शुरुआत और समाप्त पते तय करें और gdb का उपयोग करके जेलब्रोकन डिवाइस से मेमोरी डंप करें।
```bash
otool -l Original_App | grep -A 4 LC_ENCRYPTION_INFO
dump memory dump.bin 0x8000 0x10a4000
```
**एन्क्रिप्टेड सेक्शन को अधिलेखित करना:**
मूल ऐप बाइनरी में एन्क्रिप्टेड सेक्शन को डिक्रिप्ट किए गए डंप से बदलें।
```bash
dd bs=1 seek=<starting_address> conv=notrunc if=dump.bin of=Original_App
```
**डिक्रिप्शन को समाप्त करना:** उपकरणों जैसे **MachOView** का उपयोग करके बाइनरी की मेटाडेटा को संशोधित करें ताकि एन्क्रिप्शन की अनुपस्थिति का संकेत मिले, `cryptid` को 0 सेट करें।
2021-07-19 10:18:19 +00:00
### **डिक्रिप्शन (स्वचालित रूप से)**
#### **frida-ios-dump**
[**frida-ios-dump**](https://github.com/AloneMonkey/frida-ios-dump) उपकरण का उपयोग **iOS उपकरणों से एप्लिकेशनों को स्वचालित रूप से डिक्रिप्ट और निकालने** के लिए किया जाता है। प्रारंभ में, किसी को iOS उपकरण से कनेक्ट करने के लिए `dump.py` को कॉन्फ़िगर करना होगा, जो **iproxy** के माध्यम से localhost पर पोर्ट 2222 के माध्यम से या सीधे उपकरण के IP पते और पोर्ट के माध्यम से किया जा सकता है।
उपकरण पर स्थापित एप्लिकेशनों की सूची निम्नलिखित कमांड के साथ दी जा सकती है:
```bash
$ python dump.py -l
```
एक विशिष्ट ऐप को डंप करने के लिए, जैसे कि Telegram, निम्नलिखित कमांड का उपयोग किया जाता है:
```bash
$ python3 dump.py -u "root" -p "<PASSWORD>" ph.telegra.Telegraph
```
यह कमांड ऐप डंप की शुरुआत करती है, जिससे मौजूदा निर्देशिका में `Telegram.ipa` फ़ाइल बनती है। यह प्रक्रिया जेलब्रोकन उपकरणों के लिए उपयुक्त है, क्योंकि असाइंड या फेक-साइंड ऐप्स को [**ios-deploy**](https://github.com/ios-control/ios-deploy) जैसे उपकरणों का उपयोग करके पुनः स्थापित किया जा सकता है।
2021-07-19 10:18:19 +00:00
#### **flexdecrypt**
[**flexdecrypt**](https://github.com/JohnCoates/flexdecrypt) टूल, और इसका रैपर [**flexdump**](https://gist.github.com/defparam/71d67ee738341559c35c684d659d40ac), इंस्टॉल किए गए ऐप्लिकेशन से IPA फ़ाइलों को निकालने की अनुमति देता है। उपकरण पर **flexdecrypt** के लिए स्थापना कमांड में `.deb` पैकेज को डाउनलोड और इंस्टॉल करना शामिल है। **flexdump** का उपयोग ऐप्स की सूची बनाने और डंप करने के लिए किया जा सकता है, जैसा कि निम्नलिखित कमांडों में दिखाया गया है:
2021-07-19 10:18:19 +00:00
```bash
apt install zip unzip
wget https://gist.githubusercontent.com/defparam/71d67ee738341559c35c684d659d40ac/raw/30c7612262f1faf7871ba8e32fbe29c0f3ef9e27/flexdump -P /usr/local/bin; chmod +x /usr/local/bin/flexdump
flexdump list
flexdump dump Twitter.app
2021-07-19 10:18:19 +00:00
```
#### **बैगबैक**
[**बैगबैक**](https://github.com/ChiChou/bagbak), एक और फ्रिडा-आधारित उपकरण है, जो ऐप डिक्रिप्शन के लिए जेलब्रोकेन डिवाइस की आवश्यकता है:
```bash
bagbak --raw Chrome
```
#### **r2flutch**
**r2flutch**, जो radare और frida दोनों का उपयोग करता है, ऐप डिक्रिप्शन और डम्पिंग के लिए सेवा प्रदान करता है। इसके बारे में अधिक जानकारी इसके [**GitHub पेज**](https://github.com/as0ler/r2flutch) पर उपलब्ध है।
### **ऐप्स को स्थापित करना**
**साइडलोडिंग** आधिकारिक ऐप स्टोर के बाहर ऐप्लिकेशन स्थापित करने के लिए है। इस प्रक्रिया को **installd डेमन** द्वारा संभाला जाता है और ऐप्स को एक Apple द्वारा जारी किए गए प्रमाणपत्र के साथ साइन करना आवश्यक है। जेलब्रोकन डिवाइसेस इसे **AppSync** के माध्यम से छलकर सकते हैं, जिससे नकली-साइन आईपीए पैकेज की स्थापना संभव होती है।
#### **साइडलोडिंग टूल्स**
- **Cydia Impactor**: iOS पर IPA फ़ाइलों को साइन और स्थापित करने के लिए एक उपकरण। मार्गदर्शिकाएँ और समस्या समाधान [yalujailbreak.net](https://yalujailbreak.net/how-to-use-cydia-impactor/) पर उपलब्ध हैं।
- **libimobiledevice**: iOS डिवाइसेस के साथ संचार के लिए लिनक्स और macOS के लिए एक पुस्तकालय। ऐप्स को USB के माध्यम से स्थापित करने के लिए ideviceinstaller के लिए स्थापना कमांड और उपयोग उदाहरण प्रदान किए गए हैं।
- **ipainstaller**: यह कमांड-लाइन उपकरण iOS डिवाइसेस पर सीधी ऐप स्थापना की अनुमति देता है।
- **ios-deploy**: macOS उपयोगकर्ताओं के लिए, ios-deploy कमांड लाइन से iOS ऐप्स को स्थापित करता है। IPA को अनज़िप करना और सीधी ऐप लॉन्च के लिए `-m` फ़्लैग का उपयोग प्रक्रिया का हिस्सा है।
- **Xcode**: **Window/Devices and Simulators** पर जाकर **Installed Apps** में ऐप जोड़कर ऐप्स को स्थापित करने के लिए Xcode का उपयोग करें।
#### **गैर-आईपैड डिवाइसेस पर ऐप्लिकेशन स्थापना की अनुमति देना**
आईपैड-विशिष्ट ऐप्लिकेशनों को आईफोन या आईपॉड टच डिवाइसेस पर स्थापित करने के लिए, **Info.plist** फ़ाइल में **UIDeviceFamily** मान को **1** में बदलना आवश्यक है। यह संशोधन, हालांकि, हस्ताक्षर मान्यता की जांच के कारण IPA फ़ाइल को फिर से साइन करने की आवश्यकता होती है।
**ध्यान दें**: यदि ऐप्लिकेशन पुराने आईफोन या आईपॉड टच का उपयोग करते हुए नए आईपैड मॉडल्स के लिए विशेष क्षमताओं की मांग करता है, तो यह विधि विफल हो सकती है।
## संदर्भ
* [https://mas.owasp.org/MASTG/iOS/0x06b-iOS-Security-Testing/](ttps://mas.owasp.org/MASTG/iOS/0x06b-iOS-Security-Testing/)
* [https://mas.owasp.org/MASTG/techniques/ios/MASTG-TECH-0052/](https://mas.owasp.org/MASTG/techniques/ios/MASTG-TECH-0052/)
* [https://mas.owasp.org/MASTG/techniques/ios/MASTG-TECH-0053/](https://mas.owasp.org/MASTG/techniques/ios/MASTG-TECH-0053/)
* [https://mas.owasp.org/MASTG/techniques/ios/MASTG-TECH-0054/](https://mas.owasp.org/MASTG/techniques/ios/MASTG-TECH-0054/)
* [https://mas.owasp.org/MASTG/techniques/ios/MASTG-TECH-0056/](https://mas.owasp.org/MASTG/techniques/ios/MASTG-TECH-0056/)
2022-04-28 16:01:33 +00:00
<details>
<summary><strong>Learn AWS hacking from zero to hero with</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
Other ways to support HackTricks:
2022-04-28 16:01:33 +00:00
* If you want to see your **company advertised in HackTricks** or **download HackTricks in PDF** Check the [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
* Get the [**official PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Discover [**The PEASS Family**](https://opensea.io/collection/the-peass-family), our collection of exclusive [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** me on **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)**.**
* **Share your hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
2022-04-28 16:01:33 +00:00
</details>