You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
* Always include dependency vulnerability scanning.
367
+
* Verify dylib loading paths and signatures.
368
+
* Audit library permissions against functionality.
369
+
* Test for runtime library manipulation.
370
+
371
+
> **Important Link:** special for [Dylib](https://book.hacktricks.wiki/en/macos-hardening/macos-security-and-privilege-escalation/macos-dyld-hijacking-and-dyld_insert_libraries.html)
288
372
373
+
## Inter-Process Communication (IPC)
289
374
375
+
Inter-Process Communication (IPC) allows iOS applications to exchange data and communicate with other apps, extensions, and system services. While IPC enables powerful functionality, it also creates significant security risks that penetration testers must evaluate.
376
+
377
+
**Types of IPC Mechanisms in iOS:**
378
+
379
+
a. URL Schemes:
380
+
381
+
* Allow apps to communicate via custom URLs.
382
+
* Can be exploited for unauthorized data access or actions.
383
+
* How They Work:
384
+
* Apps register a custom URL scheme (e.g., `myapp://`) in their `Info.plist`:
385
+
386
+
```xml
387
+
<key>CFBundleURLTypes</key>
388
+
<array>
389
+
<dict>
390
+
<key>CFBundleURLSchemes</key>
391
+
<array>
392
+
<string>myapp</string>
393
+
</array>
394
+
</dict>
395
+
</array>
396
+
```
397
+
398
+
* When a user clicks a link like `myapp://profile/123`, iOS checks if any app has registered `myapp://` and opens it.
399
+
400
+
b. Universal Links:
401
+
402
+
* A deeplink in mobile application is like a special link that takes you directly to a specific part of a mobile app instead of a website. This means you can easily switch between apps or go from a website to an app without having to click a lot of buttons. It makes it quicker and easier to find what you’re looking for in the app.
403
+
* Can be hijacked if not properly validated.
404
+
* How They Work:
405
+
* Uses standard HTTPS links (e.g., `https://example.com/profile/123`) instead of custom schemes.
406
+
* Server Setup: Host an `apple-app-site-association` (AASA) JSON file at `https://example.com/.well-known/apple-app-site-association`.
407
+
408
+
```json
409
+
{
410
+
"applinks": {
411
+
"apps": [],
412
+
"details": [
413
+
{
414
+
"appID": "TEAMID.com.example.app",
415
+
"paths": ["/profile/*", "/settings"]
416
+
}
417
+
]
418
+
}
419
+
}
420
+
```
421
+
422
+
* App Setup: Enable "Associated Domains" in Xcode and add
* Can use frida-trace to get the methods and classes that using openurl, run it then go to ssh connection on device and run the url schema using uiopen to trace exactly what is method and class use that url schema.
* The iOS Keychain is a secure storage system for sensitive information like passwords, credit card details, and cryptographic keys, accessible to apps and the user.
500
+
* Allows apps from same developer to share sensitive data.
0 commit comments