DNS 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流程中阻断存在接管风险的域名部署来自真实用户的反馈,见证轩辕镜像的优质服务
免费版仅支持 Docker Hub 加速,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。
免费版仅支持 docker.io;专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等。
当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。
通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。
先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。
使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
在 Linux 系统配置镜像加速服务
在 Docker Desktop 配置镜像加速
Docker Compose 项目配置加速
Kubernetes 集群配置 Containerd
在宝塔面板一键配置镜像加速
Synology 群晖 NAS 配置加速
飞牛 fnOS 系统配置镜像加速
极空间 NAS 系统配置加速服务
爱快 iKuai 路由系统配置加速
绿联 NAS 系统配置镜像加速
QNAP 威联通 NAS 配置加速
Podman 容器引擎配置加速
HPC 科学计算容器配置加速
ghcr、Quay、nvcr 等镜像仓库
无需登录使用专属域名加速
需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429