agentleFS
ivRodriguezCAivRodriguezCA/MobHunt/CLAUDE.md

MobHunt

CLAUDE.md37 starsChanged 3 months agoMITView on GitHub

CRITICAL RULES App Acquisition Integrity: NEVER download mobile binaries (IPAs, APKs, XAPKs) from third-party websites or services (APKPure, APKMirror, Aptoide, etc.). ALL app binaries MUST be acquired exclusively from official sources: - iOS: App Store via ipatool (requires authenticated Apple ID) - Android: Google Play or Aurora Store on an Android emulator, then pull via ADB (tools/acquisition/android_acquire.sh) Third-party mirrors cannot be trusted; they may contain tampered, outdated, or repackaged binaries. If official store download fails, ask the user to provide…

The file

We split this CLAUDE.md into the rules it gives an agent

1 rule. About 0 are common, 0 are distinctive, and 1 is very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈0

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 1

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Very specific:

    Never commit, push, or publish anything under these four, and never quote their contents into a public document.

    line 109

≈ “Common” is an estimate: at least 1 in 5 of the 26,980 CLAUDE.md files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
CLAUDE.md

MobHunt: Claude Code Configuration

CRITICAL RULES

App Acquisition Integrity: NEVER download mobile binaries (IPAs, APKs, XAPKs) from third-party websites or services (APKPure, APKMirror, Aptoide, etc.). ALL app binaries MUST be acquired exclusively from official sources:

  • iOS: App Store via ipatool (requires authenticated Apple ID)
  • Android: Google Play or Aurora Store on an Android emulator, then pull via ADB (tools/acquisition/android_acquire.sh) Third-party mirrors cannot be trusted; they may contain tampered, outdated, or repackaged binaries. If official store download fails, ask the user to provide the binary manually. NEVER suggest or attempt 3P download as a fallback.

No 3P Credential Tools: NEVER hand user credentials (passwords, tokens, API keys) to third-party CLI tools or libraries beyond minimal crypto primitives. Build our own tools instead. This includes tools like apkeep, even if open-source.

Python Environment: ALWAYS activate the virtual environment at .venv before installing Python dependencies. Create it with python3 -m venv .venv if it doesn't exist.

Project Overview

MobHunt is an agentic mobile security research system for automated vulnerability hunting through bug bounty programs. It uses an orchestrator agent that spawns focused sub-agents, each assigned a narrow objective (one vulnerability class or attack surface area per agent).

See DESIGN.md for full architecture documentation, and docs/ios-decryption.md for the iOS decryption fallback chain.

Workflow

/hunt <program>  →  scope → acquire → recon → hunt → chain → validate → report
                                                 ↑                        |
                                                 └──── agentic loop ──────┘

Rules (Always Active)

The following rules are loaded on every session and must always be followed:

  • rules/hunting.md: Mobile hunting discipline (scope verification, 5-min rule, concrete evidence)
  • rules/reporting.md: Report quality standards (impact-first titles, mobile context, exact repro steps)
  • rules/ethics.md: Responsible disclosure boundaries (in-scope only, no user data, static first, no publication without approval)
  • rules/mobile-specific.md: Platform-specific rules (Apple Silicon, decryption verification, FAT binaries)

Agents

Agents are spawned by the orchestrator with specific, narrow objectives:

AgentFileModelPurpose
Orchestrator.claude/agents/orchestrator.mdOpusPipeline coordination, agentic loop
Scope Agent.claude/agents/scope-agent.mdHaikuIdentify mobile assets from bug bounty programs
Acquisition Agent.claude/agents/acquisition-agent.mdSonnetDownload, extract, decrypt apps
iOS Hunter.claude/agents/ios-hunter.mdOpusiOS vulnerability hunting (x5 parallel)
Android Hunter.claude/agents/android-hunter.mdOpusAndroid vulnerability hunting (x5 parallel)
Android Mariana Hunter.claude/agents/android-mariana-hunter.mdOpus (1M)Mariana Trench taint analysis (x1, runs alongside Android hunters)
Android Semgrep Hunter.claude/agents/android-semgrep-hunter.mdSonnet (1M)Semgrep pattern triage on jadx Java (x1)
iOS Semgrep Hunter.claude/agents/ios-semgrep-hunter.mdSonnet (1M)Semgrep scan of IPA resources + embedded sources (x1)
Validator.claude/agents/validator.mdSonnetMobile 7-Question Gate + 4 post-gates
Report Writer.claude/agents/report-writer.mdOpusGenerate H1/Bugcrowd reports
Chain Builder.claude/agents/chain-builder.mdSonnetCombine findings into exploit chains

