Shiki-12/OSINT-Subdomain-Enumeration

GitHub: Shiki-12/OSINT-Subdomain-Enumeration

基于证书透明度日志的被动子域名枚举工具,通过crt.sh API非侵入式发现目标域名的子域名。

Stars: 0 | Forks: 0

# OSINT 子域名枚举工具 一款被动侦察工具,通过 [crt.sh](https://crt.sh) 公共 API 查询证书透明度 (CT) 日志,从而发现目标域名的子域名。 ## 什么是子域名枚举 子域名枚举是识别与目标域名关联的有效子域名的过程。子域名通常会暴露额外的攻击面,例如 staging 环境、内部服务、管理面板和可能被安全评估忽视的遗留应用程序。 该工具执行**被动枚举**,这意味着它不会向目标发送任何直接流量。相反,它查询公开可用的证书透明度日志,这些日志记录了为域名及其子域名颁发的 SSL/TLS 证书。这使其成为一种非侵入性的 OSINT(开源情报)技术,适用于授权侦察和安全研究。 ## 工作原理 1. 通过交互式提示或命令行参数接受用户输入的目标域名。 2. 查询 crt.sh API 以检索与目标域名匹配的证书透明度日志条目。 3. 从响应中的 `name_value` 字段提取并清理子域名,去除通配符前缀并删除重复项。 4. 在终端中显示排序后的结果,并将其保存到文本文件中以供进一步分析。 ## 环境要求 - Python 3.7 或更高版本 - `requests` 库 ### 安装说明 安装所需的依赖项: ``` pip install requests ``` ## 使用说明 ### 交互模式 不带参数运行脚本。系统将提示您输入目标域名: ``` python subdomain_enum.py ``` ### 命令行参数 直接传入目标域名: ``` python subdomain_enum.py example.com ``` ### 输出结果 该工具会将所有发现的子域名打印到终端,并自动将它们保存到当前工作目录下名为 `subdomains_.txt` 的文件中。 示例输出: ``` ============================================================ Subdomain Enumeration Results for: example.com ============================================================ Total unique subdomains found: 12 ============================================================ api.example.com blog.example.com dev.example.com mail.example.com ... ============================================================ Results saved to: subdomains_example.com.txt ============================================================ ``` ## 错误处理 该工具能优雅地处理以下故障场景: | 场景 | 行为 | |-----------------------|----------------------------------------------------| | 连接失败 | 显示错误消息并退出 | | 请求超时 | 通知用户 API 可能不可用 | | 无效的 JSON 响应 | 报告解析失败 | | 未找到结果 | 通知用户并正常退出 | ## 免责声明 本工具仅供**授权的安全研究和教育目的**使用。在对您不拥有的任何域名执行侦察之前,请务必获得适当的授权。未经授权的枚举可能违反适用法律和服务条款。 ## 许可证 本项目按“原样”提供,用于教育和研究目的。
标签:CT日志, ESC4, GitHub, HTTPS证书, OSINT, Python, 域名发现, 子域名枚举, 安全工具库, 数据展示, 无后门, 系统安全, 系统独立性, 红队, 被动侦察, 证书透明度, 资产梳理, 逆向工具, 通用签名格式