🎯 bounthunt — Bug Bounty Recon & Orchestration
Scope-aware recon orchestration for bug bounty programs.
🚀 Demo
$ bounthunt monitor scope.yaml
🔄 Starting monitoring loop...
[INFO] Checking scope.yaml...
[INFO] Scan completed. 12 new hosts discovered.
[INFO] 2 new endpoints found on example.com
[INFO] 1 new vulnerability found via nuclei
[SUCCESS] Sending notification to Telegram...
$ bounthunt report --format html
📊 Generating diff report...
✅ Report saved to reports/diff_2026_07_12.html
❓ Why bounthunt?
| Question | Manual approach | With bounthunt |
|---|---|---|
| What changed since last week? | diff two terminal buffers |
bounthunt monitor |
| Did I scan out of scope? | "Hope you checked" | Scope guard blocks it |
| Where is my scan data? | Scattered text files | SQLite with full history |
| Can I share findings? | Paste terminal output | Professional HTML/MD reports |
✨ Features
- Scope Guard — YAML allow/deny list prevents accidental out-of-scope scanning
- Diff Monitoring — Tracks new hosts, ports, findings, endpoints across scan runs
- SQLite Persistence — Every scan stored with timestamps, queryable and auditable
- Professional Reports — HTML/Markdown via Jinja2 with diff sections
- Smart Notifications — Telegram and Discord webhook alerts on changes
- Dockerized Workflow — Multi-stage Docker build,
docker compose up -dfor 24/7 scans
🛠️ Tech Stack
- Language: Python 3.11+
- CLI: Typer
- Terminal output: Rich
- HTTP client: HTTPX
- DB & Storage: SQLite
- Templates: Jinja2
- Config: PyYAML
- Orchestration: subfinder · dnsx · httpx · naabu · nuclei · katana
- Reports: HTML/Markdown via Jinja2 with diff sections
- Notifications: Telegram / Discord webhooks
- Deployment: Docker
🏗️ Architecture
graph TD
S[Scope YAML] --> G{Scope Guard}
G -->|allow| SF[subfinder]
SF --> DX[dnsx]
DX --> HX[httpx]
HX --> NB[naabu]
NB --> NC[nuclei]
NC --> KT[katana]
KT --> SC[secrets]
SC --> DB[(SQLite)]
DB --> DIFF[Diff Engine]
DIFF --> RPT[Report]
DIFF --> NOT[Notifications]
NOT --> TG[Telegram]
NOT --> DC[Discord]
G -->|deny| X[❌ Blocked]
⚡ Quick Start
Prerequisites
- Python 3.11+
- Docker (recommended) or Go tools installed locally
Using Docker (Recommended)
docker compose build
docker compose run --rm bounthunt scan /data/scope.yaml --all
docker compose up -d
Using Source
git clone https://github.com/bess1lie/bounthunt.git
cd bounthunt
pip install .
bounthunt init scope.yaml
bounthunt scan scope.yaml --all
🗺️ Roadmap
| Feature | Status |
|---|---|
| Core Recon Pipeline | ✅ |
| Scope Guard & Diff Engine | ✅ |
| SQLite Persistence | ✅ |
| Docker Deployment | ✅ |
| Real-time Web Dashboard | 🚧 In Progress |
| Custom Notification Templates | 🔮 Planned |
🤝 Contributing
Contributions welcome! See CONTRIBUTING.md.
📄 License
MIT — see LICENSE.
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
bounthunt-1.1.0.tar.gz
(139.3 kB
view details)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
bounthunt-1.1.0-py3-none-any.whl
(35.3 kB
view details)
File details
Details for the file bounthunt-1.1.0.tar.gz.
File metadata
- Download URL: bounthunt-1.1.0.tar.gz
- Upload date:
- Size: 139.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.14.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c19ba8aef89d32545f9c02e296d8507b572717d703690a28c93a7461b1b63bef
|
|
| MD5 |
b6d0ba926670a019acfea4e807c9ec9e
|
|
| BLAKE2b-256 |
a5d26d0d19e8c5441b538213a03c348a510179688240353be92d10eb87d21081
|
File details
Details for the file bounthunt-1.1.0-py3-none-any.whl.
File metadata
- Download URL: bounthunt-1.1.0-py3-none-any.whl
- Upload date:
- Size: 35.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.14.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
bc50223b767b346ed3fbd5494779e3f55bbdf72335c09e0d25c0b5aa1c8e422a
|
|
| MD5 |
f0c454b5d4c723ce55ea4475bb1d9628
|
|
| BLAKE2b-256 |
d4374466ffbc16797fa8f6678ab000dc78b80e98f91538399e6b46827af84841
|