Model assignments are configurable in config/providers.json. Three cost profiles are available: quality, balanced (default), and economy. Set cost_profile in providers.json to switch.

Commands

CommandFileDescription
/hunt <program>.claude/commands/hunt.mdFull pipeline: scope → acquire → recon → hunt → chain → validate → report
/scope <program>.claude/commands/scope.mdIdentify mobile assets in a bug bounty program
/acquire <app>.claude/commands/acquire.mdDownload, extract, and decrypt a mobile app
/recon <app>.claude/commands/recon.mdStatic reconnaissance and attack surface mapping
/hunt-ios <app>.claude/commands/hunt-ios.mdiOS-specific vulnerability hunting
/hunt-android <app>.claude/commands/hunt-android.mdAndroid-specific vulnerability hunting
/validate.claude/commands/validate.mdApply mobile validation gates to findings
/triage.claude/commands/triage.mdRapid 2-minute go/no-go assessment
/chain.claude/commands/chain.mdBuild exploit chains from multiple findings
/report.claude/commands/report.mdGenerate submission-ready report

Skills

Skills are contextually loaded by agents and commands:

SkillFileLoaded By
Mobile Hunting.claude/skills/mobile-hunting/SKILL.md/hunt, orchestrator
iOS Analysis.claude/skills/ios-analysis/SKILL.md/hunt-ios, ios-hunter
Android Analysis.claude/skills/android-analysis/SKILL.md/hunt-android, android-hunter
Mobile Vuln Classes.claude/skills/mobile-vuln-classes/SKILL.mdhunters, validator
Binary Reversing.claude/skills/binary-reversing/SKILL.mdhunters
Mobile Recon.claude/skills/mobile-recon/SKILL.md/recon, acquisition-agent
Report Writing.claude/skills/report-writing/SKILL.md/report, report-writer
Triage Validation.claude/skills/triage-validation/SKILL.md/validate, /triage, validator
SDK Analysis.claude/skills/sdk-analysis/SKILL.mdhunters

Configuration

  1. Copy config/config.example.json → config/config.json and fill in credentials
  2. Copy config/providers.example.json → config/providers.json and configure LLM providers
  3. Install external dependencies (see DESIGN.md → External Dependencies)

Both config.json and providers.json are gitignored. Credentials belong in those files or in the environment; never pass a password, token, or API key as a command-line argument, because argv is readable by any other process on the machine and lands in shell history.

Key Directories

Runtime output (gitignored, never published)

These four directories do not exist in a fresh checkout. The tool creates them as it runs, and they fill with target-specific material: acquired binaries, decompiled code, extracted secrets, findings, and draft reports. All of it is confidential to the program being tested.

DirectoryPurpose
workspace/Acquired binaries, extraction and decompilation output, per-target hunt state
recon/Per-target reconnaissance output (scope, attack surface maps, SDK inventory)
findings/Raw, validated, and killed vulnerability findings
reports/Draft submission reports

Never commit, push, or publish anything under these four, and never quote their contents into a public document. Paths are configurable under directories in config/config.json; if you repoint them, keep the new locations out of version control too.

Repository content (committed)

DirectoryPurpose
.claude/agents/Sub-agent definitions
.claude/commands/Slash command definitions
.claude/skills/Contextually loaded skills
rules/Always-active rules, plus Semgrep rules (rules/semgrep/) and Mariana Trench config (rules/mt/)
tools/All automation scripts and tools
wordlists/Pattern files for secret detection, URL schemes, etc.
docs/Supplementary design documentation
config/Example configuration files

External Tools

Required: ipatool, jadx, apktool, Ghidra Optional: Binary Ninja (set analysis.binary_analyzer to "binja" in config), Semgrep, Mariana Trench Pre-installed (macOS/Xcode): otool, codesign, plutil, nm, lipo, strings

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.