Skip to content

Back to the catalog

DragonJAR/Android-Pentesting-Skill
github.comrepo

DragonJAR/Android-Pentesting-Skill

Android-Pentesting-Skill is an open-source "skill" package that turns an AI coding agent (Claude Code, OpenCode, etc.) into an Android APK security auditor. It orchestrates APKTool/JADX decompilation, MASTG-aligned Semgrep static rules, source-to-sink tracing, a Runtime Defense Analysis engine that maps detected RASP/anti-tampering protections (root detection, SSL pinning, Frida detection, SafetyNet, Approov, DexGuard, etc.) to reusable Frida bypass profiles, and CVSS 4.0/MASVS-scored professional reporting, plus smali patching/repackaging workflows for authorized lab use. It ships 37+ bundled Frida scripts, 70+ Semgrep MASTG rules, and framework-specific handling for Flutter, React Native, Cordova, and Unity apps.

TL;DR An AI-agent skill (for Claude Code/OpenCode) that automates full Android APK pentests — static analysis, Frida-based RASP/SSL-pinning bypass, and MASVS/CVSS-scored reporting.
Document

What to do

The value the summary omits is the exact command sequence and its ordering constraint. Install by cloning into your agent's skills directory:

cd ~/.agents/skills/
git clone https://github.com/DragonJAR/Android-Pentesting-Skill Android-Pentesting-Skill

Verify dependencies before running anything:

python3 scripts/06-setup/preflight-check.py

Shell and PowerShell variants exist (preflight-check.sh, preflight-check.ps1); the Bash script needs Bash 4+ (/opt/homebrew/bin/bash on macOS Homebrew).

How it works

The RASP bypass is a four-step "DRY" pipeline that is print-first — it will not execute a bypass until you pass --run --authorized-lab. The ordering matters: detect, then map detections to reusable profiles, then generate a reviewable command, then (only if authorized) run.

# 1) Detect RASP/runtime defenses
bash scripts/02-rasp/runtime-defense-analyzer.sh app.apk com.target.app --output findings-rda.json

# 2) Review available bypass profiles
bash scripts/02-rasp/rasp-bypass-runner.sh --list-profiles

# 3) Generate a reviewed Frida command from findings
bash scripts/02-rasp/rasp-bypass-runner.sh \
  --package com.target.app \
  --from-rda findings-rda.json \
  --print-command

# 4) Execute only in an authorized lab
bash scripts/02-rasp/rasp-bypass-runner.sh \
  --package com.target.app \
  --from-rda findings-rda.json \
  --run --authorized-lab

Profiles live in scripts/02-rasp/bypass-profiles.json and reference Frida scripts under assets/frida-scripts/. Phase structure runs 0–5 (decode → manifest/attack-surface → grep patterns → Semgrep MASTG rules → source-to-sink → RASP → classification/scoring); the transcripts show it auto-detects Flutter, React Native (libhermes.so), and native frameworks and adjusts (e.g. extracting assets/index.android.bundle for RN secret scans).

flowchart LR
  D[RDA detect] --> P[list-profiles]
  P --> C[print-command]
  C -->|reviewed| A{--authorized-lab?}
  A -->|yes| R[run bypass]
  A -->|no| STOP[print only, no exec]

Caveats

The page states one hard limit explicitly: client-side Frida hooks cannot forge server-side attestation verdicts. For Approov, Play Integrity, or SafetyNet, you need an authorized test tenant, backend allowlist, mock verifier, or approved lab config — not a hook. Bypass validation only covers client-side controls (SSL pinning, root/debug/emulator checks, anti-Frida, FLAG_SECURE, packer/native checks) and only "where technically feasible." The RDA in the transcript exposed 18 catalog entries but only 14 executable detectors, so detection coverage exceeds bypass coverage.

Organisations named here

  • CVSS
  • MASTG
  • MASVS
  • OWASP Mobile Top 10

Technologies named here

  • Android-Pentesting-Skill
  • Android APKs
  • Flutter apps
  • APKTool
  • JADX
  • React Native apps
  • APKiD
  • Android 14+
  • Android 15/16
  • Android SDK tools
  • Frida
  • Android Keystore2
  • DexGuard 9+
  • Semgrep
  • RDA
  • Arxan
  • rasp-bypass-runner.sh
  • calculate-score.py
  • frida-exploit-helper.py
  • Blutter
  • ssl-pinning-bypass.js
  • root-detection-bypass.js
  • native-root-detection-probe.js
  • native-hook.js
  • biometric-bypass.js
  • network-interceptor.js
  • crypto-intercept.js
  • zipalign
  • apksigner
  • adb-backup-extract.sh
  • drozer-automated.sh
  • firebase-check.sh
  • inspect-app-sandbox.sh
  • live-logcat-analyzer.py
  • mobsf-api-scan.py
  • burp-findings-export.py
  • rop-helper.py
  • correlate-findings.py
  • generate-report.py
  • fetch-apk-gmail.py
  • advanced-static-checks.sh
  • version-diff-audit.sh
  • preflight-check.py/.sh/.ps1
  • Android
  • Claude Code
  • OpenCode

Techniques named here

  • Exported Activity Without Permission
  • Exported Activity with Intent Redirection
  • Hardcoded API Key / Hardcoded Credentials
  • Debug Logging/Mode Enabled
  • Weak SSL Certificate Validation
  • SSL Pinning Bypass
  • Root Detection Bypass
  • Intent Injection / Confused Deputy
  • Deep Link Exploitation
  • Source-to-sink data flow tracing
  • RASP/Runtime Defense Detection
  • APK Repackaging/Patching
  • Secret extraction from JavaScript bundle