analyzing-ios-app-security-with-objection skill (Anthropic-Cybersecurity-Skills)

From Public Agent Wiki

What it does. Runtime iOS app security testing with Objection (Frida): inspect keychain and filesystem data, explore app internals at runtime, and validate/bypass client-side protections during authorized mobile assessments. Part of mukul975/Anthropic-Cybersecurity-Skills (817 security skills) (mukul975/Anthropic-Cybersecurity-Skills).

Upstream mukul975/Anthropic-Cybersecurity-Skills
Skill file skills/analyzing-ios-app-security-with-objection/SKILL.md
License Apache-2.0 (skill folder LICENSE)
Author mukul975
Fetched 2026-09-10

Install

  • npx skills add mukul975/Anthropic-Cybersecurity-Skills --skill analyzing-ios-app-security-with-objection, or copy the skill folder into ~/.claude/skills/analyzing-ios-app-security-with-objection/.
  • Raw file: curl -sL https://raw.githubusercontent.com/mukul975/Anthropic-Cybersecurity-Skills/HEAD/skills/analyzing-ios-app-security-with-objection/SKILL.md

SKILL.md (verbatim)

name: analyzing-ios-app-security-with-objection
description: >-
  Runtime iOS app security testing with Objection (Frida): inspect keychain and
  filesystem data, explore app internals at runtime, and validate/bypass
  client-side protections during authorized mobile assessments.
domain: cybersecurity
subdomain: mobile-security
author: mahipal
tags:
- mobile-security
- ios
- objection
- frida
- owasp-mobile
- penetration-testing
version: 1.0.0
license: Apache-2.0
atlas_techniques:
- AML.T0054
nist_ai_rmf:
- MEASURE-2.7
- MANAGE-2.4
- GOVERN-6.2
- MAP-5.1
nist_csf:
- PR.PS-01
- PR.AA-05
- ID.RA-01
- DE.CM-09
mitre_attack:
- T1635
- T1414
- T1417.001
- T1409

Analyzing iOS App Security with Objection

When to Use

Use this skill when:

  • Performing runtime security assessment of iOS applications during authorized penetration tests
  • Inspecting iOS keychain, filesystem, and memory for sensitive data exposure
  • Bypassing client-side security controls (SSL pinning, jailbreak detection) during security testing
  • Evaluating iOS app behavior at runtime without access to source code

Do not use this skill on production devices without explicit authorization -- Objection modifies app runtime behavior and may trigger security monitoring.

Prerequisites

  • Python 3.10+ with pip
  • Objection installed: pip install objection
  • Frida installed: pip install frida-tools
  • Target iOS device (jailbroken with Frida server, or non-jailbroken with repackaged IPA)
  • For non-jailbroken: objection patchipa to inject Frida gadget into IPA
  • macOS recommended for iOS testing (Xcode, ideviceinstaller)
  • USB connection to target device or network Frida server

Workflow

Step 1: Prepare the Testing Environment

For jailbroken devices:

# Install Frida server on device via Cydia/Sileo
# SSH to device and start Frida server
ssh root@<device_ip> "/usr/sbin/frida-server -D"

# Verify Frida connectivity
frida-ps -U  # List processes on USB-connected device

For non-jailbroken devices (authorized testing):

# Patch IPA with Frida gadget
objection patchipa --source target.ipa --codesign-signature "Apple Development: test@example.com"

# Install patched IPA
ideviceinstaller -i target-patched.ipa

Step 2: Attach Objection to Target App

# Attach to running app by bundle ID
objection --gadget "com.target.app" explore

# Or spawn the app fresh
objection --gadget "com.target.app" explore --startup-command "ios hooking list classes"

Once attached, Objection provides an interactive REPL for runtime exploration.

Step 3: Assess Data Storage Security (MASVS-STORAGE)

# Dump iOS Keychain items accessible to the app
ios keychain dump

# List files in app sandbox
ios plist cat Info.plist
env  # Show app environment paths

# Inspect NSUserDefaults for sensitive data
ios nsuserdefaults get

# List SQLite databases
sqlite connect app_data.db
sqlite execute query "SELECT * FROM credentials"

# Check for sensitive data in pasteboard
ios pasteboard monitor

Step 4: Evaluate Network Security (MASVS-NETWORK)

# Disable SSL/TLS certificate pinning
ios sslpinning disable

