Pular para o conteúdo
Module 0 — Legal, Ethics, Scope & Lab Setup
- 0.1 Authorization & rules of engagement (RoE)
- Written authorization checklist
- Scope definition: in-scope assets, out-of-scope limits
- Data handling, privacy, chain of custody
- Emergency contacts & escalation
- 0.2 Test types and methodologies
- Black-box, gray-box, white-box testing distinctions
- Risk-based vs feature-based assessments
- Goal setting: confidentiality, integrity, availability objectives
- 0.3 Lab & safe environment setup (recommended)
- Hardware options: physical iPhones/iPads (jailbroken & non-jailbroken), macOS host
- Emulators/simulators: differences (iOS Simulator vs real device)
- Network lab: isolated VLAN, proxying, MITM lab machines
- Recommended VM images, snapshots, and backups
- 0.4 Evidence collection & reporting best practices
- Triage forms, screenshots, logs, PCAPs, timestamps, reproducibility
- Report templates, severity mapping, CVSS basics
- Disclosure workflow & remediation verification
Module 1 — iOS Basics & App Anatomy
- 1.1 iOS architecture & app lifecycle (high level)
- Process model, sandboxing, entitlements, provisioning
- App bundle structure: .app folder, Info.plist, assets
- 1.2 IPA, provisioning profiles, and code signing
- IPA format, payload layout, embedded provisioning profile
- Code signing basics and entitlements (conceptual)
- 1.3 Mach-O binary format & Objective-C/Swift runtime fundamentals
- Symbols, sections, Objective-C runtime (classes, selectors), Swift metadata
- 1.4 iOS storage primitives
- NSUserDefaults/UserDefaults, SQLite, Realm, Keychain basics
- 1.5 Networking stack overview
- NSURLSession, CFNetwork, TLS basics, certificate pinning concept
- 1.6 App protections & common countermeasures (overview)
- Obfuscation, anti-tamper, anti-debug, jailbreak/root detection, runtime integrity checks, SSL pinning
Module 2 — Reconnaissance & Information Gathering
- 2.1 Passive recon from App Store / TestFlight / APK mirrors
- Metadata, permissions, release notes, binaries (how to obtain IPAs legally)
- 2.2 Static metadata collection
- Info.plist, entitlements, URL schemes, deep links, supported architectures
- 2.3 OSINT & infrastructure mapping
- Backend domains, API endpoints, certificate info, mobile API discovery
- 2.4 Binary acquisition (legal & safe methods)
- Downloading IPAs from TestFlight/App Store (authorized flows), enterprise builds
- 2.5 Initial threat modeling for the app
- Assets, trust boundaries, attacker capabilities & likely attack vectors
Module 3 — Static Analysis (conceptual → tooling)
- 3.1 Manual inspection of bundle contents
- Info.plist, embedded.mobileprovision, resource files, configuration leaks
- 3.2 Class-dump & header reconstruction (conceptual)
- Recreating class interfaces and method lists
- 3.3 Decompilation & disassembly overview
- Hopper, Ghidra, IDA, Binary Ninja — what each gives you conceptually
- 3.4 Swift reverse engineering basics (metadata, mangled names)
- 3.5 Searching for secrets & misconfigurations
- Hardcoded keys, embedded credentials, API keys, dev endpoints
- 3.6 Static analysis tools & scanners (list + purpose)
- mobSF (Mobile Security Framework), iOS-specific linters, strings, grep, floss
Module 4 — Dynamic Analysis & Instrumentation (non-exploitative)
- 4.1 Runtime observation techniques
- Logging, network inspection, local storage observation
- 4.2 Proxying & MITM (conceptual)
- Burp/mitmproxy usage with mobile: device proxying, certificate installation, TLS limits
- 4.3 Debugging basics on iOS
- lldb overview, process attachment concepts, sandbox constraints
- 4.4 Tainting & data flow observation (conceptual)
- Tracing sensitive data from source (input) to sink (network, file)
- 4.5 App behavioral profiling
- Monitoring app lifecycle and network patterns
Module 5 — Runtime Hooking & Frida (conceptual + safe guidance)
- 5.1 What is Frida and when to use it
- Frida architecture (agent + host), dynamic instrumentation benefits
- 5.2 Frida session lifecycle & primitives (conceptual)
- Interceptors, Stalker, NativeFunction, Memory.read/write (concepts)
- 5.3 Typical Frida use-cases (authorized testing)
- Inspecting method calls, bypassing client-side logic for testing, extracting runtime secrets
- 5.4 Anti-Frida & anti-instrumentation concepts
- Detecting injected agents, checksums, dynamic integrity checks
- 5.5 Safe, high-level examples of hooks (no copy/paste exploit code)
- How to approach hooking: identify target functions, log inputs/outputs, validate effects
- 5.6 Tooling ecosystem: Objection, frida-swift, frida-objc, gadget injection options (conceptual)
Module 6 — Jailbreak Detection, Anti-Debug & Anti-Tamper
- 6.1 Typical jailbreak checks & detection vectors
- File path checks, process checks, URL scheme checks, sandbox escapes (conceptual)
- 6.2 Anti-debug / anti-attach techniques apps use
- ptrace, sysctl checks, signal handlers (conceptual)
- 6.3 Counter-anti-debug and bypassing approaches (conceptual)
- Hardening vs testing: safe ways to test anti-debug without posting weaponized steps
- 6.4 Tamper detection & runtime integrity checks
- Checksums, encrypted resources, runtime attestation concepts
- 6.5 Best practices for responsibly testing and reporting bypassable protections
Module 7 — SSL / TLS and Certificate Pinning (analysis + testing)
- 7.1 TLS basics & failure modes
- 7.2 Pinning approaches (public key, certificate, SPKI) and how apps implement them (conceptual)
- 7.3 Testing strategies to verify pinning and check fallback behaviors
- 7.4 MitM evasion defenses and responsible testing notes
- 7.5 Defensive remediation guidance for developers
Module 8 — Authentication & Session Management Attacks
- 8.1 Local authentication flows (PIN, biometric, server verification)
- 8.2 Session token lifecycle, renewal, revocation, and fixation issues
- 8.3 Broken authentication scenarios and tests
- Weak session tokens, predictable tokens, insufficient logout, duplicate login handling
- 8.4 OAuth / SSO integration pitfalls
- 8.5 Recommended tests and safe verification steps
Module 9 — Data Storage & Keychain Attacks
- 9.1 iOS Keychain model & access groups (conceptual)
- 9.2 Common misuses of secure storage
- 9.3 Local file storage weaknesses (unencrypted DBs, caches, logs)
- 9.4 Safe methods to verify sensitive data leakage (without providing exploit scripts)
- 9.5 Mitigations and secure storage best practices
Module 10 — Reverse Engineering, Binary Patching & Repackaging (overview + ethics)
- 10.1 When and why to patch or repackage an app in testing
- 10.2 High-level process: unpack → analyze → modify → repackage → re-sign (conceptual)
- 10.3 Code signing, entitlements, provisioning constraints (conceptual)
- 10.4 Common pitfalls and safe lab practices (don’t present weaponized steps)
- 10.5 Secure reporting: how to present proof of concept without shipping exploit code
Module 11 — Advanced Code & Flow Analysis
- 11.1 Dynamic taint analysis & data flow tracing concepts
- 11.2 Finding logic flaws: authorization, business logic, race conditions
- 11.3 Interplay of client & server logic — how to model and test
- 11.4 Advanced reverse engineering topics (Swift generics, runtime symbols)
Module 12 — Exploit Development (conceptual, lab-only)
- 12.1 Memory corruption basics (conceptual only)
- 12.2 Exploit mitigations on iOS (ASLR, DEP, code signing) — why real exploits are hard
- 12.3 Vulnerability chaining and the ethics of exploitation
- 12.4 Safe, simulated exploit examples for learning inside isolated lab VMs (recommendations — no weaponized code here)
Module 13 — Runtime Patching & Function Hooking Techniques (advanced, conceptual)
- 13.1 Inline patching vs trampolines — concepts
- 13.2 Using runtime hooks to change business logic (authorized testing)
- 13.3 Detecting and defeating self-integrity checks (conceptual)
- 13.4 Best practices for building PoCs that are safe, reproducible, and non-destructive
Module 14 — Obfuscation & Protections: How They Work and How to Assess Them
- 14.1 Types of obfuscation: symbol/identifier, control-flow, string encryption
- 14.2 Packing & runtime loaders
- 14.3 Measuring protection strength and limitations
- 14.4 Guidance for developers: choosing protections that don’t break maintainability
Module 15 — Mobile Backend Attacks & API Security
- 15.1 API enumeration and attack surface mapping
- 15.2 Common API flaws: broken access control, IDOR, excessive data exposure
- 15.3 Rate limiting, throttling, and brute force protections
- 15.4 Testing methodology and responsible disclosure steps to backend teams
Module 16 — Advanced Topics: Side-channels, Inter-process, and System-level Issues
- 16.1 Side-channel information leakage (timing, resource usage)
- 16.2 Inter-app communication risks (URL schemes, pasteboard, XPC)
- 16.3 Exploiting misconfigured entitlements & app groups (conceptual)
- 16.4 Hardware-assisted protections and bypass realities
Module 17 — Automation, Tooling & Frameworks
- 17.1 Scripting reconnaissance and repeated checks (conceptual)
- 17.2 CI/CD security checks for mobile apps
- 17.3 Useful toolchain: mobSF, Frida, Objection, class-dump, radare2, Hopper, Ghidra, IDA, Burp, mitmproxy, lldb, Xcode tools, codesigners
- 17.4 Building reproducible testcases & PoCs safely
Module 18 — Reporting, Remediation, and Developer Collaboration
- 18.1 Structuring a technical pentest report (Executive Summary → Technical → PoC → Remediation)
- 18.2 Risk rating, CVSS and practical business impact
- 18.3 Recommended fixes for frequent issues
- 18.4 Retest and verification process
Module 19 — Defensive Guidance & Secure Development Lifecycle (SDLC)
- 19.1 Secure coding patterns for iOS apps
- 19.2 Threat modeling during design
- 19.3 Secure third-party library management
- 19.4 Runtime monitoring and detection as defense
Module 20 — Appendix: Reference Material, Cheat Sheets, and Labs
- 20.1 Recommended reading & blogs, vulnerability databases, CVE feeds
- 20.2 Labs, CTFs and learning resources (safe environments)
- 20.3 Glossary of iOS pentest terms
- 20.4 Example RoE template, test checklists, report templates
For each module I will include (per your request)
- Purpose & learning objectives
- Prerequisites
- Full tool list with alternatives (why choose each)
- Step-by-step methodology at the conceptual level
- Safe, reproducible lab exercises (where applicable) using isolated devices/VMs
- What to capture as evidence and how to present it
- Common pitfalls, mitigations, and developer recommendations
- Links to further reading & reference (where publicly available)