smithery/hardw00t

ios-pentest

iOS mobile application penetration testing with Frida and Objection on jailbroken or non-jailbroken devices.

Installation

$ npx skills add smithery/hardw00t --skill ios-pentest

Summary

  • iOS mobile application penetration testing with Frida and Objection on jailbroken or non-jailbroken devices.
  • Use for static + dynamic analysis of IPAs, SSL pinning / jailbreak / biometric bypass, keychain & local-storage extraction, network interception, and OWASP MASTG iOS assessments.
  • Triggers on requests to pentest iOS apps, analyze IPAs, bypass iOS security controls, or produce MASTG-aligned findings.

Similar popular skills

Related neighbors and high-traction skills in the same topics — useful to compare before installing.

Also in this package

Other skills from smithery/hardw00t.

npx skills add smithery/hardw00t

Browse all from smithery/hardw00t

More details

Agent compatibility

Declared targets from SKILL.md / docs. Unmarked agents are not listed — the skill may still install via the CLI.

Claude Code Declared
Cursor Not declared
Codex Not declared
GitHub Copilot Not declared
Windsurf Not declared
Gemini CLI Not declared
Cline Not declared
OpenCode Not declared

Skill metadata

Parsed from SKILL.md frontmatter.

Declared agents claude-code

Package contents

Files included with this skill beyond the listing page.

  • skill md SKILL.md 9,736 B
  • docs SUMMARY.md 531 B

History

  1. First recorded snapshot · 0 installs

SKILL.md

iOS Mobile Application Penetration Testing

Thin router for an iOS app security assessment. Full OWASP MASTG coverage (recon → static → dynamic → network → storage → crypto → auth → reporting). Detailed runbooks live under workflows/ and methodology/; load them only when needed.

When to Use

  • New iOS application security assessment (IPA + installed app).
  • Bypass SSL pinning, jailbreak detection, biometric, anti-debug.
  • Extract and triage keychain / NSUserDefaults / files / SQLite.
  • Intercept and tamper HTTPS / gRPC / WebSocket traffic.
  • OWASP MASTG / MASVS compliance testing.
  • Analyze a decrypted or encrypted Mach-O binary.

Trigger Phrases

"pentest iOS app", "test this IPA", "bypass SSL pinning iPhone", "extract keychain", "MASTG iOS", "iOS jailbreak bypass", "analyze .ipa", "test iPhone app".

When NOT to Use This Skill

  • Android APK analysis → use android-pentest.
  • Generic web API testing for the backend → use web-pentest / api-pentest.
  • iOS source-code review (you have the repo) → use secure-code-review with iOS language packs.
  • macOS desktop app analysis → use macos-pentest.

Decision Tree

target acquired?
├── no binary yet → workflows/ipa_decryption.md
└── yes
    ├── need HTTPS visibility? → workflows/ssl_pinning_bypass.md
    ├── app exits on jailbroken device? → workflows/jailbreak_detection_bypass.md
    ├── hunting credentials/tokens? → workflows/keychain_extraction.md
    ├── testing login / biometric? → workflows/auth_testing.md
    └── full engagement → workflows/complete_assessment.md

Parallelism Hints

Run concurrently (independent I/O, no shared state):

  • class-dump -H App.app/App -o headers/
  • otool -L App.app/App and otool -hv App.app/App
  • strings -a App.app/App | grep ...
  • plutil -p App.app/Info.plist
  • Objection enumeration in a separate spawn.

Must run sequentially (shared Frida session / spawn state):

  • Frida --no-pause spawn → wait for bypass script to land → drive app → then attach further scripts.
  • Objection ios sslpinning disable → then any traffic-dependent command.
  • ideviceimagemounter → then frida-ps -U.
  • Keychain dump requires app launched at least once post-install.

Sub-Agent Delegation

Spawn a sub-agent when you can crisply isolate a scope:

  • Static-binary sub-agent — give it the decrypted App.app/, it runs class-dump + otool + strings + framework inventory in parallel, returns a structured summary of classes of interest, hardcoded secrets, and insecure API usage.
  • Keychain-extraction sub-agent — give it <bundle_id>, it runs objection ... keychain dump --json, classifies each entry by accessibility/ACL, emits findings per schemas/finding.json.
  • Optional: network-capture sub-agent driving Burp via proxy API while the main agent drives the UI.

Do not split Frida spawn + instrumentation across sub-agents — the Frida session is stateful and tied to one process.

Reasoning Budget

Use extended thinking for:

  • Interpreting decompiled Objective-C / Swift (Hopper / Ghidra / IDA output).
  • Designing custom Frida hooks when universal bypass fails.
  • Reasoning about cryptographic flow (key origin → cipher → storage).
  • MASVS severity triage when multiple subtle issues compound.

Skip extended thinking for:

  • Running canned Frida / Objection scripts from scripts/.
  • Parsing ios keychain dump --json output (pattern match).
  • otool / class-dump invocation and output collection.
  • File downloads, device enumeration, SSH pulls.

Multimodal Hooks

