|
| 1 | +--- |
| 2 | +date: 2025-10-01 23:04:15 |
| 3 | +layout: post |
| 4 | +title: iOS All The Things - Part III |
| 5 | + |
| 6 | +description: |
| 7 | +image: /assets/img/ios-pentesting/Part-III/cover-test-III.jpeg |
| 8 | +optimized_image: /assets/img/ios-pentesting/Part-III/cover-test-III.jpeg |
| 9 | +category: blog |
| 10 | +tags: |
| 11 | + - iOS Pentesting |
| 12 | + - IOS Penetration Testing |
| 13 | + - frida |
| 14 | + - objection |
| 15 | + - iOS Reverse Engineering |
| 16 | + - Caches |
| 17 | + - logs |
| 18 | + - iOS Basics |
| 19 | +--- |
| 20 | + |
| 21 | +# Agenda of iOS Pentesting: |
| 22 | +1. [Intro](#intro) |
| 23 | +2. [Runtime Manipulation](#runtime-manipulation) |
| 24 | +3. [iOS Reverse Engineering](#ios-reverse-engineering) |
| 25 | +4. [Network Communication](#network-communication) |
| 26 | +5. [Cache & Logs](#cache--logs) |
| 27 | +6. [Conclusion](conclusion) |
| 28 | + |
| 29 | +## Intro |
| 30 | + |
| 31 | +Now, in Part 3, we put that knowledge to the test. This is where we transition from passive observation to active engagement, performing a real-world penetration test against an iOS application. |
| 32 | + |
| 33 | +Our journey will take us deep inside the application's runtime behavior, where we'll learn to manipulate it in real-time with powerful tools like Frida and Objection. We will then reverse engineer its binary to uncover hidden logic and vulnerabilities. We'll intercept and dissect its network communications, and finally, we'll scour its cached data and logs for exposed sensitive information. |
| 34 | + |
| 35 | +## Runtime Manipulation: Mastering Frida & Objection |
| 36 | + |
| 37 | +In iOS penetration testing, Runtime Manipulation is one of the most powerful techniques at your disposal. It allows you to interact with and modify a running application without needing its original source code. This is where Frida and Objection become essential tools in your arsenal. |
| 38 | + |
| 39 | +This requires a physical USB connection between your jailbroken iOS device and your Linux machine, which serves as the vital link for tools like Frida to control the target application. |
| 40 | + |
| 41 | +**Basic Workflow:** |
| 42 | + |
| 43 | +a. Start the target app on your jailbroken device. |
| 44 | + |
| 45 | +b. Inject Frida scripts to hook into interesting functions. |
| 46 | + |
| 47 | +c. OR Use Objection for quick security assessment and bypasses. |
| 48 | + |
| 49 | +d. Monitor and manipulate the app's behavior in real-time |
| 50 | + |
| 51 | +#### Frida |
| 52 | + |
| 53 | +It is a dynamic instrumentation toolkit. In simple terms, it lets you inject your own scripts into running applications. Think of it as giving you a "remote control" for any app. you can: |
| 54 | + |
| 55 | +* Change what the app does while it's running. |
| 56 | +* Bypass security checks (like pinning or root detection). |
| 57 | +* Monitor function calls and method arguments. |
| 58 | +* Modify return values of functions. |
| 59 | + |
| 60 | +Once you have a Frida script running inside an application, you can interact with the Objective-C runtime, which is the backbone of most iOS apps. This is incredibly powerful for discovering and manipulating the app's classes and methods on the fly. |
| 61 | + |
| 62 | +```bash |
| 63 | +// -U: Connect to a USB device |
| 64 | +// -f: Spawn the app with this package name |
| 65 | +// -n: Attach to the process with this name |
| 66 | + |
| 67 | +frida -U -f com.highaltitudehacks.DVIAswiftv2 -n 'DVIA-v2' |
| 68 | +``` |
| 69 | + |
| 70 | +**Here are fundamental commands:** |
| 71 | + |
| 72 | + |
| 73 | + |
| 74 | +* `ObjC.available`: This is a crucial check you should perform at the beginning of your scripts. It returns true if the Objective-C runtime is accessible within the target process, and false if it is not. This confirms you are in the right context before trying to execute any other Objective-C commands. |
| 75 | + |
| 76 | +* `ObjC.classes`: This command provides a goldmine of information. It returns a list of all Objective-C classes currently loaded in the application's memory. This is your starting point for understanding the app's structure and finding interesting targets to hook and manipulate. |
| 77 | + |
| 78 | +* |
0 commit comments