Welcome to My-iOS-Pentesting-Cheatsheet! This repository serves as a personal guide and reference for iOS penetration testing. Whether you're a beginner or an experienced pentester, this cheatsheet will aid you in your iOS security assessments.
Note: This is a continuously updated learning resource, and contributions/suggestions are highly welcome!
- Obsidian Vault - Visual Playbook
- Introduction
- Setup & Installation
- Tools
- Common Techniques
- Resources
- Contributing
- START HERE!
This repository now includes a comprehensive Obsidian-formatted iOS Pentesting Playbook located in the iOS Pentesting/ folder.
-
Clone the repository:
git clone https://github.com/Abhinandan-Khurana/My-iOS-Pentesting-Cheatsheet.git
-
Open in Obsidian:
- Download Obsidian if you haven't already
- Launch Obsidian and click "Open folder as vault"
- Select the cloned repository folder
- Navigate to
iOS Pentesting/iOS Pentesting.md- this is your starting hub
-
Explore the Playbook:
- Hub File:
iOS Pentesting/iOS Pentesting.md- Central navigation point - Visual Canvas:
iOS Pentesting/Maps/iOS Pentesting Canvas.canvas- Interactive workflow map - Bases Database:
iOS Pentesting/Bases/iOS Pentesting Index.base- Searchable note index - 26+ Sections: Covering methodology, setup, analysis, and reporting
- Hub File:
- Wikilinks: All notes are interconnected for seamless navigation
- Canvas Map: Visual representation of the entire pentesting workflow
- Bases: Database-style browsing of all notes with filtering
- Graph View: Visualize connections between concepts (use Obsidian's built-in Graph View)
iOS Pentesting/
├── iOS Pentesting.md # Hub file - START HERE
├── Bases/
│ └── iOS Pentesting Index.base # Database view of all notes
├── Maps/
│ ├── iOS Pentesting Canvas.canvas # Visual workflow map
│ └── Visual Workflow.md # Embedded workflow views
├── Sections/ # 26+ detailed sections
│ ├── Assessment Workflow.md
│ ├── Static Analysis.md
│ ├── Dynamic Analysis Setup.md
│ ├── Runtime Testing with Objection and Frida.md
│ └── ... (more sections)
├── Source/
│ └── ios_pentesting_playbook_beginner_to_advanced.md
└── Templates/
└── Personal Notes Section.md
iOS penetration testing involves assessing the security of iOS applications and devices to identify vulnerabilities that could be exploited by malicious actors. This cheatsheet compiles essential commands, tools, and methodologies to streamline your pentesting workflow.
- macOS: Strongly recommended for full iOS pentesting workflows (especially for Xcode/signing/simulator tasks).
- Xcode: Install from the Mac App Store.
- Homebrew: Package manager for macOS. Install with:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
-
Homebrew:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" -
Burp Suite:
brew install --cask burp-suite
-
Frida:
brew install frida
-
Objection (recommended via Python tooling for better version control):
pipx install objection
Alternative (if available in your environment):
brew install objection
-
Cycript (legacy):
Cycript is mostly legacy for modern iOS workflows; prefer Frida/Objection first.
# optional, only for compatible legacy lab setups brew install cycript
A powerful web vulnerability scanner and proxy tool.
- Usage: Intercept and modify traffic between the iOS app and the server.
A dynamic instrumentation toolkit for developers, reverse-engineers, and security researchers.
- Usage: Inject scripts into iOS apps to bypass security mechanisms.
Runtime mobile exploration toolkit powered by Frida.
- Usage: Jailbreak-free mobile exploration.
A tool that combines JavaScript and Objective-C.
- Usage: Inspect and modify iOS apps at runtime.
Apple's IDE for macOS, used for developing iOS applications.
- Usage: Reverse engineer and debug iOS applications.
-
Identify Target App:
ideviceinstaller -l
-
Acquire Testable Build (preferred order):
1) Client-provided .ipa/.app 2) Developer/test build via Xcode 3) Authorized jailbreak + Frida-based dump workflow (scoped and approved) -
Bypass SSL Pinning with Frida:
// frida script to bypass SSL pinning -
Hooking Functions:
frida -U -f com.target.app -l hook.js --no-pause
- Dumping Application Data:
objection -U -g com.target.app explore
- Extracting Sensitive Information:
cycript -p <PID>
- HackTricks iOS Pentesting
- Frida Documentation
- Objection GitHub
- Cycript GitHub
- OWASP Mobile Security Project
Contributions are what make the open-source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.
- Fork the Repository
- Create a Branch:
git checkout -b feature/AmazingFeature - Commit Your Changes:
git commit -m 'Add some AmazingFeature' - Push to the Branch:
git push origin feature/AmazingFeature - Open a Pull Request
- Ensure Code Quality: Follow consistent coding standards and include comments where necessary.
- Update Documentation: If you add new features or tools, update the README accordingly.
- Report Issues: Use the Issues section to report bugs or request features.
Happy Pentesting! 🔐📱