
punksecurity/dnsreaperDNS Reaper是一款子域名接管检测工具,其核心优势在于准确性、扫描速度和丰富的检测签名库。该工具每秒可扫描约50个子域名,每个域名测试超过50种接管特征,大多数组织可在10秒内完成整个DNS资产的扫描。
!DNS Reaper检测存在问题的CNAME记录,识别可被接管的域名
通过提供域名列表文件或命令行指定单个域名,DNS Reaper将使用所有签名进行扫描,并生成CSV格式结果文件,帮助发现可接管的子域名。
可通过提供DNS提供商凭证,让工具自动获取域名记录并检测。支持直接连接DNS服务提供商(AWS Route53、Cloudflare、Azure),快速测试所有域名配置,及时发现潜在接管风险。
集成至CI/CD流水线,扫描待部署域名列表,若检测到接管风险则返回非零退出码,在域名配置生效前预防接管漏洞。
支持通过Docker镜像运行或Python 3.10直接运行。检测结果将输出至屏幕,详细信息保存至本地"results.csv"文件,同时支持JSON格式输出。
bashdocker run punksecurity/dnsreaper --help
bashpip install -r requirements.txt python main.py --help
bashdocker run punksecurity/dnsreaper aws --aws-access-key-id <密钥ID> --aws-access-key-secret <密钥密钥>
更多信息请参见AWS提供商文档
bashdocker run -v $(pwd):/etc/dnsreaper punksecurity/dnsreaper file --filename /etc/dnsreaper/<文件名>
bashdocker run punksecurity/dnsreaper single --domain <域名>
bash# 需重定向 stderr 或保存 stdout 输出 docker run punksecurity/dnsreaper single --domain <域名> --out stdout --out-format=json > output
____ __ _____ _ __ / __ \__ ______ / /__/ ___/___ _______ _______(_) /___ __ / /_/ / / / / __ \/ //_/\__ \/ _ \/ ___/ / / / ___/ / __/ / / / / ____/ /_/ / / / / ,< ___/ / __/ /__/ /_/ / / / / /_/ /_/ / /_/ \__,_/_/ /_/_/|_|/____/\___/\___/\__,_/_/ /_/\__/\__, / PRESENTS /____/ DNS Reaper ☠️ 扫描所有DNS记录以检测子域名接管风险 usage: main.py provider [options] output: 检测结果输出至屏幕,详细信息默认保存至 results.csv help: main.py --help providers: > aws - 从AWS Route53获取域名记录并扫描 > azure - 从Azure DNS服务获取域名记录并扫描 > bind - 从BIND区域文件读取域名记录(支持单个文件或目录) > cloudflare - 从Cloudflare获取域名记录并扫描 > file - 从文件读取域名列表(每行一个域名) > single - 扫描单个域名(通过命令行指定) positional arguments: {aws,azure,bind,cloudflare,file,single} options: -h, --help 显示帮助信息 --out OUT 输出文件(默认:results)- 使用'stdout'表示输出至标准输出 --out-format {csv,json} 输出格式 --parallelism PARALLELISM 并行扫描域名数量(默认:30,过高可能导致DNS结果异常) --disable-probable 不检测"可能"的接管条件 --enable-unlikely 检测"低概率"接管条件(可能增加误报) --signature SIGNATURE 仅使用指定签名扫描(可多次指定) --exclude-signature EXCLUDE_SIGNATURE 排除指定签名扫描(可多次指定) --pipeline 检测到接管风险时返回非零退出码(用于流水线失败控制) -v, --verbose -v表示详细输出,-vv表示极详细输出 --nocolour 禁用彩色文本输出 aws: 从AWS Route53获取域名记录并扫描 --aws-access-key-id AWS_ACCESS_KEY_ID 可选 --aws-access-key-secret AWS_ACCESS_KEY_SECRET 可选 azure: 从Azure DNS服务获取域名记录并扫描 --az-subscription-id AZ_SUBSCRIPTION_ID 必需 --az-tenant-id AZ_TENANT_ID 必需 --az-client-id AZ_CLIENT_ID 必需 --az-client-secret AZ_CLIENT_SECRET 必需 bind: 从BIND区域文件读取域名记录(支持单个文件或目录) --bind-zone-file BIND_ZONE_FILE 必需 cloudflare: 从Cloudflare获取域名记录并扫描 --cloudflare-token CLOUDFLARE_TOKEN 必需 file: 从文件读取域名列表(每行一个域名) --filename FILENAME 必需 single: 扫描单个域名(通过命令行指定) --domain DOMAIN 必需
--pipeline参数可在CI/CD流程中阻断存在接管风险的域名部署manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务