AlexanderMycroft/WhoisOSINT

GitHub: AlexanderMycroft/WhoisOSINT

这是一个集成多源数据的域名 OSINT 工具,通过自动化收集和聚类分析支持安全调查与关联发现。

Stars: 21 | Forks: 5

# WhoisOSINT 用于通过 WHOIS、DNS、HTTP、TLS、追踪器和 GeoIP 数据丰富域名信息的命令行工具,外加一个基于共享指标对域名进行聚类的报告工具。 ## 功能特性 - 通过 `python-whois` 进行 WHOIS 信息丰富并捕获原始文本 - DNS 记录收集(A, AAAA, CNAME, MX, NS, TXT, SOA) - 对解析后的 IP 进行反向 DNS 查询 - HTTP 探测,包含重定向历史、头部信息、服务器类型、内容类型和页面标题 - TLS 证书摘要(主体、颁发者、SAN、有效期) - 检测 HTML 和链接的 JS 中的追踪器(YM, GA, GA4, GTM, Google Ads, Facebook Pixel) - 使用 `ip-api.com` 获取每个 IP 的 GeoIP 元数据(国家、城市、ASN、ISP) - 生成 Markdown 报告,突出域名之间的潜在关联 ## 数据源 - WHOIS: `python-whois` - DNS: 通过 `dnspython` 使用系统解析器 - HTTP/TLS: `requests` + `ssl` 套接字 - GeoIP: `http://ip-api.com/json/` ## 环境要求 - Python 3.x - 依赖项在 `requirements.txt` 中列出 安装: ``` pip3 install -r requirements.txt ``` ## 快速开始 从 TXT 文件丰富域名信息并输出 XLSX: ``` python3 whois_enricher.py domains.txt -o whois_results.xlsx ``` 从 XLSX 生成关联报告: ``` python3 generate_domain_affiliation_report.py --input whois_results.xlsx --output domain_affiliation_report.md ``` ## 使用说明 ### whois_enricher增强工具.py ``` python3 whois_enricher.py INPUT.txt [options] ``` 选项: ``` -o, --output Output XLSX file (default: whois_results.xlsx) -w, --workers Number of worker threads (default: 5) -d, --delay Global delay between WHOIS queries in seconds (default: 1.0) -t, --timeout WHOIS timeout in seconds (default: 25.0) --dns-timeout DNS timeout in seconds (default: 8.0) --http-timeout HTTP timeout in seconds (default: 12.0) --geo-timeout GeoIP timeout in seconds (default: 6.0) --geo-delay Delay between GeoIP lookups in seconds (default: 1.0) --user-agent User-Agent for HTTP probing --trackers-max-js Max JS files to scan for trackers (default: 12) --trackers-max-bytes Max bytes to read per JS file (default: 262144) -v, --verbose Verbose logging ``` 输入格式(TXT): ``` google.com facebook.com amazon.com ``` 输出列(XLSX): - `domain_input`, `domain`, `ok`, `error`, `query_time`, `elapsed_seconds` - 来自 `python-whois` 的 `whois_*` 字段 - `whois_raw`(原始 WHOIS 文本,如果可用) - `dns_*` 记录和 `dns_*_error` 字段 - `ip_list`, `reverse_dns`, `geoip` - `http_*` 字段(状态、头部、最终 URL、标题等) - `tls_*` 字段(主体、颁发者、SAN、日期、版本) - `trackers_*` 字段包含检测到的追踪器 ID 日志记录: - 在工作目录下写入 `whois_enricher.log` 文件。 ### generate_domain_affiliation报告生成工具.py 构建一个 Markdown 报告,使用共享的 WHOIS/DNS/HTTP/TLS/追踪器信号对域名进行聚类。报告避免显示原始 WHOIS 文本和直接 PII。 ``` python3 generate_domain_affiliation_report.py --input INPUT.xlsx --output OUTPUT.md ``` 默认值: - 输入:`whois_sites_full.xlsx` - 输出:`domain_affiliation_report.md` ## 性能与调优 - 使用 `--delay` 和降低 `--workers` 来避免 WHOIS 速率限制。 - 为较慢的解析器或端点增加超时时间。 - 追踪器提取受 `--trackers-max-js` 和 `--trackers-max-bytes` 限制。 ## 注意事项与局限性 - WHOIS 数据因顶级域名和注册商而异。某些记录被编辑或缺失。 - CDN/DDoS 防护通常会掩盖原始 IP。共享的 IP/ASN 可能表示一个共同的提供商,而非所有权关系。 - 追踪器 ID 可能在不相关的站点之间共享(代理机构、网络等)。 - GeoIP 数据是尽力而为的,可能不准确或粒度较粗。 - 请负责任地使用,并尊重上游服务(包括 WHOIS 服务器和 `ip-api.com`)的使用条款。 ## 项目结构 - `whois_enricher.py` - 域名丰富(WHOIS/DNS/HTTP/TLS/GeoIP/追踪器) - `generate_domain_affiliation_report.py` - Markdown 报告生成器 - `domains.txt` - 示例输入列表 - `requirements.txt` - Python 依赖项 ## 贡献 欢迎提交问题报告和拉取请求。报告错误或提出更改时,请附上示例输入和输出。 ## 许可证 MIT。详见 `LICENSE`。
标签:逆向工具