Mobile MCP (@anthropic/mobile-mcp --ios) provides iOS simulator / device UI automation:

  • Jailbreak-detection modal — screenshot the warning pre-bypass, then post-bypass absence, as evidence.screenshot.
  • Biometric prompt — capture Face ID / Touch ID sheet to prove the gate exists, then confirm bypass entered the protected screen.
  • App-switcher snapshot leak — screenshot the snapshot cache entry showing sensitive data on backgrounding.
  • WebView auth flow — capture the login redirect chain visually for SSO findings.

~/.claude/mcp.json:

{"mcpServers": {"mobile-mcp": {"command": "npx", "args": ["-y", "@anthropic/mobile-mcp", "--ios"]}}}

Structured Output

Emit every finding as JSON conforming to schemas/finding.json. iOS-specific fields: affected.bundleid, affected.iosversion, affected.deviceudid, affected.jailbroken, mastgid, evidence.fridapid, evidence.keychaindump, evidence.screenshot.

Workflow Index

Workflow File
Full assessment runbook [workflows/completeassessment.md](workflows/completeassessment.md)
SSL pinning bypass [workflows/sslpinningbypass.md](workflows/sslpinningbypass.md)
Jailbreak-detection bypass [workflows/jailbreakdetectionbypass.md](workflows/jailbreakdetectionbypass.md)
Keychain extraction & triage [workflows/keychainextraction.md](workflows/keychainextraction.md)
IPA decryption / acquisition [workflows/ipadecryption.md](workflows/ipadecryption.md)
Auth & biometric testing [workflows/authtesting.md](workflows/authtesting.md)

Methodology Index

Area File
Recon [methodology/recon.md](methodology/recon.md)
Static analysis [methodology/staticanalysis.md](methodology/staticanalysis.md)
Dynamic analysis [methodology/dynamicanalysis.md](methodology/dynamicanalysis.md)
Network testing [methodology/networktesting.md](methodology/networktesting.md)
Data storage [methodology/datastorage.md](methodology/datastorage.md)
Crypto testing [methodology/cryptotesting.md](methodology/cryptotesting.md)
Auth testing [methodology/authtesting.md](methodology/authtesting.md)

Payloads Index

File Purpose
[payloads/jailbreakdetectionpaths.txt](payloads/jailbreakdetectionpaths.txt) Common files/schemes iOS apps probe for jailbreak
[payloads/urlschemetests.txt](payloads/urlschemetests.txt) URL scheme / deep-link test vectors

Frida Script Index (scripts/)

Script Purpose
sslpinningbypass.js Universal SSL/TLS pinning bypass
jailbreak_bypass.js Jailbreak detection bypass
biometric_bypass.js Touch ID / Face ID bypass
keychain_hooks.js Keychain operation monitoring
crypto_hooks.js Cryptographic operation tracing
method_tracer.js Generic Objective-C method tracer

References Index

File Purpose
[references/iosvulns.md](references/iosvulns.md) iOS vuln classes, severity tables, MASVS map
[references/troubleshooting.md](references/troubleshooting.md) Frida / pinning / proxy issue triage
[references/fridaiossnippets.md](references/fridaiossnippets.md) Reusable Frida code snippets
[references/bountypatterns20242026.md](references/bountypatterns20242026.md) Post-2023 bounty TTPs (URL-scheme / Universal-Link hijack, WebView deep-link XSS, Keychain IAM-token insecurity)
[checklists/owaspmastgios.md](checklists/owaspmastgios.md) Full MASTG iOS checklist
[templates/findingreport.md](templates/findingreport.md) Markdown finding template

Examples

File Purpose
[examples/initialsetup.md](examples/initialsetup.md) First-contact blueprint
[examples/sslbypassrun.md](examples/sslbypassrun.md) Pinning-bypass blueprint
[examples/keychaindump.md](examples/keychaindump.md) Keychain dump & triage blueprint

Tools

Tool Purpose Install
Frida / frida-tools Dynamic instrumentation pip install frida-tools (≥ 16.6)
Objection Mobile exploration REPL pip install objection (≥ 1.11)
libimobiledevice Device communication brew install libimobiledevice
ios-deploy App deploy brew install ios-deploy
ideviceinstaller App install / list brew install ideviceinstaller
class-dump ObjC header extraction brew install class-dump
frida-ios-dump FairPlay decryption github.com/AloneMonkey/frida-ios-dump
Burp Suite HTTPS interception PortSwigger
Hopper / IDA / Ghidra Binary RE Vendor / GitHub
Mobile MCP UI automation + screen capture npx @anthropic/mobile-mcp --ios

Prerequisites Quickcheck

Run before every engagement — fail fast if the lab is broken.

idevice_id -l               # at least one UDID listed
ideviceinfo | grep ProductVersion
frida-ps -U                 # frida-server reachable
objection -g <bundle_id> explore --startup-command 'ios info binary; exit'

Jailbroken setup: OpenSSH + Frida (Sileo repo build.frida.re) + AppSync Unified + Filza. Non-jailbroken fallback: patch IPA with objection patchipa to inject Frida Gadget, or mount the developer disk image with ideviceimagemounter.

Last Validated

2026-04. Frida ≥ 16.6, Objection ≥ 1.11, iOS 15–17 targets. For iOS 18+ jailbreak options shift to userspace-only (Dopamine/palera1n rootless) — SSH path is /var/jb/usr/bin/ssh and Frida server lives at /var/jb/usr/sbin/frida-server.