Skip to content
KitploitKITPLOIT
工具漏洞利用博客
Log in
提交
工具漏洞利用博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

订阅源联系隐私© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
subjack — 并发的DNS接管扫描器,可检测跨云提供商的CNAME、NS、AXFR、SPF、MX、SRV及过期的A记录漏洞,具有多级链分析功能。 | Kitploit
工具/GitHubGitHub/haccer/subjack
漏洞扫描器Web安全渗透测试子域名枚举DNS 分析
GitHubhaccer/subjack

subjack

并发的DNS接管扫描器,可检测跨云提供商的CNAME、NS、AXFR、SPF、MX、SRV及过期的A记录漏洞,具有多级链分析功能。

查看仓库
2.1k349368天前Kitploit 审核通过

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

subjack

CI Go Reference GitHub license

subjack logo
DNS 接管扫描器

Subjack 是一款用 Go 编写的 DNS 接管扫描器,旨在并发扫描域名列表并识别可被接管的域名。凭借 Go 的速度和效率,该工具在大规模测试方面表现尤为突出。请务必手动复核结果,以排除误报。

Subjack 可检测:

  • CNAME 接管 — 指向未被认领的第三方服务的悬空 CNAME
  • NS 委派接管 — 过期的域名服务器域名和悬空的云 DNS 区域(Route 53、Google Cloud DNS、Azure DNS、DigitalOcean、Vultr、Linode)
  • 失效 A 记录 — 指向云服务商(AWS、GCP、Azure、DigitalOcean、Linode、Vultr、Oracle)上已失效 IP 的 A 记录
  • 区域传送(AXFR) — 配置错误的域名服务器泄露整个区域文件,并支持 NS 主机名爆破
  • SPF include 接管 — SPF include: 指令中过期的域名,可导致邮件伪造
  • MX 记录接管 — 过期的邮件服务器域名,可导致邮件拦截
  • CNAME 链接管 — 多级 CNAME 链中中间目标可被认领的情况
  • SRV 记录接管 — 指向过期/可注册域名的 SRV 记录
  • NXDOMAIN 注册 — 不存在的域名且可被注册(通过 available 经 RDAP 确认)

安装

需要 Go

go install github.com/haccer/subjack@latest

Linux、macOS 和 Windows 的预编译二进制文件也可在 releases 页面获取——对于编译速度较慢的小型 VPS 来说非常方便。

用法

subjack -w subdomains.txt -t 100 -timeout 30 -o results.txt -ssl
参数描述默认值
-d要检查的单个域名
-w子域名字典文件的路径
-t并发线程数10
-timeout连接超时前等待的秒数10
-o将结果输出到文件(使用 .json 扩展名以输出 JSON)
-ssl强制使用 HTTPS 连接(可能提高准确性)false
-a向每个 URL 发送请求,而不仅仅是已识别 CNAME 的 URL (推荐)false
-m即使域名不可注册,也标记失效的 CNAME 记录false
-rDNS 解析器列表的路径(每行一个 IP 或 host:port,失败时回退到 8.8.8.8)
-ns检查 NS 接管(过期的 NS 域名 + 悬空的云 DNS 委派)false
-ar检查指向失效 IP 的失效 A 记录(ICMP 可能需要 root 权限)false
-axfr检查区域传送(AXFR),包括 NS 爆破false
-mail检查 SPF include 和 MX 记录接管false
-srv检查 SRV 记录接管(每个域名增加约 28 次 DNS 查询)false
-v显示每个请求的更多信息false

Stdin 支持

Subjack 可以从 stdin 读取域名,便于管道传输其他工具的输出:

subfinder -d example.com | subjack -ssl -o results.json
cat domains.txt | subjack -t 20 -o results.txt

域名服务器接管

使用 -ns 参数时,subjack 会执行两种类型的域名服务器接管检查:

过期的 NS 域名:检查域名的任何域名服务器是否已过期并可被购买。注册了过期域名服务器的攻击者可以完全控制该域名的所有 DNS——他们可以将任何记录指向任何位置、拦截邮件、签发证书等。