# Verify pinning is bypassed by observing traffic in Burp Suite proxy
# Monitor network-related class method calls
ios hooking watch class NSURLSession
ios hooking watch class NSURLConnection

Step 5: Inspect Authentication and Authorization (MASVS-AUTH)

# List all Objective-C classes
ios hooking list classes

# Search for authentication-related classes
ios hooking search classes Auth
ios hooking search classes Login
ios hooking search classes Token

# Hook authentication methods to observe parameters
ios hooking watch method "+[AuthManager validateToken:]" --dump-args --dump-return

# Monitor biometric authentication calls
ios hooking watch class LAContext

Step 6: Assess Binary Protections (MASVS-RESILIENCE)

# Check jailbreak detection implementation
ios jailbreak disable

# Simulate jailbreak detection bypass
ios jailbreak simulate

# List loaded frameworks and libraries
memory list modules

# Search memory for sensitive strings
memory search "password" --string
memory search "api_key" --string
memory search "Bearer" --string

# Dump specific memory regions
memory dump all dump_output/

Step 7: Review Platform Interaction (MASVS-PLATFORM)

# List URL schemes registered by the app
ios info binary
ios bundles list_frameworks

# Hook URL scheme handlers
ios hooking watch method "-[AppDelegate application:openURL:options:]" --dump-args

# Monitor clipboard access
ios pasteboard monitor

# Check for custom keyboard restrictions
ios hooking search classes UITextField

Key Concepts

Term Definition
Objection Runtime mobile exploration toolkit built on Frida that provides pre-built scripts for common security testing tasks
Frida Gadget Shared library injected into app process to enable Frida instrumentation without jailbreak
Keychain iOS secure credential storage system; Objection can dump items accessible to the target app's keychain access group
SSL Pinning Bypass Runtime modification of certificate validation logic to allow proxy interception of HTTPS traffic
Method Hooking Intercepting Objective-C/Swift method calls at runtime to observe arguments, return values, and modify behavior

Tools & Systems

  • Objection: High-level Frida-powered mobile security exploration toolkit with pre-built commands
  • Frida: Dynamic instrumentation framework providing JavaScript injection into native app processes
  • Frida-tools: CLI utilities for Frida including frida-ps, frida-trace, and frida-discover
  • ideviceinstaller: Cross-platform tool for installing/managing iOS apps via USB
  • Burp Suite: HTTP proxy for intercepting traffic after SSL pinning bypass

Common Pitfalls

  • App crashes on attach: Some apps implement Frida detection. Use --startup-command to hook anti-Frida checks early in the app lifecycle.
  • Keychain access scope: Objection can only dump keychain items within the app's access group. System keychain items require separate jailbreak-level tools.
  • Swift name mangling: Swift method names are mangled in the runtime. Use ios hooking list classes with grep to find demangled names.
  • Non-persistent changes: All Objection modifications are runtime-only and reset on app restart. Document findings immediately.

Other files in this skill

assets/template.md (verbatim)

iOS Objection Security Assessment Report

Engagement Information

Field Value
Application [APP_NAME]
Bundle ID [BUNDLE_ID]
iOS Version [IOS_VERSION]
Device [DEVICE_MODEL]
Device State [Jailbroken/Non-Jailbroken]
Assessment Date [DATE]
Analyst [ANALYST]
Objection Version [VERSION]

Executive Summary

[Brief narrative of findings from Objection runtime analysis]

Keychain Analysis

Service Account Data Type Protection Class Risk
[SERVICE] [ACCOUNT] [TYPE] [CLASS] [RISK]

Findings: [Description of sensitive data found in keychain]

Data Storage Assessment

NSUserDefaults

Key Contains Sensitive Data Risk
[KEY] [YES/NO] [RISK]

SQLite Databases

Database Encrypted Sensitive Tables Risk
[DB_NAME] [YES/NO] [TABLES] [RISK]

Filesystem

Path Contents Protection Risk
[PATH] [DESCRIPTION] [ATTRIBUTE] [RISK]

Network Security

Check Result Details
SSL Pinning Present [YES/NO] [IMPLEMENTATION_DETAILS]
SSL Pinning Bypass [SUCCESS/FAIL] [METHOD_USED]
ATS Configuration [STRICT/RELAXED] [EXCEPTIONS]

Binary Protection Assessment

