kankburhan/takeit

GitHub: kankburhan/takeit

一款基于 Go 开发的子域名接管漏洞检测工具,通过 CNAME 链分析和 HTTP 指纹匹配快速识别悬挂 DNS 记录和潜在的域名劫持风险。

Stars: 1 | Forks: 1

# TakeIt:极速子域名接管检测工具 [![Go Report Card](https://goreportcard.com/badge/github.com/kankburhan/takeit)](https://goreportcard.com/report/github.com/kankburhan/takeit) [![GitHub license](https://img.shields.io/github/license/kankburhan/takeit)](https://github.com/kankburhan/takeit/blob/main/LICENSE) [![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg)](https://makeapullrequest.com) **TakeIt** 是一款面向安全专业人员和漏洞赏金猎人的快速、精准子域名接管检测工具。该工具由 [can-i-take-over-xyz](https://github.com/EdOverflow/can-i-take-over-xyz) 指纹数据库驱动,通过 CNAME 链分析、NXDOMAIN 检测、HTTP 指纹识别和通配符 DNS 侦测,识别配置错误的子域名。 ## 功能特性 - **CNAME 链解析** — 跟踪完整的 CNAME 链(最多 10 跳),并根据指纹检查每一跳 - **精准 NXDOMAIN 检测** — 使用 `net.LookupHost` 进行可靠的悬挂记录检测 - **HTTP 指纹匹配** — 不区分大小写的正文和状态码匹配,并具有限制读取大小的功能 - **通配符 DNS 检测** — 标记通配符 DNS 父域以减少误报 - **服务识别** — 精确显示哪个服务(GitHub Pages, S3, Azure 等)存在漏洞 - **JSON 输出** — JSON 行输出格式,便于与 `jq` 及其他管道工具集成 - **自定义 DNS 解析器** — 可使用任何 DNS 解析器(Cloudflare, Google, 内部 DNS) - **多种输入方式** — 支持标准输入、文件 (`-l`) 或命令行参数,且可组合使用 - **域名去重** — 自动跳过重复的域名 - **重试机制** — 针对瞬态 DNS/HTTP 故障自动重试 - **逼真的 User-Agent** — 使用类似浏览器的 UA 以避免被 WAF 拦截 - **并发扫描** — 可配置线程数以实现高速扫描 ## 安装说明 ### 预编译二进制文件 从 [Releases](https://github.com/kankburhan/takeit/releases) 页面下载最新版本。 ### 通过 Go 安装 ``` go install github.com/kankburhan/takeit@latest ``` ### 从源码构建 ``` git clone https://github.com/kankburhan/takeit.git cd takeit go build -o takeit ``` ## 使用方法 ``` _____ _ _____ _ |_ _| | | |_ _| | | | __ _| | _____ | | | |_ | |/ _' | |/ / _ \| | | __| | | (_| | < __/| |_| |_ \_/\__,_|_|\_\___\___/ \__| by kankburhan Usage: takeit [flags] cat domains.txt | takeit [flags] Flags: -l string File containing list of domains -t int Number of threads (default 10) -timeout int HTTP timeout in seconds (default 10) -r string Custom DNS resolver (e.g., 1.1.1.1 or 1.1.1.1:53) -o string Output file for results -f string Filter output (e.g., potential) -json Output results as JSON lines -silent Show only vulnerable results -update Update takeit version -update-db Update fingerprint database -v Show version -h Show help ``` ## 示例 ### 基础扫描 ``` # Scan 单个域名 takeit example.com # 从 stdin Scan cat subdomains.txt | takeit # 从文件 Scan takeit -l subdomains.txt ``` ### 高级用法 ``` # 20 线程,保存结果到文件 takeit -l subdomains.txt -t 20 -o results.txt # JSON 输出,仅显示易受攻击,pipe 到 jq takeit -l subs.txt -json -silent | jq 'select(.vulnerable)' # 自定义 DNS resolver (Cloudflare) takeit -l subs.txt -r 1.1.1.1 # Silent 模式 — clean output,仅显示 takeovers cat subs.txt | takeit -silent # 合并多个输入 takeit -l list1.txt sub.example.com # 针对慢速目标的 Custom timeout takeit -l subs.txt -timeout 20 # 完整 pipeline: subfinder -> takeit -> notify subfinder -d example.com -silent | takeit -json -silent | notify -silent ``` ### 更新指纹库 ``` # 更新 fingerprint 数据库到最新 takeit -update-db # 更新工具本身 takeit -update ``` ## JSON 输出格式 使用 `-json` 时,每一行都是一个 JSON 对象: ``` { "domain": "blog.example.com", "cname": "example.github.io", "cname_chain": ["example.github.io"], "vulnerable": true, "service": "GitHub Pages", "fingerprint": "There isn't a GitHub Pages site here.", "http_status": 404 } ``` 字段说明: | 字段 | 描述 | |-------|-------------| | `domain` | 正在检查的子域名 | | `cname` | 最终解析的 CNAME | | `cname_chain` | 完整的 CNAME 解析链 | | `vulnerable` | 是否可能发生子域名接管 | | `service` | 匹配的服务名称(当存在漏洞时) | | `fingerprint` | 匹配的指纹字符串 | | `is_wildcard` | 父域是否具有通配符 DNS | | `http_status` | 目标返回的 HTTP 状态码 | | `error` | 如果检查失败,显示错误信息 | ## 工作原理 1. **CNAME 链解析** — 解析目标域名的完整 CNAME 链(最多 10 跳) 2. **模式匹配** — 根据已知服务指纹(不区分大小写)检查链中的每一个 CNAME 3. **NXDOMAIN 验证** — 对于需要的服务,通过 `net.LookupHost` 验证 CNAME 目标是否返回 NXDOMAIN 4. **HTTP 指纹识别** — 获取 HTTP 响应(优先 HTTPS,其次 HTTP)并匹配状态码和正文内容 5. **通配符检测** — 测试父域是否存在通配符 DNS,以标记潜在的误报 6. **结果报告** — 报告存在漏洞的域名,并附带匹配的服务名称和置信度指标 ## 欢迎贡献! TakeIt 是开源项目,我们欢迎各种贡献。无论是修复错误、添加功能还是改进文档 —— 欢迎向我们发送 PR! ## 许可证 TakeIt 基于 **MIT License** 授权。详情请参阅 [LICENSE](LICENSE) 文件。 ## 免责声明 TakeIt 仅供**教育目的**和**授权安全测试**使用。严禁未经授权使用本工具。在扫描任何域名之前,请务必确保您已获得许可。
标签:Bug Bounty, C2日志可视化, CNAME解析, DNS安全, DNS检测, GitHub, Go语言, Homebrew安装, HTTP指纹, 可自定义解析器, 域名劫持, 子域名安全, 子域名接管, 悬空记录, 指纹识别, 日志审计, 漏洞靶场, 程序破解, 网络安全, 配置审计, 防御检测, 隐私保护