bugbounty-agent

module
v0.0.0-...-55a8f0c Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 9, 2026 License: MIT

README

HawkEye

Recon → Scan → AI Validation → Report
One command. Full attack surface. Zero noise.


What is HawkEye?

HawkEye is a full-pipeline bug bounty automation agent written in Go.
It chains recon tools, vulnerability scanners, and an AI validator into a single workflow —
producing a clean, analyst-grade report with confirmed findings only.

./hawkeye -d hackerone-target.com

That's it. HawkEye handles the rest.


Pipeline

  ┌──────────────────────────────────────────────────────────────────┐
  │                         TARGET DOMAIN                            │
  └─────────────────────────────┬────────────────────────────────────┘
                                │
                                ▼
  ┌─────────────────────────────────────────────────────────────────┐
  │  PHASE 1 — RECON                                                │
  │                                                                 │
  │  subfinder · assetfinder · crt.sh · C99.nl · waybackurls       │
  │  katana                                                         │
  │                                                                 │
  │  → subdomains · live URLs · JS files · parameters              │
  └─────────────────────────────┬───────────────────────────────────┘
                                │
                                ▼
  ┌─────────────────────────────────────────────────────────────────┐
  │  PHASE 2 — SCANNING (parallel)                                  │
  │                                                                 │
  │  httpx         → live host detection + status codes            │
  │  nuclei        → CVEs · misconfigs · exposures · takeovers     │
  │  CORS engine   → origin reflection · null · subdomain spoof    │
  │  ffuf          → hidden paths · admin panels · vhost fuzzing   │
  │  dalfox        → reflected & DOM XSS with PoC                  │
  │  arjun         → undocumented GET/POST parameters              │
  │  nmap          → open ports                                     │
  │  SQLi scanner  → injection via parameter analysis              │
  └─────────────────────────────┬───────────────────────────────────┘
                                │
                                ▼
  ┌─────────────────────────────────────────────────────────────────┐
  │  PHASE 2.5 — JS ANALYSIS                                        │
  │                                                                 │
  │  Regex engine  → API keys · secrets · endpoints · S3 buckets   │
  │  AI (LLM)      → deep analysis of app bundles (12KB/file)      │
  │                                                                 │
  │  Detects: AWS/GitHub/Stripe/Firebase keys · JWT tokens         │
  │           hardcoded passwords · internal API routes            │
  │           DOM XSS sinks · postMessage issues                   │
  └─────────────────────────────┬───────────────────────────────────┘
                                │
                                ▼
  ┌─────────────────────────────────────────────────────────────────┐
  │  PHASE 3 — AI VALIDATION                                        │
  │                                                                 │
  │  Every finding is reviewed by the AI:                          │
  │  · Confirms real vs false positive                             │
  │  · Assigns CVSS-informed severity                              │
  │  · Generates PoC for each confirmed finding                    │
  │  · Writes impact assessment + remediation                      │
  └─────────────────────────────┬───────────────────────────────────┘
                                │
                                ▼
  ┌─────────────────────────────────────────────────────────────────┐
  │  PHASE 4 — REPORT                                               │
  │                                                                 │
  │  Markdown report with:                                         │
  │  · Executive summary · Risk score · Severity breakdown         │
  │  · Confirmed findings only · Evidence + PoC per finding        │
  └─────────────────────────────────────────────────────────────────┘

Modules

Module Engine Finds
Subdomain Recon subfinder · assetfinder · crt.sh · C99 Subdomains
URL Discovery waybackurls · katana Endpoints, parameters, JS files
Live Detection httpx Live hosts, HTTP status, tech stack
Vulnerability Scan nuclei (full templates) CVEs, misconfigs, exposures, takeovers
CORS Testing Built-in Go engine Origin reflection, null origin, subdomain spoof, HTTP downgrade
Directory Fuzzing ffuf Hidden paths, admin panels, sensitive files
Vhost Discovery ffuf (Host header) Hidden virtual hosts
XSS dalfox Reflected & DOM XSS with PoC
SQLi nuclei + param filter SQL injection vectors
Hidden Params arjun Undocumented GET/POST parameters
Port Scan nmap Open ports
JS Analysis Regex + LLM API keys, secrets, endpoints, S3 buckets, tokens
AI Validation DeepSeek / Claude / GPT-4 False positive filtering + PoC generation

Quick Start

# 1. Clone
git clone https://github.com/Btr4k/bugbounty-agent.git
cd bugbounty-agent

# 2. Install all dependencies
chmod +x install.sh && ./install.sh

# 3. Set your AI key
cp .env.example .env
echo "DEEPSEEK_API_KEY=your-key-here" >> .env

# 4. Build
go build -o hawkeye ./cmd/main.go

# 5. Scan
./hawkeye -d target.com

Usage

./hawkeye [flags]

Required (either flag works):
  -d, --domain      string   Target domain (e.g. example.com)
  -t, --target      string   Target domain (alias for -d/--domain)