Protection Status Details
Jailbreak Detection [Present/Absent] [BYPASS_DIFFICULTY]
Frida Detection [Present/Absent] [DETAILS]
Debug Detection [Present/Absent] [DETAILS]
Code Obfuscation [Yes/No] [DETAILS]

Memory Analysis

Search Pattern Found Risk Details
Passwords [YES/NO] [RISK] [DETAILS]
Auth Tokens [YES/NO] [RISK] [DETAILS]
API Keys [YES/NO] [RISK] [DETAILS]
JWTs [YES/NO] [RISK] [DETAILS]

Recommendations

Critical

  1. [RECOMMENDATION]

High

  1. [RECOMMENDATION]

Medium

  1. [RECOMMENDATION]

references/api-reference.md (verbatim)

API Reference: iOS App Security with Objection

Objection CLI

Launch

objection -g com.example.app explore          # Attach to running app
objection -g com.example.app explore -s "command"  # Run startup command
objection patchipa --source app.ipa           # Patch IPA with Frida gadget

Keychain & Data Storage

ios keychain dump                    # Dump keychain items
ios keychain dump --json             # JSON output
ios cookies get                      # List HTTP cookies
ios nsuserdefaults get               # Read NSUserDefaults
ios plist cat Info.plist             # Read plist file

SSL Pinning

ios sslpinning disable               # Bypass SSL pinning
ios sslpinning disable --quiet        # Quiet mode

Jailbreak Detection

ios jailbreak disable                 # Bypass jailbreak detection
ios jailbreak simulate                # Simulate jailbroken device

Hooking

ios hooking list classes                        # List all classes
ios hooking list classes --include Auth          # Filter classes
ios hooking list class_methods ClassName         # List methods
ios hooking watch method "-[Class method]"       # Watch method calls
ios hooking set return_value "-[Class isJB]" false  # Override return

Filesystem

ls /                                  # List app sandbox root
ls /Documents                         # List Documents directory
file download /path/to/file local.out  # Download file
file upload local.file /remote/path    # Upload file

Memory

memory dump all dump.bin              # Dump all memory
memory search "password"              # Search memory for string
memory list modules                   # List loaded modules
memory list exports libModule.dylib   # List module exports

Frida CLI

Syntax

frida -U -n AppName                   # Attach by name
frida -U -f com.app.id                # Spawn and attach
frida -U -n AppName -l script.js      # Load script
frida-ps -U                           # List running processes
frida-ls-devices                      # List connected devices

Common Frida Scripts

// Hook method and log arguments
ObjC.choose(ObjC.classes.ClassName, {
    onMatch: function(instance) {
        Interceptor.attach(instance['- methodName:'].implementation, {
            onEnter: function(args) {
                console.log('arg1:', ObjC.Object(args[2]));
            }
        });
    }, onComplete: function() {}
});

OWASP Mobile Top 10 (2024)

ID Category Objection Check
M1 Improper Credential Usage ios keychain dump
M2 Inadequate Supply Chain Security Binary analysis
M3 Insecure Authentication Hook auth classes
M4 Insufficient Input/Output Validation Hook input methods
M5 Insecure Communication ios sslpinning disable
M6 Inadequate Privacy Controls ios nsuserdefaults get
M7 Insufficient Binary Protections Check PIE, ARC, stack canary
M8 Security Misconfiguration ios plist cat Info.plist
M9 Insecure Data Storage Filesystem + keychain review
M10 Insufficient Cryptography Hook crypto classes

iOS App Sandbox Paths

Path Contents
/Documents User-generated data
/Library/Caches Cached data
/Library/Preferences Plist settings
/tmp Temporary files
/Library/Cookies Cookie storage

references/standards.md (verbatim)

Standards Reference: iOS App Security with Objection

OWASP Mobile Top 10 2024 Mapping

OWASP ID Risk Objection Testing Coverage
M1 Improper Credential Usage Keychain dumping, memory string search for hardcoded credentials
M3 Insecure Authentication/Authorization Hook authentication methods, bypass biometric checks
M5 Insecure Communication SSL pinning bypass, network class hooking
M7 Insufficient Binary Protections Jailbreak detection bypass, Frida detection assessment
M8 Security Misconfiguration Info.plist review, URL scheme analysis, ATS configuration
M9 Insecure Data Storage NSUserDefaults inspection, SQLite database access, file system review

OWASP MASVS v2.0 Control Mapping

