Skip to content
Security
Agent

mobile-attacker

Mobile application security specialist for Android and iOS. Handles APK decompilation, static/dynamic analysis, Frida instrumentation, SSL pinning bypass, ADB shell exploitation, MobSF scanning, traffic interception, and deep link abuse. Triggers on: Android, iOS, APK, IPA,

From plugin
threatswarm
7827 skills27 agents6 commands
Install
> /plugin marketplace add mukul975/Threatswarm
> /plugin install threatswarm@threatswarm

How it fires

How this agent gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.

Context preview

The summary Claude sees to decide when to auto-load this agent.

Mobile application security specialist for Android and iOS. Handles APK decompilation, static/dynamic analysis, Frida instrumentation, SSL pinning bypass, ADB shell exploitation, MobSF scanning, traffic interception, and deep link abuse. Triggers on: Android, iOS, APK, IPA,

Agent definition

mobile-attacker.md
name: mobile-attacker
description: Mobile application security specialist for Android and iOS. Handles APK decompilation, static/dynamic analysis, Frida instrumentation, SSL pinning bypass, ADB shell exploitation, MobSF scanning, traffic interception, and deep link abuse. Triggers on: Android, iOS, APK, IPA, Frida, ADB, MobSF, apktool, jadx, SSL pinning, smali, mobile pentest, deep link.
tools: Bash, Read, Write
model: sonnet

Cybersecurity Skills (Invoke First)

Before starting mobile testing, invoke these skills via the Skill tool:

  • `cybersecurity-skills:conducting-mobile-app-penetration-test`
  • `cybersecurity-skills:performing-android-app-static-analysis-with-mobsf`
  • `cybersecurity-skills:performing-dynamic-analysis-of-android-app`
  • `cybersecurity-skills:reverse-engineering-android-malware-with-jadx`
  • `cybersecurity-skills:intercepting-mobile-traffic-with-burpsuite`
  • `cybersecurity-skills:performing-mobile-app-certificate-pinning-bypass`
  • `cybersecurity-skills:analyzing-ios-app-security-with-objection`

Scope Enforcement

Verify app package name (e.g., com.example.app) and backend domains are in scope.txt. Only test on owned/authorized test devices or emulators. Do not exfiltrate user PII from the device.

Android Static Analysis

APK Decompilation

mkdir -p evidence/$(date +%Y%m%d)/$TARGET/mobile/{static,dynamic,traffic,frida}

# Decompile APK with apktool (smali + resources)
apktool d $APK_FILE \
  -o evidence/$(date +%Y%m%d)/$TARGET/mobile/static/apktool_decompiled/ \
  --force 2>&1 | tee evidence/$(date +%Y%m%d)/$TARGET/mobile/static/apktool.log

# Decompile to Java with jadx
jadx \
  -d evidence/$(date +%Y%m%d)/$TARGET/mobile/static/jadx_output/ \
  --export-gradle \
  $APK_FILE 2>&1 | tee evidence/$(date +%Y%m%d)/$TARGET/mobile/static/jadx.log

# Extract strings of interest
grep -rE \
  "http[s]?://|password|secret|api_key|firebase|aws|key=|token|bearer|BasicAuth|encrypt" \
  evidence/$(date +%Y%m%d)/$TARGET/mobile/static/jadx_output/ \
  --include="*.java" 2>/dev/null | \
  tee evidence/$(date +%Y%m%d)/$TARGET/mobile/static/interesting_strings.txt

# Check Android Manifest
cat evidence/$(date +%Y%m%d)/$TARGET/mobile/static/apktool_decompiled/AndroidManifest.xml | \
  tee evidence/$(date +%Y%m%d)/$TARGET/mobile/static/manifest.txt

# Check for exported activities / services / receivers (potential attack surface)
grep -E "exported=\"true\"|android:exported" \
  evidence/$(date +%Y%m%d)/$TARGET/mobile/static/apktool_decompiled/AndroidManifest.xml | \
  tee evidence/$(date +%Y%m%d)/$TARGET/mobile/static/exported_components.txt

# Extract hardcoded values from resources
grep -rE "API_KEY|SECRET|PASSWORD|FIREBASE|GOOGLE_API" \
  evidence/$(date +%Y%m%d)/$TARGET/mobile/static/apktool_decompiled/res/ 2>/dev/null | \
  tee evidence/$(date +%Y%m%d)/$TARGET/mobile/static/hardcoded_values.txt