Options:
  -v, --verbose              Show detailed scan progress
  -c, --config     string    Config file path (default: config.yaml)
  -o, --output     string    Report output directory (default: ./reports)
      --skip-recon           Skip recon phase (subdomains already known)
      --skip-scan            Skip vulnerability scanning phase
      --js-only              Run JS analysis only (skips vulnerability scanning)
      --ai-provider string   Override AI provider: claude | deepseek | openai | openrouter
      --ai-model    string   Override AI model name
  -h, --help                 Show help

Examples

# Standard full scan
./hawkeye -d target.com

# Full scan with live progress output
./hawkeye -d target.com --verbose

# JS secrets and endpoints only (fast, no scanning)
./hawkeye -d target.com --js-only

# Skip subdomain enumeration
./hawkeye -d target.com --skip-recon

# Skip scanning, run AI analysis on recon output only
./hawkeye -d target.com --skip-scan

# Use a specific AI provider for this run
./hawkeye -d target.com --ai-provider claude --ai-model claude-sonnet-4-20250514

# Use short flags
./hawkeye -t target.com -v

Installation

System Requirements

  • OS: Linux (Ubuntu 20.04+, Debian 11+, Kali, Parrot)
  • Go: 1.24 or later
  • RAM: 512MB minimum, 2GB recommended for large targets
chmod +x install.sh && ./install.sh

The installer handles Go tools, system packages, and nuclei templates.

Manual

# Core Go tools
go install github.com/projectdiscovery/subfinder/v2/cmd/subfinder@latest
go install github.com/projectdiscovery/httpx/cmd/httpx@latest
go install github.com/projectdiscovery/nuclei/v3/cmd/nuclei@latest
go install github.com/projectdiscovery/katana/cmd/katana@latest
go install github.com/tomnomnom/assetfinder@latest
go install github.com/tomnomnom/waybackurls@latest
go install github.com/ffuf/ffuf/v2@latest
go install github.com/hahwul/dalfox/v2@latest

# System tools
sudo apt install -y nmap

# Optional — hidden parameter discovery
pip3 install arjun

# Wordlist for ffuf (strongly recommended)
sudo apt install seclists

# Nuclei templates
nuclei -update-templates

# Build HawkEye
go build -o hawkeye ./cmd/main.go

Configuration

AI Provider

Edit config.yaml or set env vars in .env:

ai:
  provider: "deepseek"            # deepseek | claude | openai | openrouter
  api_key: "${DEEPSEEK_API_KEY}"  # loaded from .env automatically
  model: "deepseek-chat"
  max_tokens: 2000

Supported AI Providers

Provider Model Recommended For
DeepSeek deepseek-chat Default — best cost/quality ratio
Claude claude-sonnet-4-20250514 Highest accuracy
OpenAI gpt-4o-mini Fast and cheap
OpenRouter any model Multi-model access

C99.nl API (Subdomain Intelligence)

C99.nl significantly improves subdomain discovery. Without it, HawkEye still works but misses subdomains that only C99's database covers.

Get a key: Register at c99.nl → Dashboard → API Key

Add it to .env:

C99_API_KEY=your-api-key-here

It is automatically picked up via config.yaml:

c99:
  api_key: "${C99_API_KEY}"
  enabled: true

To disable C99 without removing the key:

c99:
  enabled: false

Wordlist (ffuf)

For maximum path discovery coverage, install SecLists:

sudo apt install seclists
# Auto-detected at: /usr/share/seclists/Discovery/Web-Content/common.txt

Or specify a custom path in config.yaml:

scanning:
  tools:
    ffuf:
      wordlist_path: "/path/to/your/wordlist.txt"

Without SecLists, HawkEye falls back to a built-in list of ~130 high-value paths
(.env, .git, admin panels, Spring actuators, swagger, etc.) — functional but limited coverage.

Blind XSS

scanning:
  tools:
    dalfox:
      blind_url: "https://your-burp-collaborator.com"

Output

Reports are saved to ./reports/ in Markdown:

reports/
└── bug_bounty_report_2026-04-04_16-41-25.md

Report Structure

Executive Summary
  └── Risk score · Finding counts · Subdomains discovered

Critical Findings
  └── Title · URL · Evidence · AI Analysis · PoC

High / Medium / Low Findings
  └── Same structure

Subdomain List
  └── All discovered subdomains

CORS Severity Reference

HawkEye's built-in CORS engine tests multiple attack vectors and assigns severity
based on actual exploitability — not just header presence:

Pattern Severity Exploitable?
Origin reflected + credentials: true Critical Yes — any attacker site can steal authenticated data
Null origin + credentials: true High Yes — exploitable via sandboxed iframe
Subdomain spoof + credentials: true High Yes — attacker registers a matching domain
HTTP origin on HTTPS + credentials: true High Yes — requires network MITM position
Origin reflected, no credentials High Yes — public/unauthenticated data readable cross-origin
Subdomain spoof, no credentials Medium Partial — weak origin validation, no credentials
* + credentials: true Medium No — browsers reject this combination per CORS spec

HawkEye is for authorized security testing only.
Only use this tool against systems you own or have explicit written permission to test.
Unauthorized scanning is illegal in most jurisdictions.
See SECURITY.md for the full responsible disclosure policy.


Built by @A_cyb3r  ·  MIT License  ·  v2.1

Directories

Path Synopsis
internal

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL