CtrlK
BlogDocsLog inGet started
Tessl Logo

mobile-security

Mobile application security reconnaissance — APK/IPA analysis, permission enumeration, certificate validation, hardcoded secret detection, insecure storage identification, network security analysis.

57

Quality

66%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide

SecuritybySnyk

Passed

No findings from the security scan

Fix and improve this skill with Tessl

tessl review fix ./packages/decepticon/decepticon/skills/standard/recon/mobile-security/SKILL.md
SKILL.md
Quality
Evals
Security

Mobile Application Security Reconnaissance Knowledge Base

Mobile application security reconnaissance involves static analysis of APK and IPA files to identify vulnerabilities, misconfigurations, and security weaknesses without executing the application. This skill enables autonomous agents to analyze mobile applications for security issues.

1. APK Analysis

Package Information Extraction

# Extract APK package information
aapt dump badging {apk_path}

# Extract full APK details
aapt dump all {apk_path}

Decompilation

# Decompile APK with apktool
apktool d {apk_path} -o output_dir

# Decompile with jadx (to Java source)
jadx {apk_path} -d output_dir

# Convert DEX to JAR for Java analysis
dex2jar {apk_path} -o output.jar

Resource Extraction

# Extract resources from APK
unzip -l {apk_path}
unzip -d output_dir {apk_path}

# View AndroidManifest.xml
aapt dump xmltree {apk_path} AndroidManifest.xml

2. iOS IPA Analysis

Package Information

# Extract IPA metadata
unzip -l {ipa_path}

# View Info.plist
plutil -p {ipa_path}/Payload/*.app/Info.plist

Binary Analysis

# Extract binary information
otool -lv {binary_path}

# View strings in binary
strings {binary_path}

# Check entitlements
jtool --ent {ipa_path}/Payload/*.app/embedded.mobileprovision

3. Certificate and Signature Validation

Android

# View certificate information
keytool -printcert -jarfile {apk_path}

# Verify APK signature
jarsigner -verify -verbose -certs {apk_path}

iOS

# Check code signing
codesign -v --deep --strict {app_path}

# View provisioning profile
security cms -D -i {embedded.mobileprovision_path}

4. Hardcoded Secret Detection

String Extraction

# Extract all strings from binary
strings {binary_path} > strings_output.txt

# Search for API keys and secrets
grep -E "(API_KEY|api_key|SECRET|secret|PASSWORD|password|TOKEN|token)" strings_output.txt

# Search for AWS credentials
grep -E "(AKIA|ASIA)[0-9A-Z]{16,}" strings_output.txt

Common Secret Patterns

  • AWS Access Keys: AKIA... or ASIA... (20 characters)
  • GitHub Tokens: ghp_, gho_, ghu_, ghs_, ghr_
  • Generic API Keys: Various formats depending on service
  • Private Keys: -----BEGIN PRIVATE KEY-----
  • JWT Tokens: Three base64-encoded parts separated by dots

5. Insecure Storage Identification

Android

# Check for SharedPreferences usage
grep -r "SharedPreferences" smali/ 2>/dev/null

# Check for file-based storage
grep -r "FileOutputStream\|FileInputStream\|openFileOutput\|openFileInput" smali/ 2>/dev/null

# Check for SQLite database
grep -r "SQLiteDatabase\|SQLiteOpenHelper" smali/ 2>/dev/null

iOS

# Check for UserDefaults
strings {binary_path} | grep -i "UserDefaults"

# Check for Keychain usage
strings {binary_path} | grep -i "Keychain"

# Check for plist storage
find {app_path} -name "*.plist" -type f

6. Network Security Configuration Analysis

Android

# Check for cleartext traffic
grep -r "android:usesCleartextTraffic" AndroidManifest.xml

# Check for network security config
cat app/src/main/res/xml/network_security_config.xml 2>/dev/null

iOS

# Check ATS (App Transport Security) settings
plutil -p {app_path}/Info.plist | grep -A 10 "NSAppTransportSecurity"

7. Third-Party Library Vulnerability Scanning

Library Identification

# List all JAR files in APK
unzip -l {apk_path} | grep "\.jar$"

# Check for known vulnerable libraries
grep -r "org.apache.commons\|com.google.gson\|com.fasterxml.jackson" smali/ 2>/dev/null

Version Checking

  • Use OWASP Dependency-Check for vulnerability scanning
  • Use mobsfscan for mobile-specific vulnerability detection
  • Check CVE databases for known vulnerabilities

8. WebView Security Checks

Android

# Check for JavaScript enabled
grep -r "setJavaScriptEnabled(true)" smali/ 2>/dev/null

# Check for DOM storage enabled
grep -r "setDomStorageEnabled(true)" smali/ 2>/dev/null

# Check for addJavascriptInterface
grep -r "addJavascriptInterface" smali/ 2>/dev/null

9. Deep Link Analysis

Android

# Check for intent filters in manifest
grep -A 5 "intent-filter" AndroidManifest.xml

# Check for deep link schemes
grep -o '<data android:scheme="[^"]*"' AndroidManifest.xml

iOS

# Check for URL schemes in Info.plist
plutil -p Info.plist | grep -A 5 "CFBundleURLTypes\|URL Schemes"

10. Mobile-Specific Security Checks

Android

  • Check for android:debuggable="true" in manifest
  • Check for android:allowBackup="true"
  • Check for exported components (activities, services, receivers, providers)
  • Check for insufficient permissions on content providers

iOS

  • Check for jailbreak detection bypass
  • Check for debug mode enabled
  • Check for iTunes backup prevention
  • Check for sensitive data in logs

Tools Summary

ToolPurposeRequired
apktoolAPK decompilation and resource extraction
dex2jarDEX to JAR conversion for Java analysis
jadxAPK decompilation to Java source
aaptAndroid Asset Packaging Tool
keytoolKeystore and certificate analysis
jarsignerJAR signature verification
stringsBinary string extraction
grepPattern matching
opensslCryptographic operations
yaraPattern matching for malware detection
mobsfMobile Security Framework
fridaDynamic instrumentation
objectionRuntime mobile exploration
Repository
PurpleAILAB/Decepticon
Last updated
First committed

Is this your skill?

If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.