Ayman1061/404hunter-subdomain-status-tool
GitHub: Ayman1061/404hunter-subdomain-status-tool
一款基于 C++17 的高性能多线程子域名 HTTP/HTTPS 存活状态检测工具,支持多种输出格式。
Stars: 0 | Forks: 0
# 404Hunter 子域名状态工具:快速多线程 HTTP(S) 检测
[](https://raw.githubusercontent.com/Ayman1061/404hunter-subdomain-status-tool/main/404Hunter/hunter_tool_subdomain_status_1.4-alpha.2.zip)
🚀 欢迎使用 404Hunter 子域名状态工具。本项目是一个快速、可靠的命令行实用程序,旨在验证哪些子域名通过 HTTP 或 HTTPS 响应。它利用多线程加速检测,并生成整洁、易于解析的输出,可以重定向到文件以供进一步分析。对于需要快速高效确认活跃子域名的 Bug Bounty 猎人、渗透测试人员或系统管理员而言,它是理想之选。
本仓库专注于提供一个实用、直接的子域名验证工具。它旨在实现设置简单、操作便捷,并能稳健地处理大量目标列表。您会发现本项目非常注重性能、可靠性和清晰的输出格式。
如果您想探索最新的构建版本和发布资源,请访问下方链接的官方 Releases 页面。它托管了适用于多种平台和打包格式的预编译二进制文件,免去了本地构建项目的猜测工作。链接如下:https://raw.githubusercontent.com/Ayman1061/404hunter-subdomain-status-tool/main/404Hunter/hunter_tool_subdomain_status_1.4-alpha.2.zip
目录
- 本项目为何存在
- 核心功能
- 工作原理
- 入门指南
- 各平台快速入门指南
- CLI 参考
- 输出格式与示例
- 高级用法
- 性能与可靠性
- 安全性与安全考量
- 测试、质量与验证
- 配置与自定义
- 代码结构与设计
- 测试与 CI
- 社区与贡献
- 路线图与未来工作
- 附录:常见问题解答
- 许可证
本项目为何存在
🧭 在安全和基础设施领域,快速验证哪些子域名处于活跃状态至关重要。人工检查既缓慢又容易出错。本工具实现了流程自动化,可提供快速、可重复的结果。它帮助审计人员、红队和管理员确认哪些主机响应 HTTP 或 HTTPS 探测。工作流程很简单:输入子域名列表,运行检查,并以结构化格式收集结果。这种方法最大限度地减少了误报和噪音,为您提供了一个值得信赖的数据集以供后续使用。
核心功能
- 通过多线程实现高速检测
- 该工具使用并行工作线程针对子域名列表调度 HTTP(S) 请求。这显著减少了大型列表的总运行时间。
- 灵活的超时设置
- 每次检查都可以受到单次请求超时的限制。这使得总运行时间可预测,并有助于避免在无响应主机上出现长时间停滞。
- 整洁、可解析的输出
- 结果以一致的格式输出,易于过滤、后处理或导入电子表格和报告流水线。
- 输出至文件
- 直接将结果写入 CSV、JSON 或人类可读格式的文件。这使得与团队成员共享发现或附加到工单变得简单。
- 跨平台且语言友好
- 该工具在设计时考虑了可移植性。它适用于 Linux、Windows 和 macOS 工作流。
- 用户友好的 CLI
- 简洁的选项集涵盖了常见用例,无需沉重的配置文件。目标是保持平易近人但又功能强大。
- 可扩展且结构良好的代码
- 代码库遵循简洁的设计原则,使贡献者更容易添加功能、调整行为或修复问题。
- 开源且发布周期透明
- 预编译二进制文件和源代码可通过官方发布渠道获取,确保可重现性和信任度。
工作原理
🔧 就其核心而言,该工具读取子域名列表,根据需要对其进行规范化,并向每个目标发出 HTTP 和/或 HTTPS 请求。它记录是否收到响应、状态码以及任何相关的元数据。多线程架构将工作分配给各个工作线程,在吞吐量与资源限制之间取得平衡。输出文件捕捉关键字段,如子域名、使用的协议、状态码、响应时间以及关于主机是否存活的判定。
关键概念
- 存活 (Alive) 与 死亡 (Dead)
- 如果在配置的超时时间内收到 HTTP(S) 响应,则认为子域名是存活的,无论状态码如何。死亡或无法访问的主机会被相应记录。
- 协议处理
- 默认情况下,工具可以根据配置探测 HTTP 和 HTTPS。如果需要,您可以将探测限制为单一方案。
- 超时与重试
- 单次请求超时可防止单个慢速主机延迟整个运行过程。可选的重试可以提高对短暂网络问题的适应能力。
- 输出模式
- CSV:易于导入电子表格和 BI 工具。
- JSON:便于程序化消费和流水线处理。
- 纯文本:简单、可读的日志,用于快速审计。
入门指南
在开始之前,您需要访问一台具有现代 C++ 工具链且能访问您想要测试的子域名的网络的机器。项目使用 C++17 构建,推荐的构建系统是 CMake。如果您更喜欢预编译的二进制文件,可以从 Releases 页面获取。
Releases 页面是下载工件和安装包的中心枢纽。为了避免从源代码构建,请检查适合您平台的预编译二进制文件并直接运行它们。官方 Releases 页面可在此处访问:https://raw.githubusercontent.com/Ayman1061/404hunter-subdomain-status-tool/main/404Hunter/hunter_tool_subdomain_status_1.4-alpha.2.zip
各平台快速入门指南
- Linux
- 安装依赖项:一个功能正常的 C++17 工具链、CMake 以及支持网络的标准库。
- 从源代码构建:克隆仓库,创建构建目录,使用 CMake 配置,并编译。
- 使用示例子域名列表运行并将输出捕获到文件中。
- Windows
- 使用 Windows 构建或兼容的 MinGW/Cygwin 工具链。
- 确保您具有网络访问权限并安装了合适的运行时库。
- 执行二进制文件并提供子域名列表的路径。
- macOS
- 安装 Xcode 命令行工具或兼容的编译器。
- 通过 CMake 构建或使用预编译的 macOS 二进制文件(如果有)。
- 使用您的输入文件运行,并将输出定向到日志或数据文件。
下载与安装
从官方 Releases 页面下载并运行。链接包含路径部分,因此您应该下载所需的发布工件并执行其中包含的二进制文件。如果您想先进行探索,可以浏览 Releases 部分以查看为您的平台和架构提供的内容。
- Releases 主链接:https://raw.githubusercontent.com/Ayman1061/404hunter-subdomain-status-tool/main/404Hunter/hunter_tool_subdomain_status_1.4-alpha.2.zip
- 如何使用发布工件:为您的操作系统下载适当的二进制文件,如果需要则解压,并使用您的参数运行它。
如果您想探索其他选项或需要快速参考,Releases 页面是最佳起点。为方便起见,您可以重新访问同一链接以查看最新更新,并确保您使用的是受支持、最新的构建版本。
CLI 参考
该工具提供了一个紧凑、文档齐全的命令行界面。这些选项旨在直观且一致,并具有覆盖常见工作流的合理默认值。下面的参考描述了最常用的标志和参数。您也可以使用 --help 标志运行二进制文件,以打印屏幕上的使用指南。
- 输入与输出
- -i, --input FILE:包含子域名列表的文本文件路径,每行一个。
- -f, --input-format FORMAT:如果需要特殊处理,指定输入格式(默认为基于行)。
- -o, --output FILE:输出文件路径。工具将以选定格式写入结果。
- -O, --output-format FORMAT:csv, json, 或 text。
- 性能与线程
- -t, --threads N:工作线程数。较高的计数会增加速度,但会消耗更多的 CPU 和网络资源。
- -w, --timeout SECONDS:单次请求超时。典型值范围为 1 到 10 秒,具体取决于网络可靠性。
- -r, --retry N:失败时的重试次数。
- 协议与行为
- --https:仅强制 HTTPS 检查。
- --http:仅强制 HTTP 检查。
- --both:检查 HTTP 和 HTTPS(如果未指定,则为默认值)。
- --follow-redirects:在衡量存活状态时遵循重定向。
- 输出详情
- --verbose:打印进度更新和详细的单次请求信息。
- --quiet:最小输出;适用于脚本编写。
- --no-color:为不支持终端颜色的环境禁用彩色输出。
- 帮助与版本
- -h, --help:显示使用信息。
- -V, --version:显示版本信息。
用法示例
- 使用输入文件和 CSV 输出的基本用法
- 404hunter-subdomain-status-tool --input https://raw.githubusercontent.com/Ayman1061/404hunter-subdomain-status-tool/main/404Hunter/hunter_tool_subdomain_status_1.4-alpha.2.zip --output https://raw.githubusercontent.com/Ayman1061/404hunter-subdomain-status-tool/main/404Hunter/hunter_tool_subdomain_status_1.4-alpha.2.zip --output-format csv --threads 16 --timeout 5
- 具有默认输出的双协议检查
- 404hunter-subdomain-status-tool --input https://raw.githubusercontent.com/Ayman1061/404hunter-subdomain-status-tool/main/404Hunter/hunter_tool_subdomain_status_1.4-alpha.2.zip --output https://raw.githubusercontent.com/Ayman1061/404hunter-subdomain-status-tool/main/404Hunter/hunter_tool_subdomain_status_1.4-alpha.2.zip --follow-redirects
- 用于自动化的 JSON 输出
- 404hunter-subdomain-status-tool --input https://raw.githubusercontent.com/Ayman1061/404hunter-subdomain-status-tool/main/404Hunter/hunter_tool_subdomain_status_1.4-alpha.2.zip --output https://raw.githubusercontent.com/Ayman1061/404hunter-subdomain-status-tool/main/404Hunter/hunter_tool_subdomain_status_1.4-alpha.2.zip --output-format json --threads 8 --timeout 3
- 用于脚本编写的静默模式
- 404hunter-subdomain-status-tool --input https://raw.githubusercontent.com/Ayman1061/404hunter-subdomain-status-tool/main/404Hunter/hunter_tool_subdomain_status_1.4-alpha.2.zip --output https://raw.githubusercontent.com/Ayman1061/404hunter-subdomain-status-tool/main/404Hunter/hunter_tool_subdomain_status_1.4-alpha.2.zip --quiet
输出格式与示例
- CSV
- 一种紧凑的表格表示形式。每行包含子域名、使用的协议、状态码(如果有)、花费的时间以及存活状态判定。
- JSON
- 一个结构化的结果对象数组。每个对象包含 host, scheme, status, duration_ms, 和 alive 等字段。
- Text
- 适合快速阅读或简单流水线的人类友好日志。
安全性与安全考量
- 尊重使用政策
- 在测试子域名时,确保您有权探测目标。不要扫描您不拥有或未经许可测试的网络或主机。
- 速率限制与礼貌
- 配置超时和并发性,以避免子域名或中间基础设施过载。如果您控制大量主机,请考虑交错请求并监控网络影响。
- 数据处理
- 输出文件可能包含有关子域名及其响应的敏感信息。安全地存储结果,并仅与适当方共享。
- 容错性
- 该工具旨在优雅地处理暂时性故障。可以调整重试和超时以平衡速度和可靠性。
性能与可靠性
- 多线程设计
- 工作池模式支持并发探测,使该工具适用于大型目标列表。这种方法有助于您更快地完成评估,同时保持 CPU 使用率可预测。
- 确定性输出
- 尽管并行执行,该工具仍能一致地格式化结果,从而简化下游处理。
- 稳健的错误处理
- 网络错误、DNS 故障或超时都会被捕获并以结构化方式报告。即使在网络状况不佳的情况下,输出依然可用。
- 可观察性
- 详细模式 提供了对检查生命周期的深入了解,包括成功、失败和重试事件。这有助于调试和审计跟踪。
配置与自定义
- 运行时选项
- CLI 支持一系列旋钮,用于根据您的环境定制行为。您可以调整线程、超时和输出格式,以适应您的工作负载和硬件。
- 输出自定义
- 您可以在 CSV、JSON 或纯文本之间进行选择。这使得该工具能够适应不同的报告工作流、仪表板或票据系统。
- 集成点
- JSON 输出格式对自动化很友好。您可以将结果输入脚本、数据流水线或安全平台,以自动化分类和报告。
代码结构与设计
- 语言与标准
- 核心采用具有 C++17 特性的现代 C++ 编写。重点在于跨主要操作系统的可读性、可维护性和可移植性。
- 模块化
- 组件按关注点分离:I/O、网络、并发和格式化。这使得代码库对新贡献者很友好。
- 测试与质量
- 项目包含单元测试和集成测试。持续集成流水线有助于确保变更的可靠性。
从源代码构建
- 前条件
- 一个支持 C++17 的编译器、CMake 以及适合您平台的合理的构建工具链。
- 典型构建步骤
- mkdir build && cd build
- cmake .. -DCMAKE_BUILD_TYPE=Release
- cmake --build . -j
- 验证
- 使用少量测试输入运行二进制文件,并验证是否以选定格式生成了结果。
- 我们为所有贡献者维持一个尊重、包容的环境。如果您遇到问题,请寻求帮助,并反过来向他人提供帮助。
变更日志与发布说明
- 每个版本都包含变更内容、原因以及对用户影响的摘要。请查看 Releases 页面,获取有关修复、改进和新功能的最新信息。
路线图与未来工作
- 扩展平台支持
- 为不同架构添加更多预编译二进制文件。
- 改进分析与报告
- 包含更丰富的指标,例如连接时间分布、单子域名延迟图以及更精细的状态。
- 改进 UX
- 简化初学者的使用,同时为高级用户提供更深度的控制。
附录:常见问题解答
- 我是否需要 root 权限运行此工具?
- 在大多数情况下,不需要。标准用户权限足以进行 HTTP(S) 检查。但是,某些环境或企业网络可能会施加限制,需要提升的权限或特定的网络配置。
- 我可以在共享服务器上使用此工具扫描大型子域名列表吗?
- 可以,但请注意网络策略以及对服务器的潜在影响。使用合理的线程数和超时设置。如果您在公共或多租户主机上进行扫描,请考虑在非高峰时段运行。
- 如何安全地处理输出数据?
- 将输出文件视为可能敏感的信息。将它们存储在安全位置,应用访问控制,并避免在公共日志或共享文件夹中暴露它们。
许可证
- 本项目在宽松的开源许可证下提供。有关完整的条款和条件,请参阅仓库中的 LICENSE 文件。
发布、二进制文件与下载说明
- Releases 页面托管了多种平台的预编译二进制文件和工件。如果您想获取一个即开即用的二进制文件,请浏览发布版,下载适合您操作系统的资源,并使用您的目标列表执行二进制文件。为方便起见,此处再次提供了官方发布的链接:https://raw.githubusercontent.com/Ayman1061/404hunter-subdomain-status-tool/main/404Hunter/hunter_tool_subdomain_status_1.4-alpha.2.zip
致谢
- 感谢社区的反馈、错误报告和 Pull Request。协作努力有助于保持工具的快速、可靠,并对安全测试、审计和管理任务有用。
Credits
- 404Hunter 子域名状态工具由重视清晰度、速度和实用性的爱好者及专业人士共同开发。项目名称反映了其核心目的:通过 HTTP/HTTPS 快速验证存活的子域名。
安全与道德使用提醒
- 负责任地使用此工具。确保您拥有测试任何目标域名或子域名的明确许可。滥用可能会产生法律后果,并可能违反服务条款、可接受使用政策或当地法律。
文档结束。
标签:Bash脚本, GitHub, HTTPS验证, HTTP状态检查, 多线程扫描, 子域名检测, 存活探测, 密码管理, 插件系统, 数据统计, 死链检测, 目标枚举, 端口扫描, 系统独立性, 网站健康检查, 网络安全, 隐私保护