Updated Jul 14, 2026

Vulnerabilities

Scan subdomains for takeover with signature matching

Subdomain takeover scanner with cloud-zone intake.

Agent

overview

What dnsreaper does

dnsReaper tests candidates for takeover: DNS that still points at a deprovisioned cloud service someone else could claim. It matches each name against a large provider signature set and labels confidence (CONFIRMED, POTENTIAL, UNLIKELY).

Pull domains from --filename, a single --domain (with single), BIND, zone transfer, or live zones via aws, azure, cloudflare, or digitalocean credentials. That covers external bounty lists and internal blue-team DNS.

Run after subdomain discovery. Restrict with --signature or --exclude-signature when noise is high. --pipeline exits non-zero on detection so a Trickest step can fail closed; --out-format picks csv or json.

source github.com/punk-security/dnsReaper

use cases

Where dnsreaper fits

Hunt subdomain takeovers across a list

Scan discovered subdomains from a file against the full signature set to find dangling records pointing at deprovisioned services.

Sweep your own cloud DNS

Fetch zones straight from Route53, Azure, Cloudflare, or DigitalOcean with credentials so the blue team audits live DNS, not a stale export.

Gate a pipeline on detection

Use the pipeline flag to exit non-zero when a takeover is found, failing a CI or workflow step on a real exposure.

Tune the signal-to-noise

Restrict to a single signature, exclude noisy ones, or toggle unlikely and probable checks to trade coverage against false positives.

reference

dnsreaper inputs and flags

33 inputs
NameTypeFlagDescription
single-domainSTRING--domainScan a single domain (with the single input set).
file-inputFILE--filenameScan a list of domains read from a file, one per line.
awsBOOLEANawsFetch zones to scan straight from AWS Route53.
signatureSTRING--signatureOnly scan with this signature.
exclude-signatureSTRING--exclude-signatureSkip a noisy signature.
out-formatSTRING--out-formatWrite findings as csv or json.
pipelineBOOLEAN--pipelineExit non-zero on detection, to gate CI.
resolverSTRING--resolverUse a custom DNS resolver, or several comma-separated.

Showing key inputs. dnsreaper exposes 33 inputs in total.

Full flag reference (33 inputs)
NameTypeFlagDescription
awsBOOLEANawsScan multiple domains fetched from AWS Route53
bindBOOLEANbindRead domains from a DNS BIND zone file, or a path to multiple
fileBOOLEANfileRead domains from a file (or folder of files), one per line
azureBOOLEANazureScan multiple domains fetched from Azure DNS services
singleBOOLEANsingleScan a single domain given on the command line
verboseBOOLEAN-vVerbose output
nocolourBOOLEAN--nocolourTurn off coloured text
pipelineBOOLEAN--pipelineExit non-zero on detection (used to fail a pipeline)
resolverSTRING--resolverCustom DNS resolver, or several comma-separated
signatureSTRING--signatureOnly scan with this signature
cloudflareBOOLEANcloudflareScan multiple domains fetched from Cloudflare
do-api-keySTRING--do-api-keyDigitalOcean API key (requires the digitalocean input)
do-domainsSTRING--do-domainsLimit the scan to these domains (comma-separated)
file-inputFILE--filenameList of domains to scan (requires the file input)
out-formatSTRING--out-formatOutput format (csv or json)
parallelismSTRING--parallelismNumber of domains to test in parallel; too high risks odd DNS results (default 30)
az-client-idSTRING--az-client-idAzure client ID (requires the azure input)
az-tenant-idSTRING--az-tenant-idAzure tenant ID (requires the azure input)
digitaloceanBOOLEANdigitaloceanScan multiple domains fetched from DigitalOcean
zonetransferBOOLEANzonetransferScan multiple domains fetched via DNS zone transfer
extra-verboseBOOLEAN-vvExtra verbose output
single-domainSTRING--domainScan this one domain (requires the single input)
bind-zone-fileFILE--bind-zone-fileBIND zone file (requires the bind input)
enable-unlikelyBOOLEAN--enable-unlikelyCheck more conditions, at a higher false-positive rate
az-client-secretSTRING--az-client-secretAzure client secret (requires the azure input)
cloudflare-tokenSTRING--cloudflare-tokenCloudflare token (requires the cloudflare input)
disable-probableBOOLEAN--disable-probableDo not check for probable conditions
aws-access-key-idSTRING--aws-access-key-idAWS access key ID (requires the aws input)
exclude-signatureSTRING--exclude-signatureDo not scan with this signature
az-subscription-idSTRING--az-subscription-idAzure subscription ID (requires the azure input)
zonetransfer-domainSTRING--zonetransfer-domainRoot domain to scan for (requires the zonetransfer input)
aws-access-key-secretSTRING--aws-access-key-secretAWS access key secret (requires the aws input)
zonetransfer-nameserverSTRING--zonetransfer-nameserverDNS server FQDN (such as ns1.example.com) or IP address (requires the zonetransfer input)

example

Run dnsreaper

dnsreaper · command
# scan a list of discovered subdomains as json and fail the run on any takeoverdnsreaper file --filename subdomains.txt --out-format json --pipeline
sample output
🚀 Testing 42 domains with 54 signatures...100%|██████████████████████████████| 42/42 [00:07<00:00,  5.94it/s][CONFIRMED] app.example.com    -> signature: aws_s3[CONFIRMED] cdn.example.com    -> signature: azure_traffic_manager[POTENTIAL] docs.example.com   -> signature: github[UNLIKELY]  mail.example.com   -> signature: fastly💥 We found 2 takeovers!!!Results written to output/ in csv and json

guidance

Choosing dnsreaper

Use after discovery when you need broad takeover signature coverage or cloud-zone ingestion. Prefer subjack or tko-subs for a lighter CNAME-focused check. Use subfinder or amass to build the subdomain list first.

subjack

Fast CNAME-based takeover check. dnsReaper adds a larger signature set and cloud-zone pulls.

tko-subs

Classic provider-list takeover scan. dnsReaper covers more services and input sources.

subzy

Lightweight takeover verifier. dnsReaper adds cloud-account intake and --pipeline gating.

faq

dnsreaper questions

For one name, enable single and pass --domain. For many, enable file and point --filename at one domain per line.

Run dnsreaper yourself

subfinder enumerates a domain subdomains, then dnsReaper scans them against takeover signatures and writes confirmed takeovers as output.

Facts on this page come from the live Trickest tool library.