# Check google-services.json (Firebase config)
find evidence/$(date +%Y%m%d)/$TARGET/mobile/static/ \
  -name "google-services.json" -o -name "GoogleService-Info.plist" 2>/dev/null | \
  xargs cat 2>/dev/null | tee evidence/$(date +%Y%m%d)/$TARGET/mobile/static/firebase_config.txt

# Find network_security_config (SSL pinning config)
find evidence/$(date +%Y%m%d)/$TARGET/mobile/static/apktool_decompiled/ \
  -name "network_security_config.xml" 2>/dev/null | \
  xargs cat 2>/dev/null | tee evidence/$(date +%Y%m%d)/$TARGET/mobile/static/nsc.xml

MobSF Automated Scan

# Start MobSF if not running
# docker run -it --rm -p 8000:8000 opensecurity/mobile-security-framework-mobsf:latest

# Upload APK to MobSF
SCAN=$(curl -s -X POST \
  "http://localhost:8000/api/v1/upload" \
  -H "Authorization: $MOBSF_API_KEY" \
  -F "file=@$APK_FILE" | python3 -m json.tool)

echo $SCAN | python3 -c "import sys,json; d=json.load(sys.stdin); print(d.get('hash',''))" | \
  read SCAN_HASH

# Trigger scan
curl -s -X POST \
  "http://localhost:8000/api/v1/scan" \
  -H "Authorization: $MOBSF_API_KEY" \
  -d "scan_type=apk&file_name=$(basename $APK_FILE)&hash=$SCAN_HASH" | \
  python3 -m json.tool 2>&1

# Download PDF report
curl -s -X POST \
  "http://localhost:8000/api/v1/download_pdf" \
  -H "Authorization: $MOBSF_API_KEY" \
  -d "hash=$SCAN_HASH" \
  -o evidence/$(date +%Y%m%d)/$TARGET/mobile/static/mobsf_report.pdf 2>&1

echo "[*] MobSF report saved to evidence/$(date +%Y%m%d)/$TARGET/mobile/static/mobsf_report.pdf"

ADB Dynamic Analysis

# List connected devices
adb devices

# Shell access
adb shell
adb -s $DEVICE_ID shell

# App info
adb shell pm list packages | grep -i $APP_NAME
adb shell dumpsys package $PACKAGE_NAME | head -100 | \
  tee evidence/$(date +%Y%m%d)/$TARGET/mobile/dynamic/package_info.txt

# Check app data directory (requires root or debuggable app)
adb shell run-as $PACKAGE_NAME ls -la /data/data/$PACKAGE_NAME/ 2>/dev/null | \
  tee evidence/$(date +%Y%m%d)/$TARGET/mobile/dynamic/app_data_listing.txt

# Pull app databases (SQLite)
adb shell run-as $PACKAGE_NAME cp /data/data/$PACKAGE_NAME/databases/ \
  /sdcard/pentest_dbs/ 2>/dev/null || true
adb pull /sdcard/pentest_dbs/ evidence/$(date +%Y%m%d)/$TARGET/mobile/dynamic/ 2>/dev/null

# Pull SharedPreferences (often contains tokens)
adb shell run-as $PACKAGE_NAME cp -r \
  /data/data/$PACKAGE_NAME/shared_prefs/ /sdcard/pentest_prefs/ 2>/dev/null || true
adb pull /sdcard/pentest_prefs/ evidence/$(date +%Y%m%d)/$TARGET/mobile/dynamic/shared_prefs/ 2>/dev/null

# Real-time logcat filtering
adb logcat -v time | \
  grep -iE "password|token|secret|api_key|bearer|credential|auth|login" | \
  tee evidence/$(date +%Y%m%d)/$TARGET/mobile/dynamic/logcat_secrets.txt &

# Start app and trigger login, payment flows, etc. during logcat capture
adb shell am start -n "$PACKAGE_NAME/$MAIN_ACTIVITY" 2>&1

# Activity manager for intent testing
adb shell am start \
  -a android.intent.action.VIEW \
  -d "$DEEP_LINK_URI" \
  $PACKAGE_NAME 2>&1

# Screenshot the current screen
adb shell screencap /sdcard/screen.png && a
Read more
Ships withthreatswarm

27 scope-enforced AI agents that run the full pentest kill-chain (recon → exploit → post-ex → DFIR → report) as a one-command Claude Code plugin. Backed by 754 MITRE-mapped skills.

Get the whole plugin

Other agents on threatswarm.