Cyber Intelligence tool for domain reconnaissance and vulnerability assessment
Project description
๐ฆ DomainRaptor
DomainRaptor is a comprehensive Cyber Intelligence & Attack Surface Management (ASM) tool designed for red team operations, security assessments, and continuous monitoring. It aggregates data from multiple sources to provide deep visibility into an organization's external attack surface.
๐ฏ What is DomainRaptor?
DomainRaptor is built for security professionals who need to:
- Discover all external assets (subdomains, IPs, certificates, services)
- Assess security configurations and vulnerabilities
- Enrich findings with third-party threat intelligence
- Monitor changes in the attack surface over time
- Report findings in multiple formats for different audiences
๐ Key Features
๐ Multi-Source Discovery
| Source | Type | API key | Free tier |
|---|---|---|---|
| crt.sh | Certificate Transparency | โ | โ Unlimited |
| CertSpotter | Certificate Transparency | โ | โ Free |
| HackerTarget | Subdomain enumeration | โ | โ ~100/day |
| Wayback Machine | Historical subdomains / URLs | โ | โ Free |
| WHOIS | Registration metadata | โ | โ Free |
| ASN lookup | Network ownership | โ | โ Free |
| NVD | CVE database correlation | โ ๏ธ optional | โ Free |
| Shodan | Port / service / CVE data | โ | โ ๏ธ 100/month |
| ZoomEye | Subdomain discovery | โ | โ Subdomains free |
| Censys | IP lookup (Platform API v3) | โ PAT | โ Lookup free |
๐ก๏ธ Security Assessment
- SSL/TLS certificate analysis and validation (sslyze)
- DNS security checks (DNSSEC, SPF, DMARC, DKIM)
- HTTP security header compliance
- CVE correlation with CVSS scoring (NVD enrichment)
- Outdated-dependency / misconfiguration detection
- Weighted risk scoring across vulnerabilities, configuration, exposure and reputation
๐ฌ Third-Party Enrichment
- VirusTotal โ domain / URL reputation and malware analysis
- URLScan โ submitted-scan metadata for URLs
- SecurityTrails โ historical DNS and WHOIS
๐ Reporting
- HTML โ interactive dashboard with risk breakdown cards
- JSON / YAML โ machine-readable for automation
- Markdown โ documentation-friendly
- PDF โ executive summaries
๐๏ธ Continuous Monitoring
- Track changes between scans (
watch run) - Pause / resume / list watched targets
- Historical comparison with diff reports
๐ฅ๏ธ Terminal UI
- Full-featured Textual TUI launchable with
domainraptor tui - Interactive screens for discovery, assessment, comparison and scan history
๐ฆ Installation
From PyPI (recommended)
pip install domainraptor
# or, faster
uv pip install domainraptor
First PyPI release is
v0.6.x. Ifpip installreturns 404, the publish workflow has not yet completed โ fall back to the Git install below.
From Git (latest development build)
pip install git+https://github.com/ErnestoCubo/DomainRaptor.git@main
From source (for contributors)
git clone https://github.com/ErnestoCubo/DomainRaptor.git
cd DomainRaptor
uv sync --extra dev # or: pip install -e ".[dev]"
๐ง Quick Start
1. Configure API Keys (optional but recommended)
# View available integrations
domainraptor config list
# Set API keys (stored in ~/.domainraptor/.env)
domainraptor config set SHODAN_API_KEY your-shodan-key
domainraptor config set ZOOMEYE_API_KEY your-zoomeye-key
domainraptor config set CENSYS_API_TOKEN censys_xxx_yyy
domainraptor config set VIRUSTOTAL_API_KEY your-vt-key
# Test configuration
domainraptor config test
2. Run Your First Scan
# Full reconnaissance scan
domainraptor recon fullscan example.com
# Quick subdomain discovery
domainraptor discover subdomains example.com
# Security assessment
domainraptor assess config example.com
3. Generate Reports
# HTML dashboard
domainraptor report generate example.com -f html -o report.html
# JSON for automation
domainraptor report generate example.com -f json -o data.json
4. Launch the TUI
domainraptor tui
๐ Command Reference
DomainRaptor groups its CLI into the following top-level commands:
| Group | Purpose |
|---|---|
discover |
Subdomain / certificate / host enumeration from individual sources |
recon |
High-level multi-source reconnaissance workflows |
assess |
Security assessments (SSL, DNS, headers, vulns, config) |
enrich |
Third-party intelligence enrichment |
watch |
Continuous monitoring of targets |
compare |
Diff scans / targets / history |
report |
Generate HTML / JSON / YAML / Markdown / PDF reports |
db |
Inspect, export and prune stored scans |
config |
Manage API keys and runtime settings |
tui |
Launch the Textual terminal UI |
Discovery
domainraptor discover subdomains example.com # multi-source enum
domainraptor discover certs example.com # crt.sh + CertSpotter
domainraptor discover shodan-host 1.2.3.4
domainraptor discover zoomeye-subdomains example.com
domainraptor discover censys-host 1.2.3.4
domainraptor discover whois example.com
Reconnaissance
domainraptor recon fullscan example.com
domainraptor recon fullscan example.com --no-shodan --no-censys
domainraptor recon fullscan example.com --max-results 50
Assessment
domainraptor assess config example.com # full posture check
domainraptor assess ssl example.com
domainraptor assess dns example.com
domainraptor assess headers https://example.com
domainraptor assess vulns example.com # CVE correlation via NVD
domainraptor assess outdated example.com
domainraptor assess exploits example.com
Enrichment
domainraptor enrich virustotal example.com
domainraptor enrich urlscan https://example.com
domainraptor enrich securitytrails example.com
Monitoring
domainraptor watch add example.com --interval 24h
domainraptor watch list
domainraptor watch run # execute due checks once
domainraptor watch pause <id>
domainraptor watch resume <id>
domainraptor watch status <id>
domainraptor watch remove <id>
Compare
domainraptor compare history example.com # diff successive scans
domainraptor compare scans <id-a> <id-b> # diff two scan ids
domainraptor compare targets example.com other.example.com
Reports
domainraptor report generate example.com -f html -o report.html
domainraptor report generate example.com -f json -o data.json
domainraptor report list example.com
Database
domainraptor db list # all stored scans
domainraptor db show <scan-id>
domainraptor db export <scan-id> -o scan.json
domainraptor db delete <scan-id>
๐๏ธ Project Structure
DomainRaptor/
โโโ src/domainraptor/
โ โโโ cli/ # Typer CLI commands
โ โ โโโ commands/ # discover, recon, assess, enrich, watch,
โ โ # compare, report, db, config
โ โโโ core/ # Configuration, models, risk scoring
โ โโโ discovery/ # crt.sh, CertSpotter, HackerTarget, Wayback,
โ โ # WHOIS, ASN, NVD, Shodan, ZoomEye, Censys
โ โโโ assessment/ # SSL, DNS, headers, orchestrator
โ โโโ enrichment/ # VirusTotal, URLScan, SecurityTrails
โ โโโ reporting/ # HTML, JSON, YAML, Markdown, PDF generators
โ โโโ storage/ # SQLite database + repositories
โ โโโ tui/ # Textual terminal UI
โ โโโ utils/ # Logging, output formatting
โโโ tests/ # Pytest suite (unit + integration)
โโโ wiki/ # Source of the GitHub Wiki
โโโ docs/ # Additional documentation
๐ API Keys & Free Tiers
| Service | Free tier | What you get |
|---|---|---|
| Shodan | 100 queries/month | Port scanning, CVE lookup, banners |
| ZoomEye | Subdomain enum free | Subdomain enumeration (host search paid) |
| Censys | Direct lookup free | IP lookup via Platform API v3 (search paid) |
| VirusTotal | 500/day | Malware analysis, URL reputation |
| SecurityTrails | 50/month | Historical DNS, WHOIS |
| URLScan | Public scans free | Submitted scan metadata |
| NVD | Unlimited (rate-limited without key) | CVE / CVSS data |
Note: core functionality (CT logs, HackerTarget, Wayback, WHOIS, ASN, DNS / SSL / header checks) works without any API keys.
๐บ๏ธ Roadmap
- Multi-source subdomain discovery
- Shodan integration with CVE enrichment
- ZoomEye international API support
- Censys Platform API v3 (PAT token)
- HTML / JSON / YAML / Markdown / PDF reports
- SQLite scan history
- Weighted risk scoring algorithm
- WHOIS lookup integration
- Textual terminal UI
- Continuous monitoring (
watch) - Active port scanning
- Nuclei template integration
- Slack / Discord notifications
- Docker container
๐ค Contributing
Contributions are welcome! Please:
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit using Conventional Commits (
git commit -m 'feat: add amazing feature') - Push the branch (
git push origin feature/amazing-feature) - Open a Pull Request against
develop
The repository uses pre-commit hooks (ruff, codespell, detect-secrets). Run uv run pre-commit install after cloning. Releases are automated via release-please and published to PyPI through OIDC trusted publishing.
๐ License
This project is open source under the MIT License.
โ ๏ธ Disclaimer
This tool is intended for legal security research and authorized penetration testing only. Users are responsible for ensuring they have proper authorization before scanning any targets. Unauthorized scanning may violate laws and service terms.
๐ Documentation: Wiki | ๐ Issues: GitHub Issues | ๐ฌ Discussions: GitHub Discussions
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
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
File details
Details for the file domainraptor-0.7.0.tar.gz.
File metadata
- Download URL: domainraptor-0.7.0.tar.gz
- Upload date:
- Size: 431.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f71518ab2bbd7cd1f1692870b6b1b1f15f6bbc915aa11c49ebbabfd71dcd0b78
|
|
| MD5 |
d51092dd63ede3106db2606786f2862e
|
|
| BLAKE2b-256 |
162a751329dd240362f602aae4dfcfd5e8dbb0390b1fc182703d2247a37622e5
|
Provenance
The following attestation bundles were made for domainraptor-0.7.0.tar.gz:
Publisher:
publish.yml on ErnestoCubo/DomainRaptor
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
domainraptor-0.7.0.tar.gz -
Subject digest:
f71518ab2bbd7cd1f1692870b6b1b1f15f6bbc915aa11c49ebbabfd71dcd0b78 - Sigstore transparency entry: 1699045535
- Sigstore integration time:
-
Permalink:
ErnestoCubo/DomainRaptor@234d9f58edf3b453bd5b605cd2a79d94027e508f -
Branch / Tag:
refs/heads/main - Owner: https://github.com/ErnestoCubo
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@234d9f58edf3b453bd5b605cd2a79d94027e508f -
Trigger Event:
workflow_dispatch
-
Statement type:
File details
Details for the file domainraptor-0.7.0-py3-none-any.whl.
File metadata
- Download URL: domainraptor-0.7.0-py3-none-any.whl
- Upload date:
- Size: 217.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d9a34458f424738fd3c479d0f5a1d65104c4f411201da004eab2cbd532833f88
|
|
| MD5 |
de2b86b1c710ef2ebfc5957b0d6a3421
|
|
| BLAKE2b-256 |
464644b6a9fd0855209e3cfe21813d2539538f3cfb2d5e6760bdc03202c55bf3
|
Provenance
The following attestation bundles were made for domainraptor-0.7.0-py3-none-any.whl:
Publisher:
publish.yml on ErnestoCubo/DomainRaptor
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
domainraptor-0.7.0-py3-none-any.whl -
Subject digest:
d9a34458f424738fd3c479d0f5a1d65104c4f411201da004eab2cbd532833f88 - Sigstore transparency entry: 1699045968
- Sigstore integration time:
-
Permalink:
ErnestoCubo/DomainRaptor@234d9f58edf3b453bd5b605cd2a79d94027e508f -
Branch / Tag:
refs/heads/main - Owner: https://github.com/ErnestoCubo
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@234d9f58edf3b453bd5b605cd2a79d94027e508f -
Trigger Event:
workflow_dispatch
-
Statement type: