License
Banshee is provided for personal, educational, and authorized security testing. You may install and use it for lawful assessments where you have explicit permission.
Operational guide, deployment notes, and feature deep dives
This page explains the full lifecycle of a scan: how dorks are generated, how search engines are queried, how results are filtered and enriched, and how intelligence is retained for future runs. Everything here maps directly to the CLI and config files in the Banshee repo.
AI-assisted OSINT and dorking for continuous discovery, analysis, and learning.
Run() loads config, initializes caches, and wires a Config pipeline.~/.config/banshee.oos.txt and exclusion flags to stay in-scope.gorkem@cyberpars.com.From input to intelligence: each run follows a predictable pipeline.
Domains arrive from stdin (single domain or list). Optional inputs include dork files, dictionaries, extensions, and prompts. Use --find-apex to expand a hostname into tenant apex domains before scanning.
Use manual queries, AI prompts, random mode, research mode, or SMART follow-ups. Multi-lang and date operators can expand coverage.
Google CSE and Brave Search run in parallel with adaptive pacing, key rotation, and retry logic. Results are de-duplicated immediately.
Out-of-scope patterns, exclusion rules, and dedupe logic reduce noise. Tech detection and intelligence layers enrich high-value URLs.
Optional AI analysis: document review, response analysis, inline JS inspection, and vulnerability reasoning. Findings can be scored.
Learn mode writes intelligence JSON and success patterns. Wayback cache and AI cache shorten future runs.
Practical scenarios where Banshee delivers high-signal results.
Find admin panels, dashboards, and exposed controls across a target's web surface.
echo example.com | banshee -q "inurl:admin intitle:login" -a --tech-detect --smart
Identify public PDFs and office documents, then analyze for secrets or PII.
echo example.com | banshee -e pdf,docx,xlsx --analyze-docs --filter-docs --learn
Find exposed APIs, test endpoints, and config leaks with response analysis.
--dedupe to avoid repeated analysis.inurl:api or filetype:json.echo example.com | banshee -q "inurl:api intext:token" --dedupe --analyze-responses
Enumerate subdomains and build an asset inventory.
.gov).echo example.com | banshee -s --deep --learn
Resolve Microsoft tenant domains and pivot into apex targets tied to a single hostname.
echo login.example.com | banshee --find-apex -ai "find admin portals" --smart
Update the CVE database and generate specialized dorks per CVE.
--cve-year and --severity.--nvd-api-key to speed up CVE updates.banshee --update-cve-db --cve-year 2025 --severity critical --ai-dork-generation
Hunt for exposed cloud storage buckets and asset endpoints tied to your target.
echo example.com | banshee -random cloud -quantity 15 -v
Use AI to research target context and generate higher-signal dorks.
--multi-lang for international targets.echo example.com | banshee --research --research-depth 3 --multi-lang --learn
Mine Wayback history for hidden paths, old assets, and forgotten endpoints.
--wmc.--smart to follow discovered patterns.echo example.com | banshee --foresee --wmc 200,301,302 --smart
Run repeated scans with diffing, filtering, and optional analysis per cycle.
--monitor-time to set the cycle interval (minutes).--filter-mon to avoid repeating URLs across cycles.cat domains.txt | banshee --monitor "exposed credentials" --monitor-time 60 --filter-mon --analyze-mon
Scan paste sites for exposed credentials and sensitive strings.
echo example.com | banshee --check-leaks --keywords "company api key"
Practical guidance for high-signal, low-noise runs.
echo example.com | banshee -q "inurl:admin" --pages 5 --adaptive
echo example.com | banshee -ai "admin panels, dashboards, internal tools" --smart --learn
~/.config/banshee/oos.txt (wildcards supported).-x or --exclusions for quick skip lists or files.--include-dates when you only want recent results.-engine google or -engine brave when keys are scarce.--workers and control pacing with --delay.delay=0 when using --adaptive so the scheduler can adjust.--dedupe before response analysis to avoid repeated AI calls.--filter-docs to keep only sensitive documents after analysis.~/.config/banshee/.ai_cache.json (24 hour TTL).~/.config/banshee/.ignore.file.--ignore-file or bypass with --flush.--quantity to bound the number of generated dorks.--monitor builds its own dorks, so do not combine with -q, -ai, or -random.--filter-mon dedupes across cycles; --analyze-mon enables per-cycle analysis.--monitor is not compatible with --dedupe (use --filter-mon instead).cat domains.txt | banshee --monitor "api tokens" --monitor-time 45 --filter-mon --analyze-mon
--analyze-responses requires --dedupe.--inline-code-analysis cannot be combined with doc or response analysis.--analyze-response-only expects URLs from stdin; --analyze-code-only expects code.What you need for full functionality and optional AI acceleration.
gemini-cli installed (npm package: @google/generative-ai-cli).--model.Step-by-step instructions for every required service.
~/.config/banshee/keys.txt. Do not add comments.-engine google and -v for verbose output.AIzaSyExampleKeyOne
AIzaSyExampleKeyTwo
~/.config/banshee/brave-keys.txt. No comments.-engine brave and -v for verbose output.BRAVE_TOKEN_ONE
BRAVE_TOKEN_TWO
Brave free tier is limited to one page per query. Banshee auto limits accordingly.
https://nvd.nist.gov/developers/request-an-api-key~/.config/banshee/nvd-api-key.txt or pass --nvd-api-key.--update-cve-db (optionally --cve-year and --severity).YOUR_NVD_API_KEY
Without a key, NVD rate limits will slow CVE updates significantly.
npm install -g @google/generative-ai-cligemini-cli auth (or add an API key file).~/.config/banshee/gemini-api-key.txt.# are ignored; the first valid key is used.# one key per line, comments allowed
AIzaSyExampleKeyOne
AIzaSyExampleKeyTwo
Banshee passes the key as GOOGLE_AI_API_KEY when invoking gemini-cli. Use --model to override the default model.
Ready-to-run commands that cover common workflows.
Target from stdin + custom query.
echo example.com | banshee -q "inurl:admin" -a --tech-detect
Generate dorks with AI and run them immediately.
echo example.com | banshee -ai "sensitive dashboards and exposed APIs" --smart --suggestions
Generate focused dorks without writing a prompt.
echo example.com | banshee -random sqli --quantity 12 --learn
Continuous scanning with analysis.
cat domains.txt | banshee --monitor "sensitive pdf" --monitor-time 60 --filter-mon --analyze-mon
Analyze docs and keep only sensitive hits.
echo example.com | banshee -e pdf,docx --analyze-docs --filter-docs
Analyze raw responses from stdin.
echo https://example.com/api | banshee --analyze-response-only
Command + output pairs to make the flags feel concrete.
Use --analyze-response-only when you already have a URL.
echo https://gateway.example.nz:9443/portal/login | banshee --analyze-response-only -v
[stdin] Processing single domain: https://gateway.example.nz:9443/portal/login
[RESPONSE-ANALYSIS] Analyzing batch 1/1 (1 URLs)
https://gateway.example.nz:9443/portal/login | [RA] - AWS credentials exposed; Slack webhook exposed | Sensitive: AWS_KEY:AKIA...; AWS_SECRET:3x4mple...; SLACK:https://hooks.slack.com/services/T00/EXAMPLE/ABC123
Combine --smart and --learn for adaptive follow ups.
echo acme.example | banshee --smart --learn -v
[SMART] Analyzing 12 successful URLs from past scans...
[SMART] Generated focused dorks from successful URL patterns
[LEARN] Loaded intelligence: 5 previous scans, 18 successful dorks
Schedule repeated scans with --monitor and --filter-mon.
cat domains.txt | banshee --monitor "exposed invoices" --monitor-time 30 --filter-mon
[MONITOR] Starting monitor mode (interval 30 minutes)
[MONITOR] Cycle 1/inf: running 3 targets
[MONITOR] New URLs this cycle: 27 (filtered 198)
Pair --analyze-docs with --filter-docs to keep only hits.
echo example.com | banshee -e pdf,docx --analyze-docs --filter-docs
Document contains sensitive information: https://docs.example.com/finance/q2/board-report.pdf | Found bank account numbers and internal cost centers
Launch the TUI for guided workflows and quick commands.
banshee --interactive
Good evening, operator | IP: 203.0.113.24 | Time: 19:44:12 | Session: SID-1234 | Status: READY
Quick commands: /execute, /monitor, /exit
Use -o to append only new unique URLs to a file.
echo example.com | banshee -q "inurl:admin" -a -o results.txt
https://example.com/admin/login
https://portal.example.com/admin/users
All major features with the exact flags to enable them.
Generates follow-up dorks based on discovered assets and patterns.
Saves successful patterns and boosts future scans.
Pre-scan research to generate high-signal dorks.
Detects target language and generates localized dorks.
Uses Wayback intelligence to map architecture and find hidden patterns.
Detects stack, maps CVEs, and can generate CVE-specific dorks.
Downloads documents, extracts text, and uses AI to identify sensitive data.
Captures HTTP responses and analyzes them with AI.
Extracts inline JS from HTML and checks for risky patterns.
Schedules repeated dorking cycles and diffed results.
Scans paste sites for leaked credentials and secrets.
Adaptive throttling, scoring, and budget optimization for quotas.
Deep analysis options for documents, responses, and inline code.
sensitive-pdfs.txt.--filter-docs to remove non-sensitive docs from output.--dedupe to avoid duplicates.--analyze-response-only for direct URLs from stdin.-ai, -random, --smart, or --learn).--analyze-docs or --analyze-response-only.--analyze-code-only to bypass dorking.cat script.js | banshee --analyze-code-only --model gemini-2.0-flash-exp
Continuous recon with dedupe, diffing, and AI analysis.
Provide an intent string and Banshee will continuously run dorks on a schedule.
--monitor "intent" starts the scheduler.--monitor-time sets cycle interval (minutes).--filter-mon dedupes URLs across cycles.--analyze-mon turns on doc + response analysis per cycle.cat domains.txt | banshee --monitor "sensitive pdf" --monitor-time 45
cat domains.txt | banshee --monitor "api tokens" --filter-mon --analyze-mon
Monitor mode is compatible with AI, SMART, LEARN, research, and multi-lang flows.
Persistent intelligence increases accuracy with every run.
--view-intel to inspect intelligence per target.--export-intel to save JSON snapshots.--no-wayback-cache or --clear-wayback-cache.--wmc.What Banshee writes to disk, why it matters, and how each file is used.
Persistent signals used by SMART, learn mode, and Wayback.
Performance boosters that reduce repeated requests and AI calls.
--research.Settings and scope controls to keep runs precise.
Key stores for search engines and AI tooling.
Defaults live in ~/.config/banshee/.config. CLI flags override config values.
Only key lines shown here. The file is fully commented by default.
engine=both
verbose=false
recursive=false
insecure=false
pages=10
delay=0
workers=5
quantity=10
monitor-time=60
oos-file=~/.config/banshee/oos.txt
model=
simplify=false
multi-lang-multiplier=25
research=false
research-depth=1
learn=false
smart=false
smart-timeout=150
suggestions=false
no-followup=false
max-followup=5
correlation=false
max-correlation=10
waf-bypass=false
save=false
include-dates=false
tech-detect=false
adaptive=true
deep=false
scoring=false
budget=false
flush=false
Where Banshee writes intelligence, analysis, and history.
-o, unique URLs are printed to stdout (sorted).-o, Banshee appends only new unique URLs (anew style).-v to log preloaded URLs.--no-colors produces clean output for piping into other tools.--export-intel writes a JSON snapshot; --view-intel prints to stdout.sensitive-pdfs.txt.successful.txt patterns to generate focused dorks.See Internal Files for full paths and formats.
~/.config/banshee/.config.Filter by keyword to find a flag quickly.
Answers to common operational questions.
Check API keys, ensure targets are provided via stdin, and verify out-of-scope filters are not too strict. Use -v to inspect query behavior.
No. Use one engine at a time with -engine. If both keys are available, Banshee will use both.
Response analysis is expensive. Deduplication prevents repeated analysis of similar endpoints and reduces AI token usage.
Increase --workers, reduce --delay (or keep delay=0 with --adaptive), and use --save to stop low-yield pagination.
Everything lives under ~/.config/banshee. See Internal Files for the full list; caches can be deleted to force a refresh.
Add one URL per line (start with http), optionally with notes after the URL. Banshee ignores lines starting with # and uses the file for SMART pattern learning. Clear the file or skip SMART mode if you do not want it applied.
Provide a TLD via stdin (for example echo .gov | banshee --tech-detect). Banshee will discover domains and run tech detection.
Read this carefully before using Banshee. By using the tool, you agree to these terms.
Banshee is provided for personal, educational, and authorized security testing. You may install and use it for lawful assessments where you have explicit permission.
You must not use Banshee to target systems without authorization, violate laws, or bypass access controls. Automated scanning must respect rate limits and program scope rules.
You are responsible for securing output data, API keys, and any intelligence gathered. Do not store sensitive findings in public or shared locations.
Banshee is provided "as is" without warranties of any kind. Results may be incomplete, noisy, or inaccurate.
The authors and organization are not liable for any direct or indirect damages arising from use or misuse of this tool.
Violation of these terms immediately terminates your license to use Banshee. Continued use after termination is prohibited.
This tool is intended for educational purposes and authorized red teaming only. If you do not agree to these terms, do not use Banshee.