MASVS Category Objection Commands Assessment Area
MASVS-STORAGE ios keychain dump, ios nsuserdefaults get, sqlite connect Sensitive data in keychain, NSUserDefaults, databases
MASVS-CRYPTO memory search, hook crypto framework calls Key storage, algorithm selection
MASVS-AUTH Hook LAContext, authentication classes Biometric bypass, session management
MASVS-NETWORK ios sslpinning disable, hook NSURLSession Certificate pinning, cleartext traffic
MASVS-PLATFORM Hook URL scheme handlers, pasteboard monitor Deep link security, clipboard exposure
MASVS-CODE memory list modules, binary inspection Debugging symbols, framework analysis
MASVS-RESILIENCE ios jailbreak disable, Frida detection hooks Anti-tampering, anti-debugging

OWASP MASTG Test Cases

Test ID Description Objection Approach
MASTG-TEST-0053 Testing Local Storage for Sensitive Data ios keychain dump, filesystem inspection
MASTG-TEST-0057 Testing Backups for Sensitive Data Check backup exclusion attributes
MASTG-TEST-0060 Testing Custom URL Schemes Hook application:openURL:options:
MASTG-TEST-0063 Testing for Sensitive Data in Logs Monitor NSLog calls via hooking
MASTG-TEST-0066 Testing Enforced App Transport Security Inspect Info.plist ATS configuration

Apple Platform Security Requirements

Requirement Assessment Method
Keychain Access Control Verify kSecAttrAccessible values via keychain dump
App Transport Security Check Info.plist for NSAllowsArbitraryLoads exceptions
Data Protection API Verify file protection attributes on sensitive files
Secure Enclave Usage Hook SecKey operations for biometric-protected keys

references/workflows.md (verbatim)

Workflows: iOS App Security with Objection

Workflow 1: iOS Runtime Security Assessment

[Setup Environment] --> [Prepare Device] --> [Attach Objection] --> [Runtime Analysis]
       |                      |                     |                      |
       v                      v                     v                      v
[Install Frida]      [Jailbroken: Start    [Connect via USB]    [Data Storage Check]
[Install Objection]   frida-server]        [Spawn target app]   [Network Security]
                     [Non-JB: Patch IPA]                        [Auth Mechanism Review]
                                                                [Binary Protection Test]
                                                                         |
                                                                         v
                                                                [Document Findings]
                                                                [Generate Report]

Workflow 2: SSL Pinning Bypass for Traffic Interception

[Configure Burp Proxy] --> [Set device proxy] --> [Attach Objection]
                                                        |
                                                        v
                                              [ios sslpinning disable]
                                                        |
                                                        v
                                              [Navigate app in browser/UI]
                                                        |
                                                        v
                                              [Capture HTTPS traffic in Burp]
                                              [Analyze API endpoints]
                                              [Test authentication flows]
                                              [Check for sensitive data in transit]

Workflow 3: Keychain and Data Storage Assessment

[Attach Objection] --> [ios keychain dump] --> [Analyze keychain items]
                              |                        |
                              v                        v
                    [ios nsuserdefaults get]   [Check protection classes]
                              |               [Identify sensitive tokens]
                              v               [Verify encryption at rest]
                    [List app sandbox files]
                              |
                              v
                    [sqlite connect *.db]
                    [Query sensitive tables]
                              |
                              v
                    [memory search "password"]
                    [memory search "token"]
                    [memory search "secret"]

Workflow 4: Jailbreak Detection Assessment

[Attach Objection] --> [ios jailbreak disable] --> [Navigate app]
                              |                          |
                              v                   [App functions normally?]
                    [Hook detection methods]        /           \
                    [Monitor file checks]       [Yes]          [No]
                    [Monitor Cydia URL scheme]    |              |
                              |               [Detection       [Additional detection
                              v                bypassed]        methods exist]
                    [Document detection                          |
                     methods found]                    [Hook deeper: search
                    [Assess bypass                      for custom checks]
                     difficulty]                       [Frida script for
                                                       targeted bypass]

Decision Matrix: Testing Approach

Device State IPA Access Approach
Jailbroken Not needed Direct Frida server + Objection attach
Non-jailbroken Available Patch IPA with objection patchipa
Non-jailbroken Not available Request IPA from client or use device management
Emulator N/A Limited: Frida on Corellium or similar platform

Back to mukul975/Anthropic-Cybersecurity-Skills (817 security skills) or Agent skills.