conducting-mobile-application-penetration-test
Perform a mobile application penetration test on Android and iOS apps to identify insecure data storage, certificate pinning bypass, API vulnerabilities, binary protections, and runtime manipulation using Frida, Objection, and MobSF.
What this skill does
# Conducting Mobile Application Penetration Test ## Overview Mobile application penetration testing evaluates the security of Android and iOS applications following the OWASP Mobile Application Security Testing Guide (MASTG) and Mobile Application Security Verification Standard (MASVS). Testing covers static analysis of the application binary, dynamic runtime analysis, API communication security, data storage assessment, and reverse engineering resistance. ## Prerequisites - Application APK/IPA file or TestFlight/Play Store access - Rooted Android device or emulator (Genymotion, Android Studio AVD) - Jailbroken iOS device or Corellium cloud instance - Tools: Frida, Objection, MobSF, Jadx, Burp Suite, adb, Ghidra - OWASP MASTG checklist ## Android Testing ### Static Analysis ```bash # Decompile APK with jadx jadx -d output_dir target.apk # Search for hardcoded secrets grep -rn "api_key\|secret\|password\|token\|firebase" output_dir/sources/ # Check AndroidManifest.xml # Look for: exported components, debuggable=true, allowBackup=true grep -i "exported\|debuggable\|allowBackup\|android:permission" output_dir/resources/AndroidManifest.xml # MobSF automated static analysis # Upload APK to MobSF web interface (http://localhost:8000) # Or use REST API: curl -F "[email protected]" http://localhost:8000/api/v1/upload \ -H "Authorization: <api_key>" # Check for insecure network security config cat output_dir/resources/res/xml/network_security_config.xml # Look for: cleartextTrafficPermitted="true", trust-anchors with user certs # Analyze native libraries find output_dir/resources/lib -name "*.so" -exec strings {} \; | grep -i "key\|secret" ``` ### Dynamic Analysis ```bash # Install on device via adb adb install target.apk # Start Frida server on device adb push frida-server /data/local/tmp/ adb shell chmod 755 /data/local/tmp/frida-server adb shell /data/local/tmp/frida-server & # Objection — runtime exploration objection -g com.target.app explore # Inside Objection: # List activities and services android hooking list activities android hooking list services # Bypass root detection android root disable # Bypass SSL pinning android sslpinning disable # Dump keystore android keystore list # Enumerate shared preferences android hooking search classes SharedPreferences # Monitor clipboard android clipboard monitor # Explore filesystem env ls /data/data/com.target.app/ file download /data/data/com.target.app/shared_prefs/ file download /data/data/com.target.app/databases/ ``` ### Data Storage Testing ```bash # Check shared preferences for sensitive data adb shell cat /data/data/com.target.app/shared_prefs/*.xml # Check SQLite databases adb pull /data/data/com.target.app/databases/app.db sqlite3 app.db ".dump" | grep -i "password\|token\|session" # Check for data in external storage adb shell ls /sdcard/Android/data/com.target.app/ # Check for sensitive data in logs adb logcat -d | grep -i "token\|password\|session\|api_key" # Backup extraction adb backup -apk -shared com.target.app -f backup.ab java -jar abe.jar unpack backup.ab backup.tar tar xf backup.tar ``` ### Network Traffic Analysis ```bash # Configure Burp proxy on device # Settings > WiFi > Proxy > Manual > 192.168.1.100:8080 # Install Burp CA certificate on device # For apps with certificate pinning: # Method 1: Objection objection -g com.target.app explore android sslpinning disable # Method 2: Frida script frida -U -f com.target.app -l ssl_pinning_bypass.js --no-pause # Method 3: Patch APK # Use apktool to decompile, modify network_security_config.xml, repack apktool d target.apk -o decompiled/ # Edit res/xml/network_security_config.xml to trust user CAs apktool b decompiled/ -o patched.apk jarsigner -keystore my.keystore patched.apk alias_name ``` ## iOS Testing ### Static Analysis ```bash # Decrypt IPA (from jailbroken device) # Using frida-ios-dump python3 dump.py com.target.app # Or using Clutch on device Clutch -d com.target.app # Analyze binary with class-dump class-dump -H TargetApp -o headers/ grep -rn "password\|token\|secret\|apiKey" headers/ # Check Info.plist plutil -p Payload/TargetApp.app/Info.plist # Look for: ATS exceptions, URL schemes, exported UTIs # Check for insecure API connections grep -i "http://" headers/*.h grep -i "NSAllowsArbitraryLoads" Payload/TargetApp.app/Info.plist ``` ### Dynamic Analysis (iOS) ```bash # Frida on iOS frida -U -f com.target.app -l ios_bypass.js --no-pause # Objection for iOS objection -g com.target.app explore # Inside Objection: ios sslpinning disable ios jailbreak disable ios keychain dump ios plist cat NSUserDefaults ios cookies get ios nsurlcredentialstorage dump # Check Keychain for stored secrets objection -g com.target.app explore --startup-command 'ios keychain dump' # Check for data protection classes objection -g com.target.app explore --startup-command 'ios info binary' ``` ### API Testing ```bash # Through Burp Suite, test captured API calls: # Authentication bypass # Modify JWT tokens, test for algorithm confusion (none, HS256 vs RS256) # IDOR testing # Change user identifiers in API requests # Rate limiting # Brute force OTP/PIN endpoints # Input validation # Test for injection in API parameters # Business logic # Manipulate prices, quantities, subscription tiers in requests ``` ## OWASP MASVS Checklist | Category | Test | Status | |----------|------|--------| | MASVS-STORAGE-1 | Sensitive data in system logs | [ ] | | MASVS-STORAGE-2 | Sensitive data in backups | [ ] | | MASVS-STORAGE-3 | Sensitive data in IPC | [ ] | | MASVS-CRYPTO-1 | Proper cryptographic APIs | [ ] | | MASVS-AUTH-1 | Local authentication bypass | [ ] | | MASVS-NETWORK-1 | TLS with trusted CA | [ ] | | MASVS-NETWORK-2 | Certificate pinning | [ ] | | MASVS-PLATFORM-1 | Exported components secured | [ ] | | MASVS-CODE-1 | Code obfuscation | [ ] | | MASVS-RESILIENCE-1 | Root/jailbreak detection | [ ] | ## References - OWASP MASTG: https://mas.owasp.org/MASTG/ - OWASP MASVS: https://mas.owasp.org/MASVS/ - Frida: https://frida.re/ - Objection: https://github.com/sensepost/objection - MobSF: https://github.com/MobSF/Mobile-Security-Framework-MobSF - JADX: https://github.com/skylot/jadx
Related in Backend & APIs
jfrog
IncludedInteract with the JFrog Platform via the JFrog CLI and REST/GraphQL APIs. Use this skill when the user wants to manage Artifactory repositories, upload or download artifacts, manage builds, configure permissions, manage users and groups, work with access tokens, configure JFrog CLI servers, search artifacts, manage properties, set up replication, manage JFrog Projects, run security audits or scans, look up CVE details, query exposures scan results from JFrog Advanced Security, manage release bundles and lifecycle operations, aggregate or export platform data, or perform any JFrog Platform administration task. Also use when the user mentions jf, jfrog, artifactory, xray, distribution, evidence, apptrust, onemodel, graphql, workers, mission control, curation, advanced security, exposures, or any JFrog product name.
cupynumeric-migration-readiness
IncludedPre-migration readiness assessor for porting NumPy to cuPyNumeric. Use BEFORE substantial porting work begins when the user asks whether code will scale on GPU, whether they should migrate to cuPyNumeric, which NumPy patterns transfer cleanly, what must be refactored before porting, or mentions pre-port assessment, scaling analysis, or refactor planning. Inspect the user's source code, look up NumPy usage, cross-reference the cuPyNumeric API support manifest, and distinguish distributed-scaling-friendly patterns from blockers such as unsupported APIs, scalar synchronization, host round-trips, Python/object-heavy control flow, shape/data-dependent branching, and in-place mutation hazards. Produce a verdict of READY, LIGHT REFACTOR, SIGNIFICANT REFACTOR, or NOT RECOMMENDED, with concrete refactor pointers.
alibabacloud-data-agent-skill
IncludedInvoke Alibaba Cloud Apsara Data Agent for Analytics via CLI to perform natural language-driven data analysis on enterprise databases. Data Agent for Analytics is an intelligent data analysis agent developed by Alibaba Cloud Database team for enterprise users. It automatically completes requirement analysis, data understanding, analysis insights, and report generation based on natural language descriptions. This tool supports: discovering data resources (instances/databases/tables) managed in DMS, initiating query or deep analysis sessions, real-time progress tracking, and retrieving analysis conclusions and generated reports. Use this Skill when users need to query databases, analyze data trends, generate data reports, ask questions in natural language, or mention "Data Agent", "data analysis", "database query", "SQL analysis", "data insights".
token-optimizer
IncludedReduce OpenClaw token usage and API costs through smart model routing, heartbeat optimization, budget tracking, and native 2026.2.15 features (session pruning, bootstrap size limits, cache TTL alignment). Use when token costs are high, API rate limits are being hit, or hosting multiple agents at scale. The 4 executable scripts (context_optimizer, model_router, heartbeat_optimizer, token_tracker) are local-only — no network requests, no subprocess calls, no system modifications. Reference files (PROVIDERS.md, config-patches.json) document optional multi-provider strategies that require external API keys and network access if you choose to use them. See SECURITY.md for full breakdown.
resend-cli
IncludedUse this skill when the task is specifically about operating Resend from an AI agent, terminal session, or CI job via the official resend CLI: installing/authenticating the CLI, sending/listing/updating/cancelling emails, batch sends, domains and DNS, webhooks and local listeners, inbound receiving, contacts, topics, segments, broadcasts, templates, API keys, profiles, or debugging Resend CLI/API failures. Trigger on mentions of Resend CLI, `resend`, `resend doctor`, `resend emails send`, `resend domains`, `resend webhooks listen`, `resend emails receiving`, or agent-friendly terminal automation.
alibabacloud-odps-maxframe-coding
IncludedUse this skill for MaxFrame SDK development and documentation navigation on Alibaba Cloud MaxCompute (ODPS). Helps answer MaxFrame API, concept, official example, and supported pandas API questions; create data processing programs; read/write MaxCompute tables; debug jobs (remote or local); and build custom DPE runtime images. Trigger when users mention MaxFrame, MaxCompute with MaxFrame, ODPS table processing, DPE runtime, MaxFrame docs/examples, DataFrame/Tensor operations, or GPU runtime setup. Works for both English and Chinese queries about Alibaba Cloud data processing with MaxFrame.