悬空的 NS 委派:检测域名的 NS 记录指向云 DNS 服务商但托管区域已被删除的情况。Subjack 直接向每个域名服务器查询 SOA 记录——如果全部返回 SERVFAIL 或 REFUSED,则该区域已不存在且可能可被认领。支持的服务商:

  • AWS Route 53 (ns-*.awsdns-*)
  • Google Cloud DNS (ns-cloud-*.googledomains.com)
  • Azure DNS (ns*-*.azure-dns.*)
  • DigitalOcean DNS (ns*.digitalocean.com)
  • Vultr DNS (ns*.vultr.com)
  • Linode DNS (ns*.linode.com)
subjack -w subdomains.txt -ns -o results.json

失效 A 记录检测

使用 -ar 参数时,subjack 会解析 A 记录并检查该 IP 地址是否仍然存活。当公司终止云服务器但忘记删除 DNS A 记录时,该 IP 会被释放回服务商的池中。攻击者可以在该服务商上启动新实例,直到分配到同一个 IP,从而获得该子域名的控制权。

Subjack 会尽可能识别云服务商(AWS、GCP、Azure、DigitalOcean、Linode、Vultr、Oracle),以便更容易地针对正确的平台。检测使用 ICMP ping(需要 root 权限),并在端口 80/443 上使用 TCP 作为回退。

sudo subjack -w subdomains.txt -ar -o results.json

结果会被标记为 STALE A RECORD,应手动验证——无响应的 IP 并不总是意味着可被回收。

区域传送检测

使用 -axfr 参数时,subjack 会尝试 DNS 区域传送(AXFR),这可能暴露整个域名的 DNS 记录。Subjack 不仅测试域名的官方域名服务器——它还会爆破常见的域名服务器主机名(ns1、dns-0、ns-backup 等),因为隐藏或被遗忘的域名服务器即使在主域名服务器被锁定后也常常处于未受保护状态。

subjack -d example.com -axfr -o results.json
subjack -w domains.txt -axfr -o results.json

结果会被标记为 ZONE TRANSFER,并附带存在漏洞的域名服务器和暴露的记录数量。

邮件接管检测

使用 -mail 参数时,subjack 会检查两种基于邮件的接管途径:

SPF include 接管:解析 SPF TXT 记录并检查任何 include: 域名是否已过期并可被注册。注册了被 include 域名的攻击者可以以目标身份发送完全通过认证的邮件,绕过 SPF 和 DMARC。

MX 记录接管:检查任何 MX 记录目标是否已过期并可被注册。控制了邮件服务器的攻击者可以拦截所有入站邮件——密码重置、2FA 验证码等。

subjack -w domains.txt -mail -o results.json

CNAME 链和 SRV 检测

CNAME 链接管在每次扫描时自动运行:它会跟踪多级 CNAME 链(最多 10 层深)并检查任何中间目标是否可被认领。标准 CNAME 检测只检查第一跳——链式检测能捕获更深层的接管机会。

SRV 记录接管需通过 -srv 参数选择启用,因为探测常见的 SRV 位置(SIP、XMPP、LDAP、Kerberos、IMAP、CalDAV 等)每个域名会增加约 28 次 DNS 查询:

subjack -w domains.txt -srv -o results.json

实际使用

你可以使用 scanio.sh,这是一个概念验证脚本,利用 Rapid7 的 Project Sonar 结果大规模定位存在漏洞的子域名。该脚本会解析并 grep 转储数据以查找所需的 CNAME 记录,并生成一个大型子域名列表,用 subjack 检查它们是否易受恶意子域名接管攻击。请负责任地使用。

字典文件格式

你的字典文件应包含一个子域名列表,每行一个:

assets.xen.world
assets.github.com
b.xen.world
big.example.com
cdn.xen.world
dev.xen.world
dev2.twitter.com

测试

测试套件是封闭的——它针对本地 DNS 和 HTTP 测试夹具运行,无需网络:

go test -race ./...

参考资料

关于 DNS 接管的额外信息:

  • Can I take over XYZ?
  • Hostile Subdomain Takeover using Heroku/GitHub/Desk + More
  • Can I take over DNS?

许可证

subjack 基于 MIT License 发布。

下载工具