
50개 이상의 시그니처를 지원하는 빠른 서브도메인 탈취 스캐너로, 클라우드 제공업체(AWS, Azure, Cloudflare) 통합 및 자동화된 보안 테스트를 위한 CI/CD 파이프라인 모드를 제공합니다.
DNS Reaper는 또 다른 서브도메인 인수 도구이지만, 정확성, 속도 및 우리가 보유한 시그니처 수에 중점을 둡니다!
초당 약 50개의 서브도메인을 스캔할 수 있으며, 각각 50개 이상의 인수 시그니처로 테스트합니다. 즉, 대부분의 조직이 10초 이내에 전체 DNS 자산을 스캔할 수 있습니다.
시작을 더 쉽게 하기 위해, DNS 영역 파일, 쉼표로 구분된 목록 또는 ProjectDiscovery에서 찾은 최대 100개의 서브도메인을 스캔하는 작고 재미있는 웹 버전을 만들었습니다.
확인하세요: dnsreaper web
물론 CLI 도구가 훨씬 더 EPIC하고 빠릅니다.

파일에 있는 도메인 목록을 제공하거나 명령줄에 단일 도메인을 입력하여 실행할 수 있습니다. 그러면 DNS Reaper가 모든 시그니처로 도메인을 스캔하여 CSV 파일을 생성합니다.
자격 증명을 사용하여 실행하면 DNS Reaper가 DNS 공급자에 연결하여 모든 레코드를 가져온 다음 테스트합니다. 현재 AWS Route53, Cloudflare 및 Azure를 지원합니다. 자체 공급자를 추가하는 방법에 대한 문서는 여기에서 확인할 수 있습니다.
Punk Security는 DevSecOps 회사이며, DNS Reaper는 현대 보안 모범 사례에 뿌리를 두고 있습니다.
프로비저닝하려는 도메인 목록을 파이프라인에 제공하여 DNS Reaper를 실행할 수 있으며, 인수가 가능하다고 감지되면 0이 아닌 종료 코드가 반환됩니다. 인수가 아예 발생하기 전에 예방할 수 있습니다!
DNS Reaper를 실행하려면 Docker 이미지를 사용하거나 Python 3.11로 실행할 수 있습니다.
결과는 출력에 반환되며, 자세한 내용은 로컬 "results.csv" 파일에 제공됩니다. JSON 출력도 옵션으로 지원합니다.
docker run punksecurity/dnsreaper --help
[!IMPORTANT] dnsReaper가 지원하는 최소 Python 버전은 3.9이지만, 3.11을 권장합니다. 수명이 종료되지 않은 안정적인 Python 버전에 대한 지원을 유지하려고 노력합니다. 수명이 종료된 Python 버전에 영향을 미치는 문제에 대해서는 지원을 제공하지 않으며 풀 리퀘스트를 수락하지 않습니다. 자세한 내용은 Python 버전 상태를 참조하세요.
로컬에서 실행할 때는 종속성 충돌을 피하기 위해 가상 환경(venv)을 사용하는 것이 좋습니다. 지침은 여기에서 확인할 수 있습니다.
pip install -r requirements.txt
python main.py --help
AWS 계정 스캔:
docker run punksecurity/dnsreaper aws --aws-access-key-id <key> --aws-access-key-secret <secret>
자세한 내용은 AWS 공급자 문서를 참조하세요.
파일에서 모든 도메인 스캔:
docker run -it --rm -v $(pwd):/etc/dnsreaper punksecurity/dnsreaper file --filename /etc/dnsreaper/<filename>
단일 도메인 스캔
docker run -it --rm punksecurity/dnsreaper single --domain <domain>
단일 도메인 스캔 및 stdout으로 출력:
stderr 출력을 리디렉션하거나 >를 사용하여 stdout 출력을 저장해야 합니다.
docker run -it --rm punksecurity/dnsreaper single --domain <domain> --out stdout --out-format=json > output
____ __ _____ _ __
/ __ \__ ______ / /__/ ___/___ _______ _______(_) /___ __
/ /_/ / / / / __ \/ //_/\__ \/ _ \/ ___/ / / / ___/ / __/ / / /
/ ____/ /_/ / / / / ,< ___/ / __/ /__/ /_/ / / / / /_/ /_/ /
/_/ \__,_/_/ /_/_/|_|/____/\___/\___/\__,_/_/ /_/\__/\__, /
PRESENTS /____/
DNS Reaper ☠️
Scan all your DNS records for subdomain takeovers!
usage:
main.py provider [options]
output:
findings output to screen and (by default) results.csv
help:
main.py --help
providers:
> aws - Scan multiple domains by fetching them from AWS Route53
> azure - Scan multiple domains by fetching them from Azure DNS services
> bind - Read domains from a dns BIND zone file, or path to multiple
> cloudflare - Scan multiple domains by fetching them from Cloudflare
> digitalocean - Scan multiple domains by fetching them from Digital Ocean
> file - Read domains from a file (or folder of files), one per line
> godaddy - Scan multiple domains by fetching them from GoDaddy
> googlecloud - Scan multiple domains by fetching them from Google Cloud. Requires GOOGLE_APPLICATION_CREDENTIALS environment variable.
> projectdiscovery - Scan multiple domains by fetching them from ProjectDiscovery
> securitytrails - Scan multiple domains by fetching them from Security Trails
> single - Scan a single domain by providing a domain on the commandline
> zonetransfer - Scan multiple domains by fetching records via DNS zone transfer
positional arguments:
{aws,azure,bind,cloudflare,digitalocean,file,godaddy,googlecloud,projectdiscovery,securitytrails,single,zonetransfer}
options:
-h, --help Show this help message and exit
--out OUT Output file (default: results) - use 'stdout' to stream out
--out-format {csv,json}
--resolver RESOLVER Provide a custom DNS resolver
--parallelism PARALLELISM
Number of domains to test in parallel - too high and you may see odd DNS results (default: 30)
--disable-probable Do not check for probable conditions
--enable-unlikely Check for more conditions, but with a high false positive rate
--signature SIGNATURE
Only scan with this signature (multiple accepted)
--exclude-signature EXCLUDE_SIGNATURE
Do not scan with this signature (multiple accepted)
--pipeline Exit Non-Zero on detection (used to fail a pipeline)
-v, --verbose -v for verbose, -vv for extra verbose
--nocolour Turns off coloured text
aws:
Scan multiple domains by fetching them from AWS Route53
--aws-access-key-id AWS_ACCESS_KEY_ID
Optional
--aws-access-key-secret AWS_ACCESS_KEY_SECRET
Optional
--aws-session-token AWS_SESSION_TOKEN
Optional
azure:
Scan multiple domains by fetching them from Azure DNS services
--az-subscription-id AZ_SUBSCRIPTION_ID
Required
--az-tenant-id AZ_TENANT_ID
Required
--az-client-id AZ_CLIENT_ID
Required
--az-client-secret AZ_CLIENT_SECRET
Required
bind:
Read domains from a dns BIND zone file, or path to multiple
--bind-zone-file BIND_ZONE_FILE
Required
cloudflare:
Scan multiple domains by fetching them from Cloudflare
--cloudflare-token CLOUDFLARE_TOKEN
Required
digitalocean:
Scan multiple domains by fetching them from Digital Ocean
--do-api-key DO_API_KEY
Required
--do-domains DO_DOMAINS
Optional
file:
Read domains from a file (or folder of files), one per line
--filename FILENAME Required
projectdiscovery:
Scan multiple domains by fetching them from ProjectDiscovery
--pd-api-key PD_API_KEY
Required
--pd-domains PD_DOMAINS
Required
godaddy:
Scan multiple domains by fetching them from GoDaddy
--gd-api-key GD_API_KEY
Required
--gd-api-secret GD_API_SECRET
Required
--gd-domains GD_DOMAINS
Optional
googlecloud:
Scan multiple domains by fetching them from Google Cloud. Requires GOOGLE_APPLICATION_CREDENTIALS environment variable.
--project-id PROJECT_ID
Required
projectdiscovery:
Scan multiple domains by fetching them from ProjectDiscovery
--pd-api-key PD_API_KEY
Required
--pd-domains PD_DOMAINS
Required
securitytrails:
Scan multiple domains by fetching them from Security Trails
--st-api-key ST_API_KEY
Required
--st-domains ST_DOMAINS
Required
googlecloud:
Scan multiple domains by fetching them from Google Cloud
--project-id PROJECT_ID
Required
projectdiscovery:
Scan multiple domains by fetching them from ProjectDiscovery
--pd-api-key PD_API_KEY
Required
--pd-domains PD_DOMAINS
Optional
securitytrails:
Scan multiple domains by fetching them from Security Trails
--st-api-key ST_API_KEY
Required
--st-domains ST_DOMAINS
Optional
single:
Scan a single domain by providing a domain on the commandline
--domain DOMAIN Required
zonetransfer:
Scan multiple domains by fetching records via DNS zone transfer
--zonetransfer-nameserver ZONETRANSFER_NAMESERVER
Required
--zonetransfer-domain ZONETRANSFER_DOMAIN
Required