Apk Redteam Pipeline
This skill automates the discovery and inventory of Android APKs linked to a target organization, using triggers like Play Store developer pages, direct APK file hosting, stealer log leaks, or bug bounty scope. It then initiates a full red-team pipeline for each identified APK.
How to Install
git clone --depth 1 https://github.com/elementalsouls/Claude-BugHunter.git && cp Claude-BugHunter/skills/apk-redteam-pipeline ~/.claude/skills/SKILL.md -rWhen to use this skill
Trigger when:
- Recon surfaces 1+ mobile apps under the target's developer name (Play Store dev page)
- A web app hosts *.apk files directly (e.g. Recruitz.apk found on a subdomain during one engagement)
- APK package IDs leaked via stealer logs (e.g. com.<brand>.app, com.<brand>.<sub-brand> patterns in stealer dump format)
- Customer-facing app, dealer/partner portal, or employee mobile companion app is in scope
- Bug bounty program lists Android in scope
DO NOT use for: - iOS-only targets (different pipeline — IPA reverse, MobSF, frida-ios-dump) - React Native / Flutter web apps already covered by JS bundle analysis - Server-side only assessments
Stage 0 — Inventory all org-owned apps
Play Store developer-page scrape
# Find developer page from the target's brand name
curl -sk -A "Mozilla/5.0" "https://play.google.com/store/apps/developer?id=<Brand+Name>" -o /tmp/dev.html
# Extract package IDs
grep -oE 'id=[a-zA-Z0-9._]+' /tmp/dev.html | sort -u
Example output (anonymized — 7 packages typical for a multi-brand conglomerate):
com.events.<brand>build
com.<corp>.<sub-brand-1>
com.<corp>.<sub-brand-2>
com.<corp>.<flagship>
com.<corp>.<product-line-1>
com.<corp>.<product-line-2>
com.<corp>.<sub-brand-3>
Cross-reference with stealer logs
Stealer-log format includes package names like *@com.<corp>.<app> — extract these from creds_userpass.txt if you have a leaked dump.
Brand permutation guesses (multi-brand conglomerate patterns)
com.<brand>.app
com.<brand>.mobile
com.<brand>.android
com.<brand>connect.app
in.<brand>.dealer
in.co.<brand>.app
Stage 1 — APK acquisition
Primary: APKPure direct (no auth required)
# Follow 302 redirects to actual download
curl -sk -L --max-time 60 \
"https://d.apkpure.net/b/APK/<package_id>?version=latest" \
-o "<package_id>.apk"
# Or via the legacy d-XX.winudf.com mirror chain (we saw this work)
Secondary: APKMirror search
curl -sk -A "Mozilla/5.0" "https://www.apkmirror.com/?post_type=app_release&searchtype=apk&s=<brand>" \
| grep -oE 'href="[^"]+\.apk[^"]*"' | sort -u
Tertiary: APKPure web search
curl -sk "https://apkpure.com/search?q=<brand>" | grep -oE 'data-dt-app="[^"]+"'
XAPK vs APK
.xapk= a zip containing multiple split APKs (base + config.armeabi-v7a + config.en + etc.)- Unzip outer first, then unzip the inner
base.apkor<package>.apk - Some apkpure downloads return truncated XAPK with missing EOCD signature — symptom of CDN rate-limiting; rotate IP and retry, OR use
7z xwhich is more lenient thanunzip
# Standard unzip (works for clean APK)
unzip -o <package>.apk -d extracted_<package>/
# For truncated/repaired XAPK
7z x -y <package>.apk -o"extracted_<package>"
# For nested XAPK
for inner in extracted_<package>/*.apk; do
mkdir -p "extracted_<package>/$(basename "$inner" .apk)"
unzip -o "$inner" -d "extracted_<package>/$(basename "$inner" .apk)"
done
Stage 2 — DEX decompilation (jadx)
# Install
brew install jadx # macOS
# or
wget https://github.com/skylot/jadx/releases/latest/download/jadx-1.5.x.zip
# Decompile
jadx -d decompiled_<package>/ <package>.apk
# For XAPK that contains multiple APKs
for inner in extracted_<package>/*.apk; do
jadx -d decompiled_<package>_$(basename "$inner" .apk)/ "$inner"
done
For a fast "strings only" pass without full decompilation:
find extracted_<package> -name "classes*.dex" -exec strings -8 {} \; > strings_<package>.txt
Stage 3 — Secret grep (the 60-pattern catalog)
```bash
URL grep — owned-domain references
grep -oE 'https?://[a-zA-Z0-9.-]+.(target1|target2|target3).(com|io|net|in)[a-zA-Z0-9./?=&%-]*' strings
Internal IP / port URLs
grep -oE 'https?://(10.|172.(1[6-9]|2[0-9]|3[01]).|192.168.|127.)[0-9.]+(:[0-9]+)?[a-zA-Z0-9./?=&-]*' strings
Cloud credentials
grep -oE 'AKIA[A-Z0-9]{16}' # AWS Access Key grep -oE 'aws_secret_access_key[\s:=]+[A-Za-z0-9/+=]{40}' # AWS Secret grep -oE 'AIza[A-Za-z0-9_-]{35}' # Google API key grep -oE 'ya29.[A-Za-z0-9_-]+' # Google OAuth refresh token grep -oE 'gh[ps][A-Za-z0-9]{36}' # GitHub PAT grep -oE 'glpat-[A-Za-z0-9-]{20}' # GitLab PAT grep -oE 'xox[pbar]-[A-Za-z0-9-]+' # Slack token grep -oE 'sk-[A-Za-z0-9]{48}' # OpenAI API key grep -oE 'sk-ant-[A-Za-z0-9_-]{90,}' # Anthropic API key grep -oE 'AC[a-f0-9]{32}' # Twilio Account SID grep -oE 'sk_live_[A-Za-z0-9]{24}' # Stripe live key grep -oE 'pk_live_[A-Za-z0-9]{24}' # Stripe publishable grep -oE 'mailgun-[A-Za-z0-9-]{40}' # Mailgun grep -oE 'SG.[A-Za-z0-9_-]{22}.[A-Za-z0-9_-]{4
Details
| Category | AI/ML → ml |
| Source | elementalsouls/Claude-BugHunter |
| SKILL.md | View on GitHub → |
| Repo Stars | ★ 2.7K |
| Est. per Skill | N/A (shared across 50 skills from this repo) |
| Difficulty | Intermediate |
| Risk Level | N/A |
Related Skills
Works Well With
Skills from the same repository — often designed to work together