rendidwisa/subreaper

GitHub: rendidwisa/subreaper

Stars: 2 | Forks: 0

# SubReaper — Subdomain Takeover & Vulnerability Scanner A scanner for **subdomain takeover** and **DNS vulnerability** detection. Built for bug bounty hunters and pentesters with a **precision-focused detection** design. ## Key Features - **Subdomain Takeover Detection** – Dangling CNAME, NS takeover, and unclaimed provider accounts (20+ services) - **High-Accuracy Validation** – HTTP body fingerprint matching with scenario-based scoring - **IP Intelligence** – Origin IP resolution with ASN, organization, country, city, and coordinates via MaxMind GeoLite2 (offline) or DNS fallback (online) - **WAF & SNI Bypass** – Handles Cloudflare-protected services and Vercel SNI mismatches automatically - **Concurrent Scanning** – Blazing-fast async scanning with configurable concurrency - **Professional Reporting** – Colored terminal output, verbose DNS details, and JSON export - **Precision-Focused Detection** – Multi-resolver consensus, wildcard guard, and negative signal filtering to minimize false positives ## Installation # Clone the repository git clone https://github.com/rendidwisa/subreaper.git cd subreaper # Install with pip pip install . # if error environment python3 -m venv subreaper source subreaper/bin/activate pip install . After installation, the `subreaper` command will be available system-wide. ## Basic Usage ### Scan a single subdomain subreaper -d sub.example.com ### Scan from a file containing subdomains subreaper -f subs.txt ### Save results to JSON subreaper -f subs.txt -o results.json ### Verbose mode (show all domains, including clean ones) subreaper -f subs.txt -v ### Adjust concurrency and timeout subreaper -f subs.txt -c 30 -t 15 ### Pipe from another tool (e.g., subfinder) subfinder -d target.com -silent | subreaper -f /dev/stdin ### IP Intelligence (ASN & GeoIP) SubReaper automatically resolves the origin IP of each CNAME target and, if the optional MaxMind GeoLite2 databases are present, enriches every report with: * **ASN** (Autonomous System Number) and organisation name * **Country**, **city**, and approximate **coordinates** This extra data helps verify whether the resolved IP really belongs to the claimed provider (e.g. `AS16509 Amazon` for Heroku) and makes bug bounty reports far more credible. Without the databases, SubReaper still provides ASN and country via a privacy-friendly DNS fallback, but city-level detail requires the databases. ### Obtaining the GeoLite2 Databases 1. Create a free MaxMind account at 2. After login, go to and copy your license key. 3. Run the integrated setup wizard: subreaper -S ## Full Options | Option | Short | Description | | --------------- | ----- | ---------------------------------------------------------- | | `--domain` | `-d` | Single domain/subdomain to scan | | `--file` | `-f` | File with one domain per line (use `/dev/stdin` for pipes) | | `--output` | `-o` | Save results to a JSON file | | `--concurrency` | `-c` | Number of parallel workers (default: 20) | | `--timeout` | `-t` | DNS & HTTP timeout in seconds (default: 10) | | `--nameservers` | `-n` | Comma-separated custom DNS servers | | `--verbose` | `-v` | Show every domain status (including CLEAN/NXDOMAIN) | | `--setup-geoip` | `-S` | Download MaxMind GeoLite2 databases for enhanced IP | ## Requirements Python 3.9 or newer Dependencies (auto-installed via `pip install .`): * aiohttp * dnspython * colorama * geoip ## License MIT — free to use for pentesting, security research, and bug bounty.