firebase-apk-scanner — Claude Code skill: Firebase audit for APKs
Unpacks an Android APK, pulls out its Firebase config and probes databases, buckets and functions for open access. Built for mobile app security audits.
npx skills add trailofbits/skills --skill firebase-apk-scanner -a claude-codeWhat firebase-apk-scanner does
The skill runs scanner.sh, which decompiles an APK with apktool and gathers Firebase credentials from google-services.json, XML resources, assets, smali and DEX strings. Then it moves to live checks: unauthenticated read and write on Realtime Database, Firestore document access, Storage bucket listing, open signup, anonymous auth, email enumeration, Cloud Function calls and Remote Config exposure. Two reports come out — scan_report.json and a narrative scan_report.txt.
Test entries the scanner creates get removed afterwards. If anonymous auth succeeds, the token is kept so you can retry against rules that assume a signed-in user. Tool permissions stay narrow: Bash is limited to scanner.sh, apktool and curl, alongside file reads and grep.
Not every APK reaches the probing stage. When decompilation fails or no Firebase config turns up, a report is still written but the exit code is nonzero, and that file counts as untested rather than clean. Coverage has edges too: Cloud Functions are probed in us-central1 only, while auth, functions and Remote Config are exercised against just the first project ID and API key extracted. Apps backed by several Firebase projects need a pass per config. The skill targets Android; iOS and web builds are out of scope.
What it helps with
- find an open Realtime Database from a shipped APK
- check whether a Storage bucket accepts writes
- extract the Firebase project ID and API key from a compiled APK
- test unrestricted signup and anonymous auth
- enumerate Cloud Functions and hit them without a token
Example prompts for the agent
- Scan
app-release.apkfor Firebase misconfigurations - Run the scanner over the
apks/folder and show me the report - Does this APK have an open Realtime Database?
How to install firebase-apk-scanner
1Skills CLI (Vercel)
npx skills add trailofbits/skills --skill firebase-apk-scanner -a claude-code2Manually: put the files in place
~/.claude/skills/firebase-apk-scanner/SKILL.mdCopy the whole skill folder; for one project use .claude/skills/firebase-apk-scanner/
1Skills CLI (Vercel)
npx skills add trailofbits/skills --skill firebase-apk-scanner -a codex2Manually: put the files in place
.agents/skills/firebase-apk-scanner/SKILL.mdFor all projects use ~/.agents/skills/
1Skills CLI (Vercel)
npx skills add trailofbits/skills --skill firebase-apk-scanner -a cursor2Manually: put the files in place
.cursor/skills/firebase-apk-scanner/SKILL.mdCursor also reads .agents/skills/ and .claude/skills/
1GitHub CLI
gh skill install trailofbits/skills firebase-apk-scanner2Manually: put the files in place
.github/skills/firebase-apk-scanner/SKILL.md1Skills CLI (Vercel)
npx skills add trailofbits/skills --skill firebase-apk-scanner -a gemini-cli2Platform CLI
gemini skills install https://github.com/trailofbits/skills --path plugins/firebase-apk-scanner/skills/firebase-apk-scannerManually: put the files in place
.devin/skills/firebase-apk-scanner/SKILL.mdThe legacy .windsurf/skills/ path still works
Skills CLI (Vercel)
npx skills add trailofbits/skills --skill firebase-apk-scanner -a opencodeClaude.ai
Zip the folder and upload it in Settings → Capabilities → Skills
Step by step, with commands for each platform: How to install skills in Claude Code: five ways
Questions about firebase-apk-scanner
How do I install firebase-apk-scanner in Claude Code?
Run npx skills add trailofbits/skills --skill firebase-apk-scanner -a claude-code. The skill lands at ~/.claude/skills/firebase-apk-scanner/SKILL.md.
What does firebase-apk-scanner do?
It decompiles an Android APK, extracts the Firebase configuration and probes its endpoints for open access: databases, storage, authentication, Cloud Functions and Remote Config. Results go into a text report and a JSON one.
What does the scanner leave untested?
Cloud Functions are checked in us-central1 only. Auth, functions and Remote Config are tested against the first extracted project ID and API key, so apps with multiple Firebase projects need a separate run per config.