{"adoption": {"forks": 195, "observed_at": "2026-08-28T04:06:27.164571+00:00", "stars": 2216}, "canonical_url": "https://ross.abutalabs.com/products/dnsreaper", "card": {"archived": false, "artifact_type": "cli-tool", "description": "dnsReaper - subdomain takeover tool for attackers, bug bounty hunters and the blue team!", "domain": ["security", "penetration-testing", "networking", "developer-tools"], "enriched": true, "function": ["security", "vulnerability-scanning", "networking", "cli"], "health_score": 62, "homepage": null, "language": "Python", "license": "AGPL-3.0", "license_family": "copyleft", "maturity": "active", "member_repos": ["punk-security/dnsReaper"], "name": "punk-security/dnsReaper", "platform": ["cli", "python", "cross-platform"], "pushed_at": "2025-10-06T10:58:46+00:00", "repo": "punk-security/dnsReaper", "stars": 2216, "tags": ["subdomain-takeover", "dns", "bug-bounty", "attack-surface", "devsecops", "docker"], "topics": [], "urls": [], "use_cases": ["scan my domains for subdomain takeover vulnerabilities", "find dangling cname records in my dns zone", "check aws route53 records for takeover risk as a defender", "run subdomain takeover checks in a ci pipeline", "find exploitable subdomains for bug bounty", "audit cloudflare and azure dns records for misconfigurations"], "what_it_is": "DNS Reaper is a Python CLI tool that scans DNS records for subdomain takeover vulnerabilities using over 50 signatures, at roughly 50 subdomains per second. It supports fetching records directly from providers like AWS Route53, Cloudflare, and Azure, and can run in CI pipelines to block takeovers before deployment.", "when_to_avoid": ["you need general DNS enumeration or subdomain discovery rather than takeover detection", "you need a GUI-only workflow (the web version is limited to ~100 subdomains)", "your DNS provider is not supported and you cannot write a custom provider"], "when_to_choose": ["you need fast, accurate subdomain takeover detection with many signatures", "you want to scan your DNS estate directly via provider credentials", "you need non-zero exit codes for DevSecOps pipeline gating"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/dnsreaper", "repo": "punk-security/dnsReaper", "role": "main", "score": 58}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:06:27.164571+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T02:45:57.558906+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "30f4c51ef017c9886273b51b55c5315ca85c415f7eb1c4e08cc306a64ed33cfd", "fetched_at": "2026-08-28T04:06:27.164571+00:00", "kind": "readme", "missing": false, "url": "https://github.com/punk-security/dnsReaper"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:06:27.164571+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T02:45:57.558906+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "30f4c51ef017c9886273b51b55c5315ca85c415f7eb1c4e08cc306a64ed33cfd", "fetched_at": "2026-08-28T04:06:27.164571+00:00", "kind": "readme", "missing": false, "url": "https://github.com/punk-security/dnsReaper"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T02:45:57.558906+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "30f4c51ef017c9886273b51b55c5315ca85c415f7eb1c4e08cc306a64ed33cfd", "fetched_at": "2026-08-28T04:06:27.164571+00:00", "kind": "readme", "missing": false, "url": "https://github.com/punk-security/dnsReaper"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:06:27.164571+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:06:27.164571+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:06:27.164571+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T02:45:57.558906+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "30f4c51ef017c9886273b51b55c5315ca85c415f7eb1c4e08cc306a64ed33cfd", "fetched_at": "2026-08-28T04:06:27.164571+00:00", "kind": "readme", "missing": false, "url": "https://github.com/punk-security/dnsReaper"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:06:27.164571+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:06:27.164571+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T02:45:57.558906+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "30f4c51ef017c9886273b51b55c5315ca85c415f7eb1c4e08cc306a64ed33cfd", "fetched_at": "2026-08-28T04:06:27.164571+00:00", "kind": "readme", "missing": false, "url": "https://github.com/punk-security/dnsReaper"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:06:27.164571+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:06:27.164571+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:06:27.164571+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T02:45:57.558906+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "30f4c51ef017c9886273b51b55c5315ca85c415f7eb1c4e08cc306a64ed33cfd", "fetched_at": "2026-08-28T04:06:27.164571+00:00", "kind": "readme", "missing": false, "url": "https://github.com/punk-security/dnsReaper"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:06:27.164571+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:06:27.164571+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T02:45:57.558906+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "30f4c51ef017c9886273b51b55c5315ca85c415f7eb1c4e08cc306a64ed33cfd", "fetched_at": "2026-08-28T04:06:27.164571+00:00", "kind": "readme", "missing": false, "url": "https://github.com/punk-security/dnsReaper"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T02:45:57.558906+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "30f4c51ef017c9886273b51b55c5315ca85c415f7eb1c4e08cc306a64ed33cfd", "fetched_at": "2026-08-28T04:06:27.164571+00:00", "kind": "readme", "missing": false, "url": "https://github.com/punk-security/dnsReaper"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T02:45:57.558906+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "30f4c51ef017c9886273b51b55c5315ca85c415f7eb1c4e08cc306a64ed33cfd", "fetched_at": "2026-08-28T04:06:27.164571+00:00", "kind": "readme", "missing": false, "url": "https://github.com/punk-security/dnsReaper"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T02:45:57.558906+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "30f4c51ef017c9886273b51b55c5315ca85c415f7eb1c4e08cc306a64ed33cfd", "fetched_at": "2026-08-28T04:06:27.164571+00:00", "kind": "readme", "missing": false, "url": "https://github.com/punk-security/dnsReaper"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 45, "longevity": 100, "rhythm": 51}, "computed_at": "2026-09-02T17:46:02.011165+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 1506, "days_push": 331, "days_rel": 331, "gap_med": 17, "n_releases_24m": 4}, "score": 58, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}