hacktricks/mobile-pentesting/ios-pentesting/ios-hooking-with-objection.md

211 lines
11 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 swag**](https://peass.creator-spring.com) प्राप्त करें
* हमारे विशेष [**NFTs**](https://opensea.io/collection/the-peass-family) संग्रह [**The PEASS Family**](https://opensea.io/collection/the-peass-family) खोजें
* **शामिल हों** 💬 [**Discord समूह**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) या हमें **Twitter** पर **फॉलो** करें 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **अपने हैकिंग ट्रिक्स साझा करें** द्वारा PRs सबमिट करके [**HackTricks**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos में।
</details>
इस खंड के लिए उपकरण [**Objection**](https://github.com/sensepost/objection) का उपयोग किया जाएगा।\
किसी चीज को निष्पादित करने के लिए एक आपत्ति का सत्र प्रारंभ करें:
```bash
objection -d --gadget "iGoat-Swift" explore
objection -d --gadget "OWASP.iGoat-Swift" explore
```
```
आप फोन के चल रहे प्रक्रियाओं की जांच के लिए `frida-ps -Uia` भी चला सकते हैं।
# ऐप की मूल सूचीकरण
## स्थानीय ऐप पथ
* `env`: डिवाइस के अंदर ऐप्लिकेशन स्टोर किए गए स्थानों को खोजें
```bash
env
नाम पथ
----------------- -----------------------------------------------------------------------------------------------
BundlePath /private/var/containers/Bundle/Application/179A6E8B-E7A8-476E-BBE3-B9300F546068/iGoat-Swift.app
CachesDirectory /var/mobile/Containers/Data/Application/A079DF84-726C-4AEA-A194-805B97B3684A/Library/Caches
DocumentDirectory /var/mobile/Containers/Data/Application/A079DF84-726C-4AEA-A194-805B97B3684A/Documents
LibraryDirectory /var/mobile/Containers/Data/Application/A079DF84-726C-4AEA-A194-805B97B3684A/Library
```
## बंडल, फ्रेमवर्क और पुस्तकालयों की सूची
* `ios bundles list_bundles`: ऐप्लिकेशन के बंडल की सूची देखें
```bash
ios bundles list_bundles
Executable Bundle Version Path
------------ -------------------- --------- -------------------------------------------
iGoat-Swift OWASP.iGoat-Swift 1.0 ...8-476E-BBE3-B9300F546068/iGoat-Swift.app
AGXMetalA9 com.apple.AGXMetalA9 172.18.4 ...tem/Library/Extensions/AGXMetalA9.bundle
```
* `ios bundles list_frameworks`: ऐप्लिकेशन द्वारा उपयोग किए गए बाह्य फ्रेमवर्क की सूची देखें
```bash
ios bundles list_frameworks
Executable Bundle Version Path
------------------------------ -------------------------------------------- ---------- -------------------------------------------
ReactCommon org.cocoapods.ReactCommon 0.61.5 ...tle.app/Frameworks/ReactCommon.framework
...
```
* `memory list modules`: मेमोरी में लोड किए गए मॉड्यूल की सूची देखें
```bash
memory list modules
Name Base Size Path
----------------------------------- ----------- ------------------- ------------------------------------------------------------------------------
iGoat-Swift 0x104ffc000 2326528 (2.2 MiB) /private/var/containers/Bundle/Application/179A6E8B-E7A8-476E-BBE3-B9300F54...
SubstrateBootstrap.dylib 0x105354000 16384 (16.0 KiB) /usr/lib/substrate/SubstrateBootstrap.dylib
...
```
* `memory list exports <module_name>`: लोड किए गए मॉड्यूल के निर्यात देखें
```bash
memory list exports iGoat-Swift
Type Name Address
-------- -------------------------------------------------------------------------------------------------------------------------------------- -----------
variable _mh_execute_header 0x104ffc000
function _mdictof 0x10516cb88
...
```
## ऐप की कक्षाओं की सूची
* `ios hooking list classes`: ऐप की कक्षाओं की सूची देखें
```bash
ios hooking list classes
AAAbsintheContext
AAAbsintheSigner
...
```
* `ios hooking search classes <search_term>`: एक ऐसी कक्षा की खोजें जो एक स्ट्रिंग को शामिल करती है। आप **मुख्य ऐप पैकेज** नाम से संबंधित कुछ अद्वितीय शब्द खोज सकते हैं ताकि ऐप की मुख्य कक्षाएं मिलें।
```bash
ios hooking search classes iGoat
iGoat_Swift.CoreDataHelper
iGoat_Swift.RCreditInfo
...
```
## कक्षा विधियों की सूची
* `ios hooking list class_methods`: एक विशिष्ट कक्षा की विधियों की सूची देखें
```bash
ios hooking list class_methods iGoat_Swift.RCreditInfo
- cvv
- setCvv:
- setName:
...
```
* `ios hooking search methods <search_term>`: एक विधि की खोज करें जो एक स्ट्रिंग को शामिल करती है
```bash
ios hooking search methods cvv
...
```
# मूल फिशिंग
अब जब आपने ऐप्लिकेशन द्वारा उपयोग की जाने वाली कक्षाओं और मॉड्यूलों की सूची बना ली है, तो आपने कुछ **रोचक कक्षा और विधि नाम** पाए होंगे।
## एक कक्षा की सभी विधियों को हुक करें
* `ios hooking watch class <class_name>`: एक कक्षा की सभी विधियों को हुक करें, प्रारंभिक पैरामीटर और रिटर्न को डंप करें
```bash
ios hooking watch class iGoat_Swift.PlistStorageExerciseViewController
```
## एक एकल विधि को हुक करें
* `ios hooking watch method "-[<class_name> <method_name>]" --dump-args --dump-return --dump-backtrace`: एक कक्षा की विशिष्ट विधि को हुक करें, प्रारंभिक पैरामीटर, बैकट्रेस और वापसी को हर बार डंप करें जब यह कॉल किया जाता है
```bash
ios hooking watch method "-[iGoat_Swift.BinaryCookiesExerciseVC verifyItemPressed]" --dump-args --dump-backtrace --dump-return
```
## बूलियन रिटर्न बदलें
* `ios hooking set return_value "-[<class_name> <method_name>]" false`: यह चयनित विधि को निर्दिष्ट बूलियन वापस करने के लिए करेगा
```bash
ios hooking set return_value "-[iGoat_Swift.BinaryCookiesExerciseVC verifyItemPressed]" false
```
## हुकिंग टेम्पलेट उत्पन्न करें
* `ios hooking generate simple <class_name>`:
```bash
ios hooking generate simple iGoat_Swift.RCreditInfo
var target = ObjC.classes.iGoat_Swift.RCreditInfo;
Interceptor.attach(target['+ sharedSchema'].implementation, {
onEnter: function (args) {
console.log('Entering + sharedSchema!');
},
onLeave: function (retval) {
console.log('Leaving + sharedSchema');
},
});
Interceptor.attach(target['+ className'].implementation, {
onEnter: function (args) {
console.log('Entering + className!');
},
onLeave: function (retval) {
console.log('Leaving + className');
},
});
Interceptor.attach(target['- cvv'].implementation, {
onEnter: function (args) {
console.log('Entering - cvv!');
},
onLeave: function (retval) {
console.log('Leaving - cvv');
},
});
Interceptor.attach(target['- setCvv:'].implementation, {
onEnter: function (args) {
console.log('Entering - setCvv:!');
},
onLeave: function (retval) {
console.log('Leaving - setCvv:');
},
});
```
<details>
<summary><strong>htARTE (HackTricks AWS Red Team Expert)</strong> के साथ जीरो से हीरो तक AWS हैकिंग सीखें</summary>
HackTricks का समर्थन करने के अन्य तरीके:
* यदि आप चाहते हैं कि **HackTricks में अपनी कंपनी का विज्ञापन दिखाया जाए** या **HackTricks को PDF में डाउनलोड** करना चाहते हैं तो [**सदस्यता योजनाएं**](https://github.com/sponsors/carlospolop) देखें!
* [**आधिकारिक PEASS & HackTricks स्वैग**](https://peass.creator-spring.com) प्राप्त करें
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) की खोज करें, हमारे विशेष [**NFTs**](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 रेपो में **PR जमा करके** अपने हैकिंग ट्रिक्स साझा करें।
